There’s no shortage of resources when learning to code and one of the toughest parts of learning anything new is knowing where to start. I am, by no means, an expert on the best ways to learn programming, and there’s still tons of great stuff I’ve yet to discover, but from my journey thus far, this is my list of favorites:
1. Learn to Program- Chris Pine
This is, imho, one of the best “introduction to programming” books and is a great place to start. The book reads like a friend is mentoring you, lots of great metaphors and examples. I read this cover to cover in Thailand before I read anything else and felt it gave me a great foundation for the more exhaustive tomes to come. I’ve heard repeated recommendations also for Learn Ruby The Hard Way (which has books in other languages) but haven’t read it.
2. Eloquent Ruby- Russ Olsen
A fantastic intermediate pure Ruby book. Opens your eyes to the possibilities of the language.
3. Practical Object-Oriented Design in Ruby- Sandi Metz
A great primer to OO development. Really helps you understand why and how you should organize your code. (Design Patterns would be a good next text, it’s a classic, but it’s pretty advance and dense.)
Pretty and well-organized, but now it’s out of date, so you should complement it with this Flexbox article https://css-tricks.com/snippets/css/a-guide-to-flexbox and this CSS reference http://tympanus.net/codrops/css_reference. After this, just keep up with the mind-blowing tech demos on Codrops (like http://tympanus.net/codrops/2015/02/16/create-animated-text-fills) and you’ll always be on the cutting edge of HTML/CSS/SVG.
Things of the internets
2. Programming Ruby
As someone who is OCD about the nuances of a syntax, this was my bible. This was the first thing I read that really got me over the first learning curve and started providing context for all the moving parts. Love. this.
3. Rosetta Code
Another OCD love, Rosetta Code solves common algorithms IN ALMOST EVERY LANGUAGE. Since I was learning ruby on rails, which has a vast and magical library of built in functions, this was how i compensated.
This site gamifies coding problems and is highly addictive. One of the first coding problems I really attempted was a “go through a list of numbers and say if it’s prime or not.”. I was so proud of my unnecessarily verbose 56 line answer (which worked great!), until I saw that someone had done it in… one line. I was hooked after that.
Version control is one of the more difficult concepts to master and it looks deceptively easy… until you have your first rebase nightmare. I did many many many many tutorials and this was my favorite.