Low-Level Computing Resources
Comments recommend courses, books, and projects like Nand2Tetris, assembly for classic CPUs (e.g., 6502, 8086), and FPGA implementations to understand computer architecture from logic gates to software.
Activity Over Time
Top Contributors
Keywords
Sample Comments
Not really identical, but I'd recommend the course Nand to Tetris (I believe on YouTube/also some online platforms) and this introduction to assembly - https://github.com/hackclub/some-assembly-required
Why not assembly language? Learn a simple one in a simulator (like 6502 or 8080).
Seconded! Also play with assembly language for a small CPU, even in an emulator. Doing assembly in the 68k and Z80 really helped me grok computers. Even the old assembly makes super CPUs of today more understandable.
Perhaps it's not too popular, but VHDL or Verilog are a ton more useful for learning about how a machine works. Seriously, writing some x86 assembly teaches you a thing or two, but implementing a full CPU from the design of the ISA to putting it on an FPGA is the way to go. Once you've done that, all the magic is gone, and computers are completely transparent and understandable.
Nandgame is very good, id skip the nand2tetris as its a bit outdated.My recommendation is to move to playing around with microcontrollers and writing stuff in C for them, compiling it to assembly and understanding what each instruction does.Past that, there is the whole "how to write an OS" which is a fairly complicated topic. You can skip that as you are never gonna really be in that area unless you are working on consumer facing product that needs some ABI.You can go stra
OP, you should take a look at Casey Muratori's course at computerenhance.comThe first part of the course's homework creates a simulator of the 1978 intel 8086 (which modern x86_64 assembly still closely resembles). You will learn a lot of things about computers that are really difficult to find elsewhere.
I recommend Assembly, specifically for classic 8-bit CPUs like the Z80 or 6502. Assembly is unique and fun and, if you go with the classics, the learning curve is shallower and you won't be distracted by the constraints of modern chips such as pipelining and power consumption.
Please consider reading and working through nand2tetris.It's really great.
Start learning 8086 or more commonly known a x86 Assembly... That will get you much closer to the hardware and will give you entirely new sets of problems to solve and an immense knowledge of how computers work.Guaranteed to make you a better software engineer.
I personally doubt you'll get anything out of this route, but maybe I'm not seeing a line of reasoning that led to this.On a more helpful note, I'd check out a few books (try https://hackernewsbooks.com) and then pick a subject/domain you find interesting and create a small project to use as a learning medium.Also, to tinker with assembly you could start with simple but interactive processor an