# Why I even started
I always looked at my computer in awe. "How does a clunk of metal do such beautiful things?" I ask myself. I always thought of them as a black box of magic, you just input data and it comes out however you want it. Until one day, I decided to truly learn how it works.
The story
I started about a year ago, with the aim of understanding how computers work at the lowest level. I started by following a simple YouTube tutorial. I just copy pasted what the creator did and it worked. At some point though, it stopped working. I panicked, I had no AI to help me because it's too dumb to work with extremely low level stuff, and I could not debug it because I copied all of it with no real knowledge. That was when I decided to give up, I did not wanna deal with debugging stuff that I did not understand.
Until about 2 months ago, I decided to stray back into that field. I dove into how a CPU handles data and instructions, and slowly, I understood how it all worked. No AI, no YouTube tutorial that I did not understand. I fully owned the CPU and the knowledge behind it.
How it helped
Making this CPU helped me understand how a computer works deep down. I stopped thinking of them as a black magic boxes and started visualizing their own unique components. The ALU, RAM, program counter... All these seem surface level stuff, but truly working with them and forcing them to interact is what makes it all click.
Understanding how a computer works is, in my opinion, essential for coding anything lower-level than python. You understand how data flows, how components interact, and how each part of your CPU speaks.
You stop looking at std functions as a spell, and start looking at them as simplified CPU instruction.
Where to find it, and where to start
You can find this project here, please star it if you wanna support me, and check other repos if you are interested in my work.
To start making your own CPU, start like me, by looking at YouTube tutorials. Don't follow it blindly, instead google each component before even building it, then try to make the component on your own after understanding what it does. When you're done building it on your own, go back to the tutorial and watch what the creator did different and how theirs is potentially better than yours.
Keep in mind, no one did this is a week or a day. Don't get mad if you don't instantly get it. It took me a whole year!
Note
I designed the CPU in Logisim, the documentation for it can be found at Novus-Core1/Documents/inst.md
Top comments (0)