I've helped many people learn programming throughout the years, and I've noticed one thing — people increasingly fail to understand how to build things from scratch. Instead, they rely on other people's code without understanding how it works.
I wanted to do something to help, and I decided to create a series of videos where I teach people to code tools we use every day from scratch, such as a regex engine or OCR.
I decided to use Python for these tutorials, to keep the barrier to entry as low as possible. However, I did want to do things as “from scratch”, as possible, so the projects coded on clumsy computer do not use any Python libraries, and in most cases they have zero import statements. This way, we're creating everything ourselves, and can truly understand what's happening.
I think having this kind of deeper knowledge and confidence when programming not only makes you a better programmer, but more importantly, it also helps you enjoy programming a lot more. It's a special kind of feeling when you feel like you truly understand what the computer is doing and exactly what code you're running.
At the time of writing this (2021), I've decided to take a small break before making more of these videos, because I want to think about what the very best way to teach programming would be — perhaps I can do a better job!
The source code of everything we code on clumsy computer is available on Github. I also used to stream episodes live on Twitch, so you can still find a couple of VODs on the clumsycomputer Twitch channel.
Coding a regex engine from scratch with no imports
I found this video especially cool to do, since regex engines are something we use every day, but we don't really stop to think how they're implemented. I think it's really valuable to see how you can build such a useful too with such little code.
Coding OCR with machine learning from scratch with no imports
Machine learning is obviously a very hyped topic, but often people just use libraries and fail to understand the concepts behind it. OCR is a really easy and intuitive way to get started, and I think I managed to create a video that can give people an understanding of what it actually does.
Coding an extensible Twitch bot from scratch in Python
I needed a Twitch bot for my stream, so I figured I'd code it on stream. This is not a particularly difficult project to do from scratch, but it was really fun to do because you can really put your own spin on a Twitch bot, by adding your own commands and functionality. This is a two-part series.