If you're learning a new programming language -- or considering it -- I highly recommend checking out Koans.
Essentially, you clone a github repository that has 200 or so failing test cases. Then, you work your way through the test cases, writing functions and filling in the blanks, getting the tests to pass one by one. The first few tests are very basic and assume no prior knowledge of the language, and then they build on each other, moving to more advanced topics.
I wouldn't necessarily suggest this as a first step if you've never done any programming before, because there isn't really much explanation. (For a good start-from-zero introduction, I'd recommend MIT's Introduction to Computer Science and Programming (6.00). But if you're familiar with one or more programming languages already, it's a great way to add another one in a quick, systematic way.
If you've got a long plane ride or train ride coming up, you can just clone the repository and install the language before you leave, then you can spend hours working through the test cases sans internet. You will be at your destination before you know it!
Here is a list of all the Koans:
The original
See also
- Python Koans
- Java Koans
- Go Koans
- Scala Koans
- Clojure Koans
- Lisp Koans
- Perl Koans
- Haskell Koans
- Erlang Koans
- ColdFusion Koans
- Bash Koans
- .Net Koans
- C++ Koans
- Lua Koans
- Groovy Koans
Front-end languages
Statistics
Databases
Frameworks
Other technical tools
There you have it. Happy coding!