According to the U.S. Bureau of Labor Statistics, the outlook is quite favorable for software developers:
"Employment of software developers is projected to grow 30 percent from 2010 to 2020, much faster than the average for all occupations. Employment of applications developers is projected to grow 28 percent, and employment of systems developers is projected to grow 32 percent.....Job prospects will be best for applicants with knowledge of the most up-to-date programming tools and languages. Consulting opportunities for software developers also should be good as businesses seek help to manage, upgrade, and customize their increasingly complicated computer systems." - Software Developers, Occupational Outlook Handbook
Whether you’re looking for something new to learn, or just want to refresh your memory on something that might be a bit rusty, there are plenty of free sources online that you can take advantage of free code classes. In this article, we’re going to look at a few different resources online you can tap into for coding knowhow; some of these are email-based, some are in a game format (always my favorite!), and some are instructor-led via video. Just pick and choose the one that works best for you.
Peer to Peer University (P2PU) is a collaborative experience where you’re meant to learn in community with others. Registration and courses are totally free. There are several “schools” within the P2PU organizational framework, including one for Web-based programming backed by Mozilla, creator of the Firefox web browser. As you complete courses, you can display badges on your website or social profiles. Courses include WebMaking 101 and Programming with the Twitter API; no developer certifications are offered here, but the courses are well executed and worth taking a look.
HTML5 is quickly becoming the language to know for cutting edge developers. HTML5 Rocks is not necessarily a coursework platform; rather, it’s a massive database of informational resources on anything and everything to do with HTML5, from nuts and bolts to semantics to storage. Pick what kind of HTML development you’d like to focus on from three different groupings: mobile, gaming, or business, and you’ll get a comprehensive hub of tutorials, articles, and in-browser simulators to get going on HTML5. No credits or certifications are awarded here; registration and use of the site is totally free. Examples of information offered here include web application frameworks, debugging tools, and compatibility resources.
Want to learn Ruby in a very Zen-like fashion? You’ll want to check out RubyZoans, a simply arranged series of Ruby tutorials that aim to teach the Ruby language, syntax, structure, and common functions and libraries. A (free) download of the Ruby framework is required in order to get the most out of these classes, which are all completely free.
Stack Overflow isn’t a place for free classes, but if you’re looking for advice/help/shoulder to cry on for nearly any coding issue you might run into, than this is the right place. Thousands of developers use Stack Overflow to trade ideas, collaborate on common problems, or simply help each other out in a snag. Coding languages discussed here are plentiful, ranging from C# to jQuery to Python to CSS. Stack Overflow isn’t just a programming forum, however; it’s also a collaborative website built and maintained by those who use it (much like Wikipedia) with the goal of being an authoritative resource on all things code.
While Scratch, a project of the MIT Media Lab, is aimed for kids, anyone who wants to dive right into the basics of programming will find this site enjoyable. Scratch is a programming language meant for creative Web projects: games, music, art, stories, animations, etc. Learning how to use Scratch is an exercise in logic, which is a foundational building block for any code language out there. Scratch is free to download and fun to learn; once you’ve made something with this platform, you can upload it to the Scratch gallery and share it with the world.
As one of the most popular companies in the world, Apple offers a huge hub of resources specifically for developers who might (or might not) be familiar with their apps, devices, or web browser. From this core of information, anyone can access basic coding tutorials as well as much more advanced information, all for free.
If you’ve ever thought about developing for Android, a mobile platform with millions of users in nearly 200 countries all over the world, than this nucleus of everything you ever wanted to know (and more) is what you’ve been looking for. There’s something for everyone here, including the absolute beginner who has never coded in his or her life. SDKs, API documentation, design guidelines, etc. are also available, as well as training modules offered for novices to advanced users.
Mobile development is where it’s at on the MobileTuts+ site. There are a vast variety of high quality tutorials and articles here for mobile developers, ranging from Windows Phone SDK to cross-platform development to HTML5. There’s also the occasional insight with working mobile developers who give you a glimpse at what successful development technologies and strategies they themselves are using. The site is nicely organized into sections, so you can find tutorials, articles, tips, or videos quite easily.
Learn and practice your coding right in your web browser with this interactive site. There are several ways you can use Programr to learn something new or brush up on coding you already know and love: visit the Training Labs, where you can practice programming by solving real world exercises, take on one of the coding Challenges, check out one of the 2000+ apps that have been made by other Programr users for inspiration, or enter one of the ongoing Contests. All of the information here is free, and a wide variety of coding languages from Java to SQL are offered.
edX is a collaborative effort between Harvard University and MIT to bring free online courses from both institutions to the Web for anyone to take advantage of. Classes from Harvard, MIT, and Berekley are offered here for free, with more universities joining in the near future. Certificates of completion are awarded at the time of this writing for free; however, a “modest fee” for these certificates is planned for future students. Classes are somewhat sparse right now, but the origin of the classes as well as the informational content is well worth a look; for example, you could try Software as a Service from Berkeley, Introduction to Computer Science from Harvard, or Introduction to Computer Science and Programming from MIT – all for free.
YouTube, along with millions of cats-doing-stuff videos, offers a hub of educational content with offerings from organizations such as NASA, the BBC, TED, and many more. If you’re a visually oriented person who learns by watching someone else do something, than this is the place for you. You’ll find coding-related videos under the Engineering category; course offerings range from Intro to Computer Science to Web Development to Database Management. These are meant to be standalone informational offerings rather than part of a cohesive course; however, if you would like to dip your toes in a subject and want to get a quick video introduction from leaders in the field, this is a good solution.
Processing.org is a central place for Processing, “is a programming language, development environment, and online community that since 2001 has promoted software literacy within the visual arts.” Everything you need to learn this language from the ground up is here, including a free download of the software platform, tutorials, example code, and a forum for when you really get stuck.
Not all the courses offered at Code School are free, but there are several good ones that are (and you might just be tempted to take a paid one once you run through one of the classes!). The first thing you’ll notice about Code School is how well everything is designed – it’s just a very aesthetically pleasing site. Code School delivers all classes within your web browser via video lectures, various coding challenges and quizzes, screencasts, and intuitive coding tutorials where you get hands on with what you just learned. Each class has at least five levels, and all challenges/quizzes must be solved before you can advance to the next level. Once you get to the end and unlock the final level, you’ll receive a cool badge and potentially win some swag – like discounts off your next Code School course.
Hackety Hack is meant for people who have had zero previous programming experience; however, if you’ve been meaning to learn Ruby and you’d like to do it as painlessly as possible then this might be a good spot for you. You’ll be using the Shoes cross-platform toolkit to go through the lessons and figure out how to use Ruby effectively; once you get going you can upload your project to the Gallery of programs that other users have shared and show off your expertise.
Okay, yes, the title of this website is a little bit less than inspirational. However, this is definitely one of the most useful sites on the Web for learning code: C, Python, Ruby, SQL, and Regex. All of these languages are meant to learn using in-depth instruction found in a book for each coding platform. The “hard way” is basically this: learning each exercise in depth, making the code run, and not moving on until you’ve mastered what you’re currently looking at. The books are free online to read within your web browser; you can also choose to purchase them for a nominal fee if you’d like to keep them.
Just like MIT’s Scratch (another entry on this list), Alice is primarily aimed at the younger set who want to try their hand at programming. However, anyone who wants to give coding a go or simply flex their skills in another kind of environment will enjoy this particular platform. Alice is educational software that teaches students how to program in a 3D environment. Animations or games are the focus here, with tools and materials intended to encourage logical thinking, problem solving, and of course, computer programming. Alice was developed and is maintained by Carnegie Mellon University. The downloads and teaching materials are free, and it’s a great introduction to object-oriented programming, as well as fundamental coding concepts.
While all of the resources listed here are fantastic in their own right, there are still many more too numerous to list, for whatever coding language you might possibly be interested in learning. Here are a few Google queries you can use to narrow down what you’re looking for (hat tip to Tech Recipes for the more complicated search strings here):
“learn (insert coding language here)”
Believe it or not, this is an incredibly powerful search string, and will bring up a solid first page of results.
This tells Google to search within the URL keeping the search parameters to only .edu sites, looking for the coding language Python.
-inurl:htm -inurl:html intitle:"index of" +("/ebooks"|"/book") +(chm|pdf|zip) "python"
Now we’re getting fancy. Basically, this tells Google to find book or e-book directories with Python books in them, in several different formats. You can also look for specific publishers, like this:
-inurl:htm -inurl:html intitle:"index of" +("/ebooks"|"/book") +(chm|pdf|zip) +"o'reilly"
Or specific disciplines of study:
-inurl:htm -inurl:html intitle:"index of" +("/ebooks"|"/book") +(chm|pdf|zip) +"software development"
Bottom line: there’s a lot of free learning out there
As you can see from this articles, there is literally no end to what you learn online, for free, in the comfort of your own home at your own pace. You’re never too young or too old to start picking up new skills, and the latest employment studies are showing that people who know how to code – and code well – are some of the most highly desired by employers, making coding a viable, valuable skillset to have especially in a turbulent economic landscape. How did you learn to code? What was your first coding language? What made you decide on that particular language? How many coding languages do you know, and are there any that are your particular favorite? Please share your development experiences with us in the comments.