Let's Learn Algorithms - Updated Format, MOAR VIDEOS!

Join the discussion on Reddit

I started the Let's Learn Algorithms series originally by writing tutorials that would:

  1. Teach how an algorithm works
  2. Demonstrate how to implement that algorithm in code
  3. Provide some practice problems so you can get real practice implementing the algorithm in different scenarios

(2) and (3) are in my opinion incredibly important pieces to the puzzle that are often missing in many other courses, so I really try to give them just as much focus as the initial lesson that just teaches how the algorithm works. Let’s face it - if you can’t recognize when to use an algorithm, knowing it doesn’t serve you much purpose.

The entire series is based on feedback on reddit and my personal experience at college learning with fellow classmates on the programming team (we did things like Topcoder, ACM ICPC, Google Code Jam, etc). I tried to replicate what worked well for me and a few friends who all learned a ton of algorithms in a relatively short timeframe.

Up until recently I would always start each lesson by writing a text-based version of everything and then I would try to make time later to come back and record videos/screencasts to go along with the tutorials. So far that format has worked well for readers (I think?), but unfortunately it is incredibly time consuming on my end. It is also starting to feel like a bad way to move forward because it feels way less natural and inline with how I learned algorithms.

Algorithms are tricky to write about because they entail a lot of minor details that are easy to miss or gloss over. Writing about all of those details is very hard hard because you can’t be writing a 20 page book for each article. It just simply takes too much time. I think this is why so many people find themselves struggling with algorithms at times - there are just so many small pieces that can be skimmed over and the end result is a lost reader.

Moving forward I am looking to try out a new approach. Rather than writing first, I am instead going to focus exclusively on videos (screencasts to be precise). I’ll try to also provide transcribed text, but that will be auto-generated so I can’t promise it is 100% accurate.

I am opting to go with this format because:

  1. I can produce more content in less time
  2. I can cover all of those minor details much easier, because you are constantly watching what I do in realtime rather than reading a version that I have edited and trimmed down over 3-4 passes.
  3. It is a little easier to break videos this way into smaller pieces, making them easier for viewers (YOU!) to consume.

Because this is a new process, I would like to get your feedback on it. If you happened to read one of my past articles, you can start by checking out the new format with my Graph Theory series. The videos in that series that I have published so far are:

If you haven’t read any of my past articles you can easily jump into the graph theory series and any feedback is welcome, but if you get a chance I’d also love to know how you think it compares to one of my older format lessons, like the one on bubble sort:

TL;DR - I would love your feedback on how I can improve the series. Get in touch - jon@calhoun.io, or leave a comment on Reddit.

Learn Web Development with Go!

Sign up for my mailing list and I'll send you a FREE sample from my course - Web Development with Go. The sample includes three chapters from the book, and over 2.5 hours of screencasts.

You will also receive notifications when I release new articles, along with other freebies that I only share with my mailing list.

Avatar of Jon Calhoun
Written by
Jon Calhoun

Jon Calhoun is a full stack web developer who also teaches about Go, web development, algorithms, and anything programming related. He also consults for other companies who have development needs. (If you need some development work done, get in touch!)

Jon is a co-founder of EasyPost, a shipping API that many fortune 500 companies use to power their shipping infrastructure, and prior to founding EasyPost he worked at google as a software engineer.

Related articles

Spread the word

Did you find this page helpful? Let others know about it!

Vote on Hacker News

Sharing helps me continue to create both free and premium Go resources.

Want to discuss the article?

See something that is wrong, think this article could be improved, or just want to say thanks? I'd love to hear what you have to say!

You can reach me via email or via twitter.

Recent Articles Mini-Series Tags About Me Go Courses

©2018 Jonathan Calhoun. All rights reserved.