[News] Handmade Educational Roadmap

Abner Coimbre  —  2 weeks, 3 days ago [Edited 16 hours, 13 minutes later]
Hello Dear Readers!

We've hinted about our educational push since the year started, and it's time to discuss it openly. Your comments are always useful and we hope you encourage everyone involved!

Handmade Education (Overview)

If you haven't heard the recent audio podcast discussing Handmade's role on education, check it out here. These lessons are meant to be centralized, comprehensive, and cross-referenced enough for readers to go up and down different abstraction layers.

The idea to be unafraid to go up an down that ladder of knowledge is at the core of Handmade. For example, a command line tools lesson might encourage the reader to see how to implement grep themselves, by referencing another handmade lesson. Indeed, any programming concept that is hand-waved away could, say, have some Wikipedia-style notation saying "lower-level lesson needed."

Finally, these lessons are not some generic tutorials; they will have the imprint and personality of a passionate author, just like the caring software projects that reside here.

Handmade's First Batch of Lessons
Intro to Programming through C
Author: Allen Webster

Allen 4coding Webster takes on a difficult task--teach beginners how to program their computers, using C as their first language. This can potentially have a profound impact on how a programmer appreciates / understands their craft for years. I'm sure he's not stressing over it though.

Intro to Python
Author: William Bundy

Much like Allen, Bundy has an important role teaching beginning programmers how to program computers, in this case with the Python language. Python is famous for allowing rapid application development, as well as an easy-to-pick-up scripting / glue language to connect existing software components together. Our author has formally been a teacher before with vast programming experience, and his introduction through Python will be as illuminating as the rest.

Intro to Numerical Computation
Author: Demetri Spanos

Numerical computation covers a broad range of topics such as understanding and dealing with sources of error, data fitting, and ordinary differential equations. To start things off with enthusiasm, Demetri will be teaching us how to create a face-detection program without the use of popular libraries like OpenCV (which is admittedly more practical). Instead, he'll be working from the ground-up using C, and using raw RGB values as our starting point. Intense!

Building an 8-bit breadboard computer
Author: Ben Eater

Ben Eater designed his own 8-bit computer, and decided to do something interesting. He wrote a Fibonacci program in C, and compiled it to the assembly instructions needed to run on his Mac. He then explained which instructions came out of which statements from the original source. Going a step further, Ben translated the assembly to his own 8-bit machine language, explaining the Instruction Set Architecture (ISA) differences along the way.

The reaction from the YouTube community was such that he's undertaken a series of videos to show eager users how to build their own 8-bit computer on a breadboard. The series is still ongoing. With his permission, we will be taking his videos and making them into a proper project like Handmade Hero here on the network--with annotations, threads, and summaries along the way.

Intro to Unix Command Line Tools
Author: Abner Coimbre

A staple in the software development industry is the command-line interface (CLI). I started programming on Linux, using nothing but a terminal emulator and C. My work at NASA is done purely from a terminal (with some rare exceptions). Being able to explore an operating system through commands is a liberating experience, and it's still the lingua franca for any advanced configuration. It also opens up a pathway to understanding what is out there without a graphical user interface limiting what you can do.

I suspect the CLI will be a subject of many lessons here in Handmade, but I'll provide a general introduction for those unfamiliar to it.

Writing a Platform Layer
Author: Jeroen van Rijn (Kelimion)

Casey Muratori is one of the developers who has popularized the idea of creating your own
platform layers. We'd like to provide a written lesson on how to approach making your own layer for your software projects, and the website's lead dev Jeroen is more than up for
the task!

Removing CRT
Author: Martins Mozeiko

We all know and love the guide on how to remove the C Runtime on Windows, by Martins Mozeiko. We'd like to provide a proper lesson on what the C Runtime is, its importance and why it exists, and why it sometimes isn't desired on a project. Then, we'll show how to remove it from your life and have as barebones a software project as you can ever imagine.
Peer Review Process

I've developed a set of guidelines to peer review the lessons, which I could share once they've been ratified by the educators. We have great members such as Ginger Bill, Vassvik, and Mattias Gustavsson who are chatting regularly with the authors and providing insight as we develop the lessons.

If you are interested in peer reviewing, or maybe even become an educator yourself for Handmade, shoot me an e-mail abner@handmadedev.org.

Handmade Wiki System

Last but perhaps most important of all is version 2.0 of the website, which is underway. The team will be developing the wiki system necessary for these lessons to exist. We're moving from bbcode to markdown before the wiki comes to life. Each software project will also benefit from this because they may use the wiki on their own page for FAQ, documentation, and the like.

Signing off

You may wonder when these lessons will be done. The authors and I will be meeting every other Sunday to discuss progress, and some material will necessarily be finished before others (based on author's free time and the level of complexity inherent in the lesson). We do, however, plan to have all our planned lessons ready this very year. Let's encourage, support, and extend a helping hand to our authors! I hope you find this roadmap attractive, but your critical feedback is welcome.

Yours sincerely,
#11170 Alex Baines  —  2 weeks, 3 days ago
Sounds like a great lineup, looking forward to them. Props to the authors.
#11172 Simon Anciaux  —  2 weeks, 3 days ago
Nothing to add to insofaras's comment. I'm looking forward to them.
#11187 Boleban  —  2 weeks, 2 days ago
Hi Abner , I’m very excited about the < Building an 8-bit breadboard computer> annotations and threads , summaries project.

You’re thinking exactly what I was thinking.I had done the annotations and summaries already, but all in Chinese mandarin in a Word document, by the way ,I’m a Chinese ,lol.

I had kept the annotations myself , the reason is :1.For English native speaker , there is very little chance that he knows Chinese. 2. For Chinese , Youtube is blocked in China.Even if they can access Youtube ,the majority of Chinese,even college student with a CET6 can’t understand spoken English very well. So the value of my annotations and summaries about the course is very limited.
Any ideas on how we can working together ? I’m always looking for some chance to contributing to the handmadedev community.
#11189 Abner Coimbre  —  2 weeks, 2 days ago

Thanks; I'm quite glad you want to help out the community. Indeed, encouraging people to build their own very simple but fully-working machine will build a lot of confidence and overall understanding, because programming is ultimately about controlling these electronic chips.

Send me an e-mail (abner@handmadedev.org) and as soon as I get the chance I'll reply to you with different ways of helping out.
#11193 Anton Swifton  —  2 weeks, 2 days ago [Edited 0 minutes later]
Boleban, you could upload your annotations for all the Chinese immigrants and people who came to the US from China to study. This is not a small audience, and they know English at some level. Also, most of them would benefit from an opportunity to practice English, even if it's just watching tutorials on YouTube, and your annotations would make these tutorials more accessible for them.
#11195 Shazan Shums  —  2 weeks, 1 day ago [Edited 10 hours, 24 minutes later]
Hi is jeroen creating a platform layer for raspberrypi.(the one you can directly boot without the os ) .
And when is (or will there be) the post or video about making of handmade network website will be available. (Just curious on how "undjango looks").
Anyways the tutorial line up looks great looking forward to it.
#11205 Timothy Barnes  —  2 weeks, 1 day ago
Thanks for getting this together Abner.
I am very much looking forward to the Introduction to Numerical Computation lessons.
#11287 Nattee Setobol  —  1 week, 1 day ago
Thanks. I just started watching - how to build an 8bit cpu! It's really good!
#11316 KaizokuKat  —  1 week ago
So how much longer for world domination!?
#11317 KaizokuKat  —  1 week ago
I can not wait get my grubby paws (pun intended) on those great materials. I will beat down those pesky puppies in my neighbourhood for sure when I build my evil robot pirate cat minions mwaahhaha nyaaaaaan.
#11355 Christian Grier Mulvenna  —  4 days, 12 hours ago
Super! Very excited
Log in to comment