Programming is rapidly becoming one of the hottest skills in the job market. Even if it doesn't directly apply to your career, the logic and thinking skills involved are invaluable.
Unfortunately, most people don't have the opportunity to learn code. If that's you, you're in luck, since it's easier than you think to start! The wonderful tool that is the internet has several ways to get started with coding for those with none or limited experience.
These programs are aimed at all sorts of interests, for kids, for students, for parents, for gamers, for those hoping to use it at work, or those who just want to have some fun. While not all of them teach coding directly, they all teach invaluable computer science skills.
*An asterisk means I can personally testify to how awesome a particular program is. If there's no asterisk, the program is either well-known in the tech field or recommended by someone I trust.
For elementary-middle school kids (or the kids at heart):
Every year in December, Code.org hosts an "hour of code" to encourage kids to try out coding for an hour through fun and easy tutorials. Even if your (or your child's) school doesn't participate in this, the tutorials are still archived and offered from free forever. Kids can drag and drop coding with their favorite "Star Wars"characters, "Frozen"characters, zombies, Minecraft characters, and more! Code.org also has videos starring a wide variety of celebrities from all fields (athletes, politicians, tech gurus, etc) to encourage everyone to learn to Code if you're just looking for some encouragement.
If you're interested in finding an Hour of Code event in December to participate in or want to host an event yourself, check out this website.
*Scratch:
Cost: Free!
Scratch was created by MIT for kids to start learning coding. Since it was created for kids, it can be a little silly, but in the fun way. Coding is done by dragging and dropping blocks of code together, so even if your game doesn't come together as you want, you are always guaranteed to create something! The drag-and-drop method also keeps you from making silly, but frustrating, errors, making the whole process much more fun.
If you need a course to motivate you or your child, edX (which I'll go in depth on later) offers a course on Scratch.
Cost: Some products free, all access for a month is $10 for 2 kids, approx $40 for lifetime access to a course
Schools have begun using Tynker, but the website also offers home versions, aimed at elementary and middle school children. Similar to Scratch, its drag-and-drop coding makes it less frustrating and more fun for kids to make videos and computer games.
Cost: Free!
This IPhone app can be the perfect quick distraction for your kid, working both to keep them occupied rather than causing mischief when bored, but learning computer science at the same time! With drag-and-drop coding, children can make Daisy the Dinosaur dance across the screen. Unfortunately, it's very limited in what kids can do on it.
Cost: Free
Hopscotch is an award-winning (Children’s Technology Review: Best Educational Technology and Parents’ Choice Gold Award) IPhone app where kids can make their own games. Or adults like the 39-year-old "rockstar dad and former programmer" who reviewed saying he fell in love with it after using it with his child.
For older kids, teens, or adults who want to take an easier pace:
*Clickteam Fusion:
Cost: Free for limited version, $99.99 for full version
Clickteam also utilizes drag-and-drop coding, but at a slightly higher level. The free edition comes with tutorials on how to get started with a few games. After that, it's up to you to play around with it and figure out what you want to design.
Cost: $20 month or $229/year
A bit pricier than the other options, but TechRocket also offers Live Coaches for all users, which can be an invaluable asset when you're first starting out. They offer languages including Python, Java, C++, and IOS (which are all hot in the job market right now and very commonly taught in college courses). They also offer an official certificate which can then be showcased on college applications or resumes. TechRocket is launched by iDTechwhich primarily offers (somewhat costly) summer camp at over 150 locations nationally.
Cost: Free!
CodeMonster offers a free, extensive first look into coding. While it uses real Javascript code, clicking the monster will progress it to the next step if you (or your child) gets frustrated. You can also jump to any of the 58 lessons if there's an area that's of particular interest to you.
For teens and adults:
*EdX:
Cost: Free! (or approximately $50 for a certification)
EdX is constantly offering new courses in a variety of subjects for free. They rotate what's being offered, so if what you want isn't there, chances are it will be at some other point in time. Many of these are introductory courses, with no expectation of prior coding experiences. The course descriptions should indicate if there are any suggested prerequisites. Many of the courses are actually constructed from in-class courses at universities at the forefront of CS (computer science) such as UC Berkeley, MIT, or Harvey Mudd.
Since course selections and the providers for those courses vary, the languages offered also vary. The vast majority are in English, but if you are more comfortable learning in a different language, keep an eye out!
If you're looking just to have some fun or specifically have an interest in learning Python (which is rapidly becoming more useful in the tech industry), I personally recommend the "CS for All" course, as it's run by one of the most amazing professors I've had and in addition to teaching coding, explains applications of CS in general society.
Another notable mention for those looking for something unique is University of Michigan's "Date Science Ethics" course, a hot topic if you aren't interested in learning CS yourself, but perhaps often deal with the relating issues.
CodingBat has short little coding challenges in Python and Java (two of the most popular languages in colleges and the workplace). Many of the challenges have a "Show Hint" or a "Show Solution" button if you get stuck and the site has video tutorials on the different topics they cover. When you run your code, it lets you know what answer was expected versus what actually ran so you can modify until you get the right answer. If you make an account, you can easily track your progress.
Cost: Free!
Khan Academy has useful tutorials and interactive courses on various topics in Computer Programming and Computer Science, such as Algorithms, languages for Web Development, and Information Theory.
Cost: $14.99
For those busy and looking to code on-the-go, Codea is an IPad app that lets you "touch your code" to make animations and games.
Cost: Free or $20/month for personalized "pro" version
Code Academy offers courses on building websites, SQL, Java, GitHub projects (see last entry of this article) and Ruby on Rails. It also offers some "Goals" which are 30 minute coding related projects.
Cost: Free, or $199/month or $299/month
Udacity offers several free courses on Computer Programming and Computer Science. It also offers "nanodegrees" to buff up your resume with. Their "nanodegree plus" offers a tuition refund if you do not get hired within 6 months.
For those with at least a limited background in CS:
*Unity:
Cost: Free for personal use! ($75/month for professional)
Unity is a game development platform that can be run with Java or C#. It can create 2D or 3D games, but is optimized for 3D. In addition to requiring some background in those languages, Unity itself has a learning curve, but you can easily find the strong online community where people have posted code, debugged the most common errors, and tutorials. Furthermore, Unity fanatics are constantly online looking to answer more questions. Unity also makes the process of turning your game into a mobile or desktop straightforward. Chance are, you've already played apps made on Unity without knowing it!
I will also add that Unity is my absolute favorite engine to work with for making games. Once you've gotten familiar with it, there's just so much you can do. And if you design something amazing, you might even make a few bucks.
*GitHub:
Cost: Free ($7-$50/month for private repositories)
GitHub essentially crowd-sources software. You can have private "repositories" to store your code in, or public repositories where you can post code and get suggested code from strangers. As you code, you "push" changes to GitHub, and others can also then "push" changes, making it useful for group projects. If it's your project, you get to choose which changes you accept.