The following is a guest post by Thomas Deatherage and originally appeared on his blog. Thomas is currently a student at The Flatiron School. You can follow him on Twitter here__.
So like I’ve said in earlier posts, I’ve been learning to program for a few months shy of a whole year now. I started out learning the basic syntactic mechanics of coding, but being eager and impatient as I can sometimes be, I really wanted to get into the guts of coding kick-ass apps. So, well before my basic coding skills were mature enough I jumped into trying to learn Ruby on Rails.
I started working through Michael Hartl’s Ruby on Rails’ Tutorial. Shit was like magic and although I could sometimes impressively mimic the mechanics of the tutorial’s code for my own devices, I really had no concept of how commands like “rails generate everything-I-could-possibly-need-and-then-some” were able to do what they did. I was still pretty blown away though as I progressed through the book seeing a real life web application come to life. That said, it’s a pretty uneasy feeling trying to wield a tool you really don’t understand that well. It was clear to me that for the sake of my programming education I would really need to get down in the mud and trundle my way through the lower level details of how a rails app worked. And that meant focusing on getting the basics down first.
That was a few months ago. Now I’m into my 6th week at Flatiron, and we’ve only just begun to get into rails. The first 5ish weeks were dedicated to the fundamentals of coding. The stuff I should’ve spent more time focusing on before jumping into rails. This latter approach, for me, has definitely been much more effective for my learning. What I found particularly helpful was learning Sinatra first. Sinatra is similar in kind to Rails, but has a way more streamlined structure. In fact if you’re a noobie and you wanna learn rails, I’d recommend learning Sinatra first. With Sinatra you do a lot of the stuff that rails does automatically for you. Personally, I think it’s helpful to get down and code those parts on your own.
So yeah. Focus on the fundamentals first and foremost. Then move into a lighter-weight framework like Sinatra, and then give Rails a go. If you’re impatient like I was, I think Sinatra’s a good balance between the exciting magic of rails and the tedious detailed process of learning the slightly less thrilling lower level mechanics of programming.
Programming’s awesome. Stick with it. I’ve been having a blast doing it.