I've often heard that the best way to learn how something really works is to try to build your own version of it from scratch. I think the basis of this idea is that having to re-derive relevant abstractions and then implement them on your own requires/engenders a much deeper, intimate understanding of the concepts involved.<p>As someone who loves learning and wants to improve my knowledge of computer science and programming (among other things), I often ask myself what things I'd like to build from scratch, given the time and energy. Right now this includes a compiler and an OS.<p>So, HN, I ask you, what thing(s) do you have a burning desire to build from scratch?
Enigma like crypto machine using rotary ciphers. Perhaps a Hagelin or Transvertex hc9 or a m209.<p><a href="https://www.cryptomuseum.com/crypto/index.htm" rel="nofollow">https://www.cryptomuseum.com/crypto/index.htm</a>
A model checker for timed-automata.<p>I'm currently working my way through "Timed Automata: Semantics, Algorithms and Tools" and I'm going to implement the shown algorithms.
Given time and a freedom from financial concerns,
a full stack from FPGA upwards.<p>(something like Project Oberon)<p>Maybe a relay-based CPU.<p>An alternative high-CPU count, low individual CPU-capability, multi-cpu system on a single chip, each with small amount of memory with "network-on-chip" interconnects.