If you are looking to bring your skills into more current practice, learn a new programming language, or just experiment with taking a couple of technical classes, you are living in the best of times. There are a lot of free classes taught by some of the best teachers in the world to choose from today. This education goes by "Massively open online courses" or MOOCs, and we have covered the topic most recently here in a story about "nanodegrees" or specific training regimens.
But how do you go about getting this training? How can you figure out what skills are important and pick the right MOOC? As we mentioned in this article last year, "Taking a MOOC in a technical topic can help, according to employers. The caveat: People need projects that show hiring managers how they've used the tech skills they learned online." Typically, most online classes have a final project requirement, but certainly you should check this before signing up.
Besides this final project, here are some other things to look for when selecting a class:
What kind of learner are you?
We all learn in different ways: some of us have to go through the actual experience -- these people respond better to tactile situations. Others learn better through more visual or auditory cues and need materials specializing in these methods. You can take this short online quiz to find out which style you are. Then you should focus your attention on online programs that offer those types of materials so you can learn the information your way and retain it better. For example, if you are an auditory learner, you may wish to rewind key portions of the lectures and make sure you understood what is being presented. And after you have watched a portion of the lecture, summarize it and recite it aloud. If your are more of a visual learner, then by all means be sure that you look carefully at all study materials. Use charts, maps, movies, notes and flashcards. Practice visualizing or picturing words/concepts in your mind. Finally, if you are a tactile learner, think about ways that you can involve more of your senses besides just watching a particular lecture. Make study sheets and refer to them often. Look at programs that offer more interactive components to the lectures too.
Are you ready to become a full-time student?
You may or may not; depending on where you are on your career path and how much savings you have set aside. Taking a MOOC could be a nice transitional step to see if full-time studies are the right fit for your circumstances.
What else comes with the class?
If you have trouble concentrating on a webinar for hours at a time, taking online classes may not be for you. The ideal situation is to combine the lectures with homework assignments, extra readings, hands-on labs, discussion forums, and other supporting materials, just like you would have in an actual classroom situation. Each online provider weaves these elements somewhat differently around the video lecture window: you have to try each one out to see which makes sense for your learning style.
Another differentiator is how well each courseware provider integrates their evaluations of your own progress and how this is part of the course workflow. For example, you may need to successfully answer a series of knowledge-based questions showing that you understand lesson 3 before you can continue on to lesson 4.
Do you need a support group?
Some people learn best from seeing how others approach the problem sets and programming assignments. If you are such a learner, you will want to augment the online lessons with an in-person support group. Others need extra motivation or a reason to come to class if they are working with others on a project and not just watching the videos in the privacy of their own room.
One novel approach is being piloted by a St. Louis organization called Launchcode.org. Last year, ITworld wrote about how they took the Harvard CS50 Intro to Programming class and added a series of meetups and in-person support during the weeks that the class was offered. Since that first experiment, more than 50 graduates have gotten programming jobs in St. Louis. They are in the process of building another operation for Miami Fla.
Pablo Philipps was one of the graduates from that first Launchcode class. He was four years out of college – where he majored in philosophy – and was working at service jobs. "I wanted to find a job that would be more intellectually challenging and paid better," he said in an interview. He first heard about programming and dabbled with a class at CodeAcademy last year when one of his customers told him about Launchcode. After attending the first month of the Launchcode course, he decided to quit his job and devoted himself full-time to learning how to code. Now he has a job at Fusion Marketing in St. Louis, where he is a junior developer. "It helped that the Launchcode class gave me accountability and the motivation to learn and the structure and peer support around me," he said. "I knew instantly that this was the right path for me and that I really like programming." The class gave him the support he needed to finish the homework assignments and to hang out and talk to his fellow classmates when he would get stuck on a particular problem set.
When he first was hired at Fusion, he had four of its existing programmers mentoring him. "I am one of the oldest members of the team, some of my colleagues have been programming since they were teens," he said. "I am feeling very fortunate to have had this experience," he said. "It really helped jumpstart my programming career."
The Meetup website has a collection of several hundred coding groups around the world; this could be a useful resource to make in-person connections and work on collaborative projects.
Do you have any programming background or prior programming classes or experience?
If you are coming into programming cold, this could be rough going at first until you get enough skills to be able to complete the assigned projects on your own.
As you can see, this is a lot of work. It can be very daunting and even a bit overwhelming. Some of the Launchcode participants told us that they were so frustrated that they eventually gave up on taking the class, or didn't get any job offers because they hadn't ever finished their final projects. You could say that it is a learning process, to be sure.
Where to find online classes
When you applied to college, you typically started your research with the course catalog. There is a catalog for the MOOC world as well: this site lists thousands of computer and tech-related courses. You can quickly see by browsing this list the big three in terms of online class offerings are:
These have the largest choices of courses, including non-technical training and general university classes. For all three, you take the class at a specific date and time. If you are thinking about taking one of their classes, review this analysis of these providers by online educational consultant Jonathan Haber. "Each of these providers followed a different direction with regard to course design, business practices and approaches to the market," he says. For example, Udacity is better at integrating assessment items directly into their course workflow, whereas EdX courses demand more of a commitment from their students.
However, there are plenty of other sources of courses that are more specifically focused on programming or IT-related instruction:
- CodeAcademy has general computer science training and is probably the most thorough instruction but limited in terms of number of different course offerings. It is self-paced so you don't have to wait for the class to start as you do with the Coursera or Udacity classes.
- Class-central.com offers classes in a wide range of subjects besides computer science, including basic math and engineering
- W3Schools.com has a large selection of programming language classes and technical topics
- Apple's iTunesU has several programming courses from major university engineering schools, particularity helpful in building iOS apps.
- Google Code University has several dozen classes in programming and web development topics. Google is also developing its own Classroom portal that will help any teacher collect assignments and distribute documents.
- Teach the Web used to be Mozilla's School of Webcraft and is now part of a larger effort that has other technical classes besides web technologies.