Having learnt HTML, CSS and jQUERY over the summer, it was high time that I taught myself a programming language that would allow me to embark on some back end development. After dabbling a little with PHP, I decided to look into Ruby and Ruby on Rails.
Even upon first contact, the Ruby programming language and the Ruby on Rails framework seem to be more intuitive and easier to use than PHP, with a huge highlight being the vast number of members of the Rails community, on hand with a seemingly infinite number of solutions to all of the problems you encounter whilst developing with Rails.
My tactic thus far has been this: –
1) teamtreehouse.com has an example project in Rails. During this project, you are walked through the development of a small social networking web app. This is a great introduction to Ruby on Rails and allows you to gain context on how the programming language is used to develop real-world applications. The drawback is that you can feel somewhat detached from the process, never really understanding what is actually going on – it can feel like a copying exercise. During my degree, I placed huge importance on actually understanding things as opposed to simply being able to regurgitate them – it is important that I find away to understand what is going on “Under the hood” of rails.
2) There are many blog posts that downplay the importance of learning Ruby before jumping into Rails – having dipped my toe in the water, I would say that it impossible to get a true understanding of what is happening without having knowledge of how ruby works. Rails seems to give organisational structure to classes, methods and data, and appears to make use of hashes a fair bit. Without understanding these programming concepts, it can be hard to understand what Rails is trying to achieve. The next step in my learning is to keep on at Ruby. In order to do this, I have completed the Ruby section on http://codecademy.com, and watched the Ruby videos on http://teamtreehouse.com. This has given me a reasonable understanding of Ruby, and I endeavour to learn more by following the ‘Ruby the hard way’ exercises on the net.
3) RailsGuides – the Rails guide, provided free on the rails website, is shaping up to be an excellent resource. I feel the crux to understanding rails is to understand the MVC model, RESTful development, and the CRUD http actions. RailsGuids has been (so far) excellent at framing the code you write within the framework of these concepts. I feel I am gaining a more thorough understanding by following this guide.
4) MIchael Hartl – Rails Tutorial. Michael Hartl’s tutorial seems to be an excellent guide. I have been through this once and built the sample app that he walks you through http://phillnet.herokuapp.com. Again, this was great to put Rails in the context of actual proper web development, but I feel at the minute that my understanding of what is actually going on is insufficient to gain the most out of the book. I am going to do the book again once I have been through the Rails guides.
5) Mini Projects – I feel that this will be ultimately the best way to learn Rails – to come up with my own ideas, and to write my own apps – solving the problems that arise throughout development. I have a few ideas that I want to implement, including a to do list, a selection tool for my cricket club, and a tweak on twitter that I think would be quite interesting.
Learning Rails is proving to be thoroughly enjoyable and is a great challenge, I cannot wait for the day I feel confident enough to develop apps from scratch!