Chart for Learning a Programming Language

Note: View my updated chart on

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

Java Python Ruby Javascript
Good For Kids / Game Programming Greenfoot Invent Your Own Computer Games  Hackety-Hack, Games: Ruby4Kids CodeAvengers
Interactive Tutorial – Codecademy? No, You can try Programr Yes Yes, there’s also
More Practice and Help CodingBat Problems Visualize Python executing
(also CodingBat)
(1st part is free)
Use Firebug or Developer Tools.
(See Waterbear for visual coding)
Good Free Book for Teaching Programming How to Think Like a Computer Scientist How to Think Like a Computer Scientist Learn to Program
Humble Little Ruby Book
Eloquent Javascript
Interactive Video Course Intro to CompSci
Programming methodology
(Warning: full Stanford course)
Udacity – Intro to CompSci – Building a Search Engine CodeSchool’s RubyBits* .AppendTo Javascript 101
Advanced Book Effective Java* Dive Into Python 3 Pickaxe Guide* JavaScript: The Definitive Guide*
More Training / Bootcamps See Local / Online colleges See online courses or corporate PythonTraining Most Bootcamps are for Ruby on Rails Catalyst.
For kids:
* Not free. Update: added affiliate code to Amazon links.

15 thoughts on “Chart for Learning a Programming Language”

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

  2. 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.

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

  3. 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

  4. 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.

    1. 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.

  5. Hello, sir i would like to ask that what is the scope of java training, what all topics should be covered and it is kinda bothering me … and has anyone studies from this course of core and advance java online ?? or tell me any other guidance…
    would really appreciate help… and Also i would like to thank for all the information you are providing on java concepts.

Comments are closed.