The best online course & learning platforms, 5 of 5

Finally, here’s the last installment in this series of posts on the top learning platforms that I’d recommend.

freeCodeCamp (grade: A-) | freeCodeCamp is a unique platform in that it’s entirely free (founded on the principles of open-source software, so anyone can contribute to the curriculum) and offers an organized series of hands-on exercises for learning web development from the front-end to the back-end, using an entirely-JavaScript stack consisting of React and Redux on the front-end, and Node.js on the back-end.

As I’ll mention here now and again in the future, just because something is free doesn’t necessarily make it worth doing, as “free” resources still require a time investment. With that said, freeCodeCamp offers a great curriculum for learning the basics that’s ideal for those just jumping into learning web development. The exercises are bite-sized and simple enough for just about anyone to start getting their feet wet. Additionally, the curriculum offers a variety of projects where you’re encouraged to write code from scratch, which is a great way to dive in further.

The only real downside to freeCodeCamp is that its curriculum can be considered incomplete—i.e., there are some information “gaps” in the curriculum that need to be filled in. In particular, on the front-end alone this includes missing topics like writing semantic HTML5, the CSS box model and cascade, the DOM, and webpack. The back-end topics are even more incomplete, and may very well require extended self-studying to complete the exercises. While filling in these holes can be rectified by simply using other courses and learning platforms in conjunction with freeCodeCamp, it’s important to note that freeCodeCamp alone doesn’t quite teach everything that you should know. Just consider it more of a roadmap and study guide, rather than a definitive standalone resource.

YDKJS (grade: A) | YDJKS, or “You Don’t Know JavaScript,” is a book series available either online on GitHub or in paperback on Amazon. Written by Kyle Simpson, this is an excellent series of books that goes into a lot of technical detail on the JavaScript language—way more detail than the casual person will be anticipating!

In fact, YDKJS is so technical that I’d be hesitant to recommend it for those who don’t have a computer science background—it jumps through concepts like OOP, types, grammars, and ASTs without explaining any of them and assuming that you already know them. If you do have that background, YDKJS is indispensable for learning the nitty gritty details of JavaScript, but if you don’t, I’d recommend holding off until you get there. A great online course to help get there is edX’s CS50X from Harvard, and there are certainly plenty of more-accessible resources for learning JavaScript as well, which I’ll cover in a future post.

As of this post, YDKJS is currently being updated for a Second Edition.

Construx (grade: B+) | Construx is an online course platform primarily geared more towards corporate software environments and less towards aspiring developers. A sample of course titles can help provide a picture of what this platform offers: Agile Planning and Estimation, Design Patterns, Scrum in Depth, Software Design, Software Project Management, and Software Risk Management are just some of the course titles on the platform.

Suffice it to say that Construx doesn’t cover a lot of what aspiring developers are probably looking to learn, but it’s a fantastic resource for learning some of the higher-level topics that go along with software development—generally software design, organization, testing, and project management. Certainly it’s an ideal platform for those looking to make a future jump towards a senior developer or managerial position, but it’s not exactly for those just getting started on their coding journey.

That said, Construx is still a valuable platform, even though the courses heavily lean toward being “academically corporate”. That does unfortunately mean its courses are very “dry” in presentation, but more often than not, they’re packed with lots of useful information on high-level software development techniques. In a future post, I’ll be highlighting a select few of the courses that I think are the most useful for junior-level devs.