2008-04-16 12:38:59 +0000
Sometimes it is easy to forget that when you take the plunge to learn something as encompassing as ruby on Rails, you forget just how MUCH you need to learn, and it can all seem a bit overwhelming at first. Here is a good way to go about learning it.
This might seem obvious, but one of the hardest things to get is that you are not just learning a programming Language with Ruby on Rails, you are learning (or trying to learn) a full stack web development Framework.
Now, just have a think about what that means. Ok. What does Full Stack imply here? Well, for starters, it means that you need to know something about all of the following to get anything meaningful done in Ruby on Rails:
- Programming Theory
- The Ruby Language
- HTTP and HTML Tags & Design
- Cascading Style Sheets
- Database Theory & Design
- At least one of the three database server implementations
- BDD or TDD
Will Need To Know
- Version Control
- Representative State Transfer (REST)
- Unix (or another Server Technology)
- Web Serving
- EMail and EMail servers
- Domain Name Systems (sometimes)
Now, if you don’t have a basic understand of the first 8 layers above, honestly, you will have a HARD time getting your head around Ruby on Rails. Seriously, it will make you feel spinny and frustrated that you can’t get the darn thing to work.
The 6 that follow are optional, depending on what type of application you are developing. Some will argue that BDD and TDD are an absolute requirement, and to be fair, to make a real application, they are. But they also are not part of what you MUST know to get something working and they fall under the programming theory and design as a methodology.
There are of course many other technologies that you CAN use in a Rails app, but the above are, I think, the core minimum to get started.
Now, what do I mean by “Make sure you understand what you are doing” ? Well, what I mean is that if you have decided to learn Rails, sure, go ahead and make the 10 minute blog or todo list, or even go get the Peepcode on starting Rails from Scratch (very good by the way), but once you have whetted your appetite, come back to that list of the Must Know 8 and start at the top.
The other trick here is, if you find something in a tutorial that you don’t understand, spend the time to go and find out about it and why it works and how it works. Getting these underlying understandings will build a strong foundation for you to expand your knowledge overall.
I am going to do a series of posts that walk through the top 8 layers above. The first one I have already posted and it is called Learn Programming Theory