Many people ask me “How do I learn to program?” and “What book(!) should I read to learn Rails?”.

These are legitimate questions, but they aren’t necessarily the right questions to ask in order to begin the journey of becoming a software craftsperson.

Better questions, I feel, are:

I’ve been finding things around the ‘net that can greatly help people new to programming, new to web development, new to Rails, and so on.

Page Contents:


UPDATE: I’ve created a section for the Absolute Beginner as well, you might find it useful.

This is a quick, short list of things. I urge you to seek them out, and seek out others as well, and create your own list of learning resources. People will begin to ask you, and it’s nice to have something handy.

Also, learning Rails is hard. But don’t despair! The key to learning is break things down, focusing and practicing small things, and build up a lot of skills slowly. (“Wax on, wax off.” “Ok, Mr. Myagi.”) I’m going to jump ahead and tell you to download the first chapter (free) of Justin Weiss’s book Practicing Rails. Search for “first chapter” and fill out the form to get it. You’re also signing up to get e-mail from Justin, but it’s always good stuff.


Update Sun Jun 8 11:39:13 2014: Recently came across web post Best Way To Learn Ruby and Rails and must say it is a great compilation of resources. In addition, Ashton puts the focus right at the heart of the matter: you have learn both Ruby and Rails.


Books

Object-Oriented Programming

Ruby-specific

Rails-specific

JavaScript-specific

HTML and CSS Specific

Web sites

This is just going to be a list of sites I’ve found or been pointed at for helping people learn to program. These are most definitely biased towards Ruby and Rails, as that is my current area of concentration, and generate the most requests that come to me.

Podcasts

I am not such a big fan of podcasts, but that has more to do with my personal learning style. Nevertheless, there are some great pocasts out there.

Teaching Organizations

These are the ones I’m familiar with at this point in time (late 2015) in the Twin Cities area:

Bootcamps

These are becoming quite popular, if expensive, but they seem to provide what’s being offered: intensive training in the skills necessary to become a web application developer, with experience and skills in the entire lifecycle of modern software development. I can’t really provide much information on them, as I’ve never experienced them. Bootcamps.in provides at least a first-glance at several bootcamps.

Conferences and Meetups

Going to conferences, hanging out, meeting like-minded people, and generally instilling one’s self into the millieau of the Ruby and Rails communities can be extremely rewarding. Even if you’re not the conference type, make an effort to find people in your area to talk to.

If you’re ever in the Minneapolis area, look me up at Rails.MN and Ruby.MN – I attend those pretty regularly (weather permitting).

I also “run” the weekly Toast and Tech meetup from GDI Minneapolis on Tuesdays at the Canteen. Stop on by and have wonderful toast, coffee, and working with a bunch of wonderful folks learning web and other development.

There’s lots of other meetups in the Twin Cities I’m regularly trying to attend:

More Advanced

If you want to go deep and learn more about computer science, the book Structure and Interpretation of Computer Programs is probably your best bet in terms of a real CS text book that’s available online for free. It’s not a tutorial, but there are exercises in the text. The book uses Scheme, a lisp-like programming language. Everyone should learn a little lisp at some point. :) However it’s not mandatory one use Scheme (or Clojure as the local Clojure user group has been doing). The analytical concepts apply across all languages. If you’re focused on JavaScript or Ruby, you can work the examples in those languages, too.