Friday, 10 January 2014

Learn How to Code: 22 Free Online Resources






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. 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

In this article, we’re going to look at a few different resources online you can tap into for coding know-how; 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.

CodeAcademy

CodeAcademy aims to make learning how to code fun, and they do this by making all of their courses game-based in nature. The site offers “tracks”, which are series of courses grouped around a particular topic or language. Course offerings include JavaScript, HTML, CSS, Python, Ruby, and JQuery. Registration is free, and once you get going in a class, you start to earn points and badges as a way to keep you motivated. No certificate or credits are offered here, however, the interactive classes make complicated concepts seem not as intimidating. CodeAcademy also runs CodeYear, a year-long collaborative effort to get as many people learning how to code (one lesson per week) as possible. More than 400,000 people have signed up at the time of this writing.

Google Code University

Learning how to code from the team behind the most popular search engine in the world? Seems like a pretty good deal. Course content here includes information on Computer Science, Programming Languages, Web Programming, Web Security, even Google APIs and Tools. Google Code University is free and does not require registration; classes are offered via recorded video lectures, talks, problem sets, exercises, documents, and slides. Computer programming language courses are mostly introductory in nature, and include languages such as Python, C++, Go, and JavaScript. No certificates or credits are awarded with the completion of these classes.

P2PU

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 Rocks

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.

The Code Player

If you’ve ever wanted to be a fly on the wall and watch over the shoulder of someone who really knows what they’re doing with HTML5, CSS3, or JavaScript, then The Code Player is for you. Click on any of the video offerings, and you’ll first see the proposed code snippet in action; for example, a gauge chart written with Canvas and Javascript. Click on “play walkthrough”, and here’s where it gets really interesting: a screencast of how the code was written, along with background information and comments. The end result of the code is also included if you just want to copy and paste for your own project.

RubyKoans

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

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.

Scratch

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.

Apple Developer Center

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.

Android Developer Center

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.

MobileTuts+

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.

Programr

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

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 EDU

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

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.

Eloquent Javascript

Whether you’d like to learn JavaScript from the ground up, or merely brush up on a few fundamentals, then you’ll want to check out this website. It’s actually based around a full-length book, and is browser-based with game-based interactive tutorials that let you see what JavaScript can do in a fun and intuitive way.

Code Avengers

Get your inner superhero on with this fun, game-based site that offers comprehensive courses on HTML, CSS, and Javascript. No registration is required, just click the “Get Started” button and you’re off and running. For example, the JavaScript 1 course is 40 short lessons with five tasks that you must complete in each lesson before moving on to the next. Each module also offers interactive challenges and a quiz to test your newfound skills. Cool features: a glossary that is instantly available for whatever node you’re currently working on, a notepad application if you want to take notes, and a list of Code Avengers keyboard shortcuts so you can easily navigate within the website. Classes are free.

Code School

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

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.

Learn Code The Hard Way

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.

Alice

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.

Google it

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.
inurl:edu "python"
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, there is literally no end to what you can learn online, 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.www.jahsent932.blogspot.com

No comments:

Post a Comment