Online Coding Schools
There are lots of places online to learn software programming. The question is less about where you might learn a language and more what skills do you need to learn? Clearly you need to learn a language. But you also should learn a few skills to make your knowledge work. For example, many programmers need to learn Github to manage their programming files and workflow.
You also might need to learn structured query language, SQL, a language to manage data in databases. And regular expressions can make it easier to find data using code. And lots of programmers use a command line interface (CLI) to work with servers as part of their programming.
This article reviews a few online coding schools with links at the bottom to explore a wide range of options to learn languages and related technologies like Github.
Perhaps the neatest part about these resources? Age doesn’t matter. A motivated eight year old or a parent (or teacher) with time, interest, and perseverance can learn with these tools.
Several online schools teach programming by playing games. You learn a bit of code, practice, in some cases earn points, and slowly extend your learning. Coding Game provides a wide range of games, as well as contests and coding matches between students.
Similar online schools to check out are checkio and CodeWars. The CodeWars site is unusual because members create katas, short lessons, to highlight solutions to common problems they’ve faced as programmers. There’s also fun games like Erase All Kittens where you save kittens by typing and learning HTML and CSS, as well as Run Marco!, the Foos, and Tynker.
Perhaps the most unusual way to learn game programming is Handmade Hero. It’s a collection of 200 plus videos that document the real life process of creating a game. There are lots of details you might only learn on the job or by watching over someone’s shoulder as with these videos.
Learn Python the Hard Way
Zed Shaw, a programmer and writer, created this amazingly thorough online book with videos to take you step by step through learning Python, a good first language to learn because of its simple syntax and power. There is a book version for $29.95 which also is a great way to support this resource.
The Learn the Hard Way series includes detailed tutorials for Ruby, C, SQL, regular expressions (regex), and command line interface (CLI) software. SQL, regex, and CLI are key skills all programmers need to master to become professionals. Each course assumes you have no prior knowledge of the language or its details, which is extremely helpful for beginners.
CodeHS, Codecademy, and a number of other online schools also provide interactive and/or lecture courses to learn a variety of programming languages. Some of these schools also provide tutors for personal help solving problems as you learn.
In addition to interactive courses provided by Codecademy, Lynda.com provides detailed video tutorials with downloadable materials to teach programming languages. Each course runs about an hour and is taught by an expert recruited by Lynda.com. Courses include free videos, to let you see whether the material interests you, and are available with a monthly fee. The fee also allows you to use any of their courses on thousands of topics.
Similar video-based training services you might consider are Pluralsight, Skillshare, and Treehouse.
Below you’ll find links to all the services mentioned in this article plus related information, for example, Github courses.
Learn Python the Hard Way
Learn Ruby the Hard Way
Learn C the Hard Way
Learn Regex the Hard Way
Learn SQL the Hard Way
Learn CLI (Command Line Crash Course)
Search for the term ‘programming’ to find courses sorted by programming languages, game programming, functional programming, system programming, and so on. The also own Code School, linked above.
Resources to Learn Programming
How to Think Like a Computer Scientist
Erase All Kittens
Hack into levels, written in HTML and CSS (the languages of websites), in order to complete the game.
Erase All Kittens, the Foos, Tynker, and Run Marco!
Reviews of these four games which teach coding in a fun offbeat way.
A free course from Code School, this course teaches the basics of Git to manage files created as part of programming software applications.
Programmer and creator of the Learn the Hard Way series.
Also In The May 2014 Issue
Computer Science Unplugged
The Computer Science Unplugged movement introduces non-technical people to computer hardware and software concepts that drive the technologies we use.
What is Computational Thinking?
While computers think in rigid predictable patterns, learning computational thinking helps us understand how and why computers work.
We've all used Captchas and found some impossible to solve. Here's why they exist, how they work, and less frustrating alternatives.
Programming languages use data types to allocate memory and enforce data integrity. They also reveal the nature of a language.
If the idea of a computer science book without computers upsets you, please close your eyes until you've finished reading.
The Turing Test
The Turing Test, and its creator Alan Turing, have had a profound effect on computer science and artificial intelligence.
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
May 2014 Learn More Links
Links from the bottom of all the May 2014 articles, collected in one place for you to print, share, or bookmark.
One of two key programming languages (Lisp is the other), FORTRAN defined many of the key ideas used in programming languages.
May 2014 News Wire
Interesting stories about computer science, software programming, and technology for the month of April 2014.
How to Create (and Crack) Secret Codes and Ciphers
Secret codes, or ciphers, are a great way to teach computational thinking.
One of the first female programmers, Grace Hopper also worked as a mathematician and had an unusual career for women in the 1900s.
Bogons are not an evil race of aliens. But they do shine a light on one part of the internet little known outside of a few security technologists.