A lot of people ask me how they can learn to program. Even if you don’t see yourself becoming a full-time developer, I think everyone should learn to code. So, here’s my roadmap for learning how to develop web applications with Ruby on Rails.
Have some app or idea you want to build in mind. It doesn’t have to be big or have a business idea behind it. Even a simple to-do list or project management app is ok, but the more passionate you are about the idea, the better, because that’s what will help you push through the hard parts.
Learn some HTML & CSS. You don’t have to be an expert or memorize every rule. You should know enough to create an html page, style it, and open it in your web browser. You can learn everything you need to get started from Shay Howe’s excellent tutorial. Google Chrome’s built in developer tools really help. Just right-click on any webpage and select “inspect element” to see the HTML & CSS.
Once you start writing HTML & CSS, you’ll want to get a good text editor. This is where you’ll be doing all of your work (you can’t use Microsoft Word). Textmate and Sublime Text are both very good. Try them both to see what you like. You’re using a Mac, right? Don’t attempt to learn modern web programming languages on a PC – it’s not worth the pain.
Learn some Ruby. You don’t have to know every Ruby method to build your first web application with Rails, but you should know the basics. You can’t put anything on the web with Ruby alone (you need Rails or something similar for that), but everything in Rails is written in Ruby, so you’ve got to know it. The best place to start is Learn to Program by Chris Pine. Make sure you buy the latest edition of this book. If you want to learn Ruby in a bit more detail, check out Beginning Ruby by Peter Cooper. You can also do Try Ruby, which is a short interactive tutorial. If you get bored with the pure Ruby stuff, skip ahead to Rails.
Learn Rails. The Ruby on Rails Tutorial by Michael Hartl is fantastic. You can read it for free online, or buy the videos – it just depends how you would rather learn. The tutorial takes you from zero to building a clone of Twitter and covers awesome things like Github, Heroku, and testing along the way. If you can finish the tutorial and have an understanding of what’s going on, you should be well on your way to programming your own apps. I started building small parts of the app that I had in mind while I did the Rails Tutorial, which helped me to apply what I was learning along the way.
Go to school. If you’ve made it this far, you probably want to get into programming full-time. There are some great coding schools that will help you bridge the gap between your self-taught skills and programming for a living. I strongly recommend Starter League’s courses. Yes, as an alumni and mentor, I’m a bit biased, but the the Web Development course helped me learn to code more than any other resource.
Keep learning. You’ll never be “finished” learning to code. You can always get better or learn something new. Rebuild your early apps, learn a new programming language, or pair program with a more experienced developer. Keep challenging yourself.
So go build something.