Friday, November 23, 2012

Chart for Learning a Programming Language

The previous chart helped beginners pick a language, this one shows them what resources to use to learn it. It's better to spend time doing things than to passively read or watch content, so I selected interactive websites, books and courses. Start by going through an online tutorial, and then either read through some of a book or watch an online course. Personally I think a book is better than a video since they're more concise and easier to reference, but most videos below are short and to the point. The chart is based on these posts: Picking a LanguageGeneral TipsJava and PythonWeb: HTML Javascript and PHPLearning Ruby and Rails

Free Resources For Learning a Programming Language

Good For Kids / Game ProgrammingGreenfootInvent Your Own Computer Games Hackety-Hack, Games: Ruby4KidsCodeAvengers
Interactive Tutorial - Codecademy?No, You can try ProgramrYesYes, there’s also
More Practice and HelpCodingBat ProblemsVisualize Python executing
(also CodingBat)
(1st part is free)
Use Firebug or Developer Tools.
(See Waterbear for visual coding)
Good Free Book for Teaching ProgrammingHow to Think Like a Computer ScientistHow to Think Like a Computer ScientistLearn to Program
Humble Little Ruby Book
Eloquent Javascript
Interactive Video CourseIntro to CompSci -
Programming methodology
(Warning: full Stanford course)
Udacity - Intro to CompSci - Building a Search EngineCodeSchool’s RubyBits*.AppendTo Javascript 101
Advanced BookEffective Java*Dive Into Python 3Pickaxe Guide*JavaScript: The Definitive Guide*
More Training / BootcampsSee Local / Online collegesSee online courses or corporate PythonTrainingMost Bootcamps are for Ruby on RailsCatalyst.
For kids:

* Not free. Update: added affiliate code to Amazon links.


  1. Please upvote on Hacker News:

  2. i tried to stick to languages still used. ~

  3. 34 upvotes on Hacker News, 4300 page views so far. good shabbos.

  4. How to Think Like a Computer Scientist is a fantastic book. That's how I got started, and I recommend it to everyone.

  5. A really great compilation. I am bookmarking this.

  6. Thanks for the mention of my site! The CodeAvengers courses target the total beginner. Yes, we have put a focus on making the lessons fun for high school kids... but our main focus is on delivering high quality effective lessons. We have been getting lots of fantastic feedback from people who have struggled with all sorts of approaches to learning (including trying CodeCademy) but finally feel they are learning with CodeAvengers. It may look like a CodeCademy clone, but trust me there are hundreds of hours of careful thought that has gone into the design of the course material and framework.

  7. A tad surprised you didn't mention Ruby Koans up there.

  8. [...] Learn Programming in Java, Python, Ruby or Javascript ( [...]

  9. Thanks everyone for all the visits, feedback and votes! The post reached the front page of Hacker News and Reddit.
    1.5 days after posting, I figured I should add some Amazon affiliate links, but I hope that won't bias me!

  10. This is a very cool list. I'd suggest adding Learn Python the Hard Way by Zed A. Shaw, I believe he also has Learn Ruby the Hard Way and I vaguely remember reading something about the possibility of a Learn Java the Hard Way book. All of the Code the Hard Way books are freely accessible for the HTML versions, I think some/all have PDFs you can buy. You can access the books through

  11. Josh, there's someone else who uses Perl:

  12. I thought it might be slightly confusing for a beginner, and that they should get experience creating more code at once.

  13. Thanks! As I commented on Hacker News, I think the books I put offer a more interactive approach.

  14. [...] of good helpful information, especially for JavaScript at Start by going through an online tutorial, and then either read through some of a book or watch [...]

  15. I really love the information you've shared with us. I am planning for a venture to start teaching Programming Languages online. This chart is gonna be a real boon for me.

  16. Would love to hear your ideas for what you plan to do... send me a message mike at codeavengers dot com! If there is anything I can do to help would love to.

  17. [...] previous chart of resources to learn programming was well-received, but some people suggested additional resources. I decided I would try a new [...]