What Should I Learn Next to Understand Computers from the Hardware Up?
Asked by
MellowPine47
I'm comfortable programming in JavaScript and understand object-oriented programming, although most of my practical experience comes from the Minecraft Bedrock scripting API. I've also experimented with Electron, but working with libraries I don't understand internally makes me feel like I'm using tools without knowing how they work.
I'm considering learning C because I'm interested in embedded programming and want a stronger understanding of memory, hardware, and how software interacts with different architectures. However, I'm wondering whether C would still leave me relying on abstractions that hide too much. Would starting with assembly give me a better foundation, or would it add complexity without helping me understand the bigger picture?
I'm still deciding which area of computer science to pursue, but embedded programming appeals to me because it could let me build useful products from the ground up. Eventually, I'd like to run a small, self-funded company that creates ethical products without data harvesting and gives users more ownership. I'm looking for a practical learning path that helps me understand computers deeply rather than simply learning to use existing libraries.
Answers
Assembly probably isnโt the best first step. Itโs tightly tied to one processor architecture and can become very tedious before youโve developed a broader mental model. C is a better next language for embedded work because it exposes memory, pointers, data layout, and low-level operations while still letting you build substantial programs.
Reply to this answer
Take a look at the Nand2Tetris course. Itโs almost tailor-made for this goal: you start with basic logic gates, then build a computer, CPU, assembler, compiler, and simple operating system. Instead of only reading about the layers beneath a programming language, you construct those layers yourself. It should give you the foundation to decide whether C, assembly, embedded systems, or another area is the right next step.
MellowPine47: I looked into it and it seems exactly like what Iโve been searching for. Iโm going to start there.
QuietMaple31: If youโre considering the course, you can generally work through the material for free. A certificate is optional and is unlikely to be as valuable as actually completing the projects and understanding the concepts.
Reply to this answer
Add your answer
Answers are reviewed before publication.
MellowPine47: That makes sense. Iโm mainly trying to understand whatโs happening underneath the abstractions, not just collect another language, so Iโll look for a path that gives me hands-on experience with those concepts.