We live in crazy times, where information is everywhere and resources are free. I learned coding and server administration 20 years ago by disassembling existing code, tweaking it and seeing what happened. Oh, and spending a shitload of time on IRC. Fortunately, it’s a little easier for folks these days.
There are lots of reasons to consider expanding your skillset. It’s a tough economy, and making yourself more marketable is never a bad idea. Maybe you’re bored with your current career path, or maybe you’re already working on technology but want to learn more about the fundamentals of some cool stuff you haven’t had time to explore on your own yet.
Maybe you’re currently considering taking on an interesting project that pushes the limits of what you’ve done before and you want to start off with a firmer foundation – whatever the reason, there are great resources available to you right now for free.
For Fun
These resources are not necessarily easy (or even fun), but they are less structured classes, sometimes just consisting of video tutorial libraries, other times taking a more interactive approach but not requiring homework, assignments or quizzes to be completed within a specific timeframe. These can be great for busy people, but some folks will find that they end up not ever completing the courses specifically because there is no deadline.
Code Academy – Low barrier to entry, I love these folks as a starting point for newbs. (They were the other thing I recommended in the Feb 2013 issue of FastCompany Magazine, but I talk too much so they could only use one of my recommendations.) You won’t become a 1337 h4x0r or anything, but it’s a great place to point people with little or no programming experience to get their feet wet in an interactive and fun way.
Code Avengers – I haven’t used this personally, but it looks like a great starting point for kids.
Google Code University – Lots of great resources, but I’ve run across a lot of broken links and dead ends. It’s not my top choice, but can be useful when looking for tutorials to solve a specific problem.
PHP Academy – Useful PHP video tutorials – not really what I’d consider actual courses, but still worth checking out. Free, but they guilt you into donating. 🙂
Peer-2-Peer University – Check out their School of Webcraft group for programming courses.
Code School – This is a gorgeous site with a very friendly interface and teaching style. A little too lightweight for someone looking for serious learning, but it’s fun to use and teaches uses concepts and language that is easy for non-nerds to understand, so it makes for a good starting point. They’ve taken a gamification approach, so completing sections unlocks badges. Because, why not?
For Serious
These sources tend to be more structured, and are often free extensions of actual college courses from well-known universities like Stanford, MIT, Harvard, etc. While these will require more of a concerted time commitment, they tend to get into a little more detail. You won’t get college credit, but there’s the added bonus of sometimes having more than just technology topics to pick from, with a self-development menu that’s a little more diverse. Be sure to check out the syllabus and schedule, and make sure you can actually allocate time to hit the class deadlines if you’re looking to actually pass the class.
All of these have quizzes and assignments, and many have mid-terms and finals. Can you cheat on them? Of course. But it’s your time you’re wasting if you do, so don’t be an idiot.
Class2Go Stanford – I’ve taken a few of these classes and so far, the pacing and content are quite good. There have been some technical glitches with their assignment grading, but they’ve been attentive to try to get to the bottom of it. You will receive half-credit for quizzes and assignments you miss the deadline for, so set aside the time. The mid-term and final are timed, but they give you a reasonable amount of time to complete it.
Coursera – Probably one of the best-known free resources for online learning, they have a great selection of courses spanning a wide variety of topics.
Udacity – While their course selection is smaller than some of the others in the For Serious category, the classes available are massively interesting and specialized in the computer and math sciences.
edX – EdX is a not-for-profit enterprise of its founding partners Harvard University and the Massachusetts Institute of Technology. They have a wonderful collection of courses that cover everything from Greek Mythology to Quantum Mechanics. They make me wish there was more time in the day.
MIT Courseware – Great variety of courses. I haven’t used these personally yet, but I’m looking forward to it.
For me, the slightly more structured approach works better. There will always be 900 things I want to learn more about, but I also work full-time and run a non-profit and dick around with a bunch of side projects, so I’ll just never make the time to better myself unless I have an immediate need, or unless I will fail a class if I don’t do it.
I don’t know why that tactic still works – I haven’t been in school for a very long time – but it does work. If I can only get half-credit on a quiz because I missed a deadline, I’m a little more motivated to get that quiz done, regardless of the fact that it’s not going on my permanent record, and no one will ever know but me. You’ll want to try classes from both groups and see what works best for you.
There are, of course, thousands of online communities, forums, and so on, which are incredibly important in learning new technology, but this list highlights places that focus more on them teaching you, versus you or the community teaching yourselves. That said, I cannot overstate the value of learning from and contributing to online learning communities and open source projects, and those communities should be used in addition to course materials for the best results.
With the immense, diverse variety of online courses available today, there’s really no good reason not to spend a little time learning something new. I’m a big fan of ongoing self-development – it’s why I love the technology field so much. Even if you think you know everything there is to know about technology and programming, consider checking out some of the non-CS classes. I think your Warcraft Clan will forgive you if you spend a half-hour a day trying to better yourself. Then again, maybe not…
Final note: W3Schools was left out on purpose, as they have a long history of teaching incorrect information and making no real concerted effort to try to correct their mistakes. In general, I wouldn’t trust them personally, but I’m sure there is value in them for some people. I’m just personally not really a fan.
Did I miss any? Let me know in the comments!