Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I recommend Chris Pine's "Learn to Program" as a good book to start with. The book uses <a href="http://www.ruby-lang.org/en/" rel="nofollow noreferrer">Ruby</a> and expands on a free online tutorial also by Chris Pine. You can find the tutorial and more info on the book at <a href="http://pine.fm/LearnToProgram/" rel="nofollow noreferrer">http://pine.fm/LearnToProgram/</a>.</p> <p>After you worked(*) through "Learn to Program" solving small puzzles will probably help you more than reading other books. Most books on programming languages follow the same structure (i.e. start with a "Hello World!"-program, then cover conditionals and loops and then introduce object-oriented programming and error-handling). It will soon be boring to work on the contrived example programs of those books.</p> <p>Instead, pick a language you want to learn (or stick to Ruby), find a good reference online and figure out how to make some of the examples from "Learn to Program" work in that language. After that try solving some small puzzles like Sudoku or the <a href="http://en.wikipedia.org/wiki/Eight_queens_puzzle" rel="nofollow noreferrer">n-Queens</a> problem in that language or implement some famous algorithms (e.g. <a href="http://en.wikipedia.org/wiki/Quicksort" rel="nofollow noreferrer">Quicksort</a> and <a href="http://en.wikipedia.org/wiki/Dijkstra&#39;s_algorithm" rel="nofollow noreferrer">Dijkstra's Algorithm</a>). You can find many more puzzles e.g. at <a href="http://rubyquiz.com" rel="nofollow noreferrer">RubyQuiz</a>. After you feel comfortable solving puzzles in one language try to solve them again in another language or learn to program graphical user-interfaces in your favorite language.</p> <hr> <p>(*) Don't just read the example programs. Make sure you type them into your own computer and try to make small changes to the examples. That way it's much easier to understand how a programming language works.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload