A resource for going from NAND to a running program (Tetris in this case): http://nand2tetris.org/
A bit less flashy/more old-fashioned, Niklaus Wirth's 2013 edition of Project Oberon covers an FPGA-based CPU, operating system, compiler, tiled window manager and text and vector graphics editors. No Tetris though. http://projectoberon.com/
but it must have been amazing to see first-hand how physical inanimate objects come together to build intelligence.
Many CS curricula still start with building a CPU out of basic logic gates (and for those who haven't done this before, this is certainly a recommended exercise - make a simple CPU in a logic simulator that can run a short program). The first time you see how it all works seems like magic, then you remember that everything just fits together logically, and realise that it isn't magic after all.