ruby on rails

How I TRAINed to learn Rails

A Guide to Learning Rails in 2 months

Although I learned a few programming languages in the past, I had absolutely no experience with them except for Visual Basic, which is barely considered a language. I learned rails the hard way: 18 hours every day for 2 months. No sleep, no partying just pure hard coding. I forbade myself to watch TV, movies or even youtube videos if it wasn’t related to coding. Everything I was doing or reading was for that only purpose: “Becoming a senior developer ASAP”. I was rusty and although I had played with Html/Css before, I felt that I needed to review everything. So I started by reviewing the basics (HTML5, CSS3) and playing with it. You’ll need these basic skills to learn rails.

NO! Don’t Learn Rails before Ruby

When you decide to learn a language there are always mistakes that you make and realize later on as you are getting more experienced. Knowing what those mistakes are can allow you to save a considerable amount of time.

When I first decided to learn Ruby on Rails. I read a few articles by different bloggers that were saying that you don’t need Ruby to learn Rails. I now totally disagree with them! Take it from someone who initially took that path. I realized a bit later what was wrong with that approach. The first sentence about rails on Wikipedia says “Ruby on Rails, often simply Rails, is an open-source web application framework which runs on the Ruby programming language”. This simple sentence explains why knowing ruby will become a key factor in mastering rails: The code you type on the Rails framework is Ruby. The only difference is that the system of that framework is arranged in a way that makes it more organized and convenient for you to build applications.

If you take the time to fully understand Ruby before you learn Rails; then learning Rails will become a piece of cake. Whether you build controller, action or else, it will all come down to Ruby. Understanding ruby will also allow you to be more agile with rails and being able to go directly to the source to understand any methods or class. The greatest assets you’ll get once you’ll learn Ruby before Rails is understanding gems or the ruby and rails documentation better.

What Didn’t Help?

I read a lot of books in a short period of time, watched hours of tutorials and courses but not everything was helpful. Some of the things I learned actually confused me more than I already was. I broke down a list for you.

Blogs can confuse you

Unless you are reading a blog post such as “How to learn rails”. As a newbie, blogs that teach you rails won’t help but confuse you. There is one simple reason for that: Ruby/Rails have different practices depending on the versions. For instance; the asset pipeline was introduced in Rails 3 and a lot of blogs won’t tell you that but assume that you already know.

Ruby and Rails Versions

Ruby is a growing language and there are hardworking people that are still improving it. Same thing with Rails. As the language and framework improve; a few things will change. For someone that has absolutely no experience with ruby/rails noticing a change is like looking for a needle on the grass. A good thing to avoid confusion between ruby or rails version is to first figure out what’s the difference between them. Read the release notes; they contain useful information that will avoid you hours of debugging. To give you an idea of how the release notes look like: Here a link to the release note for Rails 4.

Asking Question About Everything on IRC

I’ve been using IRC for 14 years and until I decided to learn Rails it was always one of my favourite spots to learn. But people on the ruby/rails channel were very impatient and rude. I think they’ve forgotten something as important as “how it feels to be a newbie”. People on IRC were rude but they weren’t stupid and some of them gave me the best advice that put me on my way to learn Rails “Everything you need to learn are in books”, “Figure things out on your own! You’ll become a better problem solver”, “Don’t expect people to build the code for you, figure it out on your own” and my favourite one “Google!”. IRC is only useful when you face some really obscure bug.

What Was Useful?

Reading Books* over Blogs.

This was by far the best introduction to Ruby. When I read Chris Pine's book I had already read other tutorials on the web and read a few books but it made me realized that this was The Book I was looking for when I decided to learn Ruby on Rails. Chris Pine has a great way to explain the general concept of Ruby and put you in the mindset of a ruby developer. Available for Free.

People have different ways to learn; personally I love challenges. Going through this book forced me to face problems and find ways to solve them. It also gave me a good grasp and practice of the ruby language. I went through every single chapter and exercise in about 2weeks and when I was done I felt that I had a good understanding of Ruby.

The Rails Way by Obie Fernandez ( Get this Book )

Anything by Obie Fernandez is great. He is an amazing developer that writes great learning books.

Most people in the community always recommend to start with this book; I would never recommend this book to someone that is just starting to learn rails. Do the rails tutorial after you’ve read basic books about rails and once you’re familiar with ruby. This book is available for Free. The great thing about this tutorial is that it teaches you multiple skills in one: Git, CSS, HTML and Rails.

Interactive Courses

Rubymonk introduced me to Metaprogramming and helped me get familiar with some of the most common ruby methods. It’s a great source to improve your understanding of Ruby before moving to Rails.

Codeschool can be difficult to understand if you don’t have some basis, this is why I always recommend Codeschool to people that have already started reading about ruby or rails. What I love about code school is their approach of “learning by doing”. They have really good instructors. When you will watch and do the different Codeschool video. Make sure that you download the PDF of each course and use the PDF while you’re doing the homework. Codeschool is not free but most of their lesson 1 episode 1 tutorials are free. The cost of a membership is about $25/mo.

I started following various skills on Coderwall and read posts by people from the community and I started learning little tricks like the pluck method in ruby and else. Some developers will have better ways to do certain things, it’s always good to be curious and eager to improve what you already know. In the end, good code comes from better refactoring.

I am now proud to say that I’ve watched almost every single episode on Railscast. When I was learning Rails, I built at least 35 different apps that were using various gems. Railscast was the best place for me to get familiar with those gems and to learn how to use them quickly. Railscast also teaches me little things that became extremely useful overall. Always read the comments, people will add explanations or questions that will allow you to broaden your view on each course.

Blogs :)

Blogs don’t help if you’re just a newbie, but once you start to grasp a better understanding of Ruby or Rails. Blog starts to be useful. Especially when it comes to resolve bugs or grow your knowledge of rails. You will find articles that will give you the skills you need for better practices, tricks or tips.

NOT Copying/Pasting Code

Even today I still type code line per line. It helps you to remember codes and it’s a good practice to have when learning a new language. Typing every single line of code you read has a tremendous effect on your memory. Just do it, You will remember.

Not getting tired of Google-ing

One skill that every developer needs to master is “Googling”. Whenever you find a bug or you are blocked building something: Google like it’s a present tense. Never get tired of Googling. The web is vast enough and the chances are that you will find something out here that could solve your issue. One of my favourite website I always stumble upon while googling is Stackoverflow but I often always ended up on Google Groups and Forum or Blogs. There will always be things that you can’t remember or that you would like to verify or double-check and it will all come to your googling skills. The faster you’ll be able to find something on google or StackOverflow, the faster you will be able to resolve issues you’ve never seen before that other people have already experienced.

Reading Documentation and Source Codes

If you are stuck and nothing online can resolve your issue: Go back to reading, because the chances are that there must be something that you didn’t quite understand. When that happens it’s a good time for you to go to the source code and explore how things work. Reading the Rails Source Code is extremely useful. It allows you to learn how the entire system work.

The Ruby on Rails Guide is underrated. Most people skim it and to be honest, the first time I read it I actually skimmed it too. Never skim the rails guide, read it in its entire form. Always come back to the Rails guide and never assume that you’ve mastered rails enough to avoid it. Coming back to the rails guide doesn’t mean that you’re stupid. It smart to go back to the source to better understand something. Read as long as it takes but try to grasp the concepts that confuse you.