My favourite programming learning tools in 2020
Yep 2020 has been a weird one, but one of the few silver linings has been getting a bit more time to focus on my own programming learning. And I’ve discovered some really awesome resources this year. Please, let me share them with you and tell you why they are great!
Advent of Code - for learning programming fundamentals#
Created by Eric Wastl, Advent of Code is a series of Christmas-themed puzzles released every day from 1st to 25th December, which push you into all sorts of computer science fundamentals (IO, data structures, algorithms, regex etc). I haven’t found a more effective way to get into all the nooks and crannies of a programming language. On top of that, it’s all just really good festive fun.
While there are learning upsides to coding a puzzle solution everyday, keeping up with the schedule can definitely be tough if you have a busy day job. This year, I’m letting myself take it slow - diving deep into each of the topics coming up and browsing other people’s solutions to squeeze all the learning out of each exercise. I plan to finish some time in March and I’m ok with that. You can follow my progress here.
Execute Program - for a better online tutorial experience#
https://www.executeprogram.com/
I’ve already written about how I used Execute Program to learn regex. With tracks covering Javascript arrays, SQL, ES6, Typescript and more, Execute Program uses spaced repetition to help you learn, and crucially retain your understanding of, core language features.
Of the many online tutorials I’ve attempted, I’ve found Execute Program to be the most effective by absolute miles. A lot of providers deliver good content but few have been able to scale the feedback element, which is arguably the most important part of the learning process. Execute Program regularly assesses where you’re at and adjusts its content accordingly, which means that time invested in the site really pays back.
Plus it’s all written by Gary Bernhardt and he knows wat’s up.
Roam - for making smarter notes#
Roam bills itself as a “tool for networked thought”. Instead of the traditional directory structure used in note-taking apps like Notion, Evernote and OneNote, Roam lets you organise your information in a graph. Bi-directional links between notes (and even bullet points within notes) make it super easy to join dots between things you’re reading, watching and thinking about.
This graph structure is what makes it especially fantastic for learning. Let’s say you read an article about integration testing, you can quickly find any other notes you’ve ever written which mention integration testing. With every new note, you’re building out your knowledge, drawing connections and improving recall.
Roam has had a ton of hype, which may or may not be justified. All I can say is that in just 3 months it has fundamentally changed how I get my head round new ideas, which is pretty exciting.
Readwise - for remembering the interesting things I read#
Readwise is a cunning little app which brings together all the quotes you’ve highlighted on reading tools like Amazon Kindle or Pocket. It then also uses spaced repetition to show you a different set of highlights each day and remind you of ideas you found interesting.
This has really helped me juice the insights out of stuff I’ve read this year - particularly when it comes to books about programming which can be a little…dry.
Bonus: it also integrates with Roam and shoots your highlights from a book or article straight into a dedicated page in Roam along with an metadata you want, ready for any more detailed notes you might want to write in Roam.
Learn X in Y Minutes - for learning another language#
The tagline of this fab little site is “Take a whirlwind tour of your next favourite language”. It does exactly what it says on the tin - with concise intros to over 100 programming languages. It’s perfect if you’ve got your head round all the major aspects of one language and want to see how stuff works for another, but don’t have time or appetite for the inevitable fluff that comes with a beginner course.
BaseCS - for all the stuff which wasn’t covered at Bootcamp#
Vaidehi Joshi created the BaseCS blog to learn computer science fundamentals, in a perfect illustration of the old adage that the best way to learn is to teach. Her articles cover complicated topics - from graph theory to hex codes - in a wonderfully accessible way, providing a perfect jumping off point if you want to dive deeper.
If you prefer audio, you can catch Vaidehi talking through each topic on the BaseCS podcast. Each episode is hosted by Saron Yitbarek who has an amazing knack for asking the question that just popped into your head.