Learning new skills is crucial in working in IT and online courses are a convenient and efficient medium. Here are some tips based on my experiences with different providers.
Coursera offers lots of courses by universities in just about all the fields universities typically work in, and some courses by commercial companies. They are indeed supposed to resemble university courses in that they need be taken at the right time, with weekly lectures and assignments. This can be limiting, but also enables active discussion boards. Many courses can also be taken at any pace or time.
Coursera can be difficult to navigate when searching for courses, given they, apparently intentionally, make it difficult to find out which courses have to be paid for, and how much they cost. The way to find out is to go to the catalogue, select a course, not a specialisation, and to click Enroll. This should give a number of options for enrolling on the course, some of which might be free and others not, depending on whether a certificate is wanted. Some courses don’t allow doing the coursework without paying. The options are varied and depend on when the course was first created; Coursera have had a habit of changing their policies. The oldest courses are typically free, usually found at the end of the catalogues. Free 7-day trials are also offered for specialisations, groups of courses. The assignments offer an opportunity to get practical experience on many topics, and although the quality of the courses varies, Coursera is generally an excellent course provider.
Codecademy offers practical exercises in different coding languages, but no videos. It is an excellent website for people who are new to programming, but does not offer much depth. The courses on different languages tend to be similar to each other and focus much on the basic concepts of programming, so lessons on what strings are, for example, might get frustrating, especially after having taken other Codecademy courses before.
EdX is so similar to Coursera, I can barely spot a difference! However, it does differ from other MOOC (massive open online course) providers in that it is a non-profit organisation.
Udacity offers specifically IT-related courses by universities and other providers, some of them for free. Unlike other providers’ more conventional videos, Udacity’s videos typically consist of mostly close-ups of the instructors’ hands writing notes and then pointing at them, which I have found unpleasant to watch, particularly if watching videos at a higher speed, such as 1.25 or 1.5. In other settings, high speed can indeed be a good trick with online courses, not only making progress faster, but also helping with concentration. For those not easily nauseated, Udacity is an excellent choice, but I will stay away.
Youtube offers huge amounts of free educational videos, some of which form courses, of hugely different styles and qualities, of course. Most notably, this features Khan Academy, which offers courses from kindergarten to university level. They also have their own website which offers more functionality, particularly for programming exercises. Not particularly many programming languages are covered, but the ones that are, seem to be well made.
There are, of course, many smaller providers as well; googling for tutorials might be worth a shot.
Runestone Interactive, for example, offers a short list of good courses featuring reading, exercises and videos, and anyone wanting to learn Python might want to visit https://wiki.python.org/moin/BeginnersGuide/Programmers which offers a long list of useful links.
Free Code Camp
Finally, Free Code Camp offers web development tutorials completed either alone, or in pairs. After completing all project tasks, students are partnered with non-profits to build web applications, giving the students practical development experience. Free Code Camp is one I have not actually tried, but from how it sounds, I should have!