What Should I Learn Next to Understand Computers from the Hardware Up?

0
3
Asked By MellowPine47 On

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.

2 Answers

Answered By CircuitCedar2 On

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.

Answered By LogicLark8 On

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.

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.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.