DEV Community

Andrew Rawson
Andrew Rawson

Posted on

CS104: Building a hardware stack in Python

Here we are approaching the finale of Codecademy's CS Certifictation. The final project involves building a simulation of a hardware stack in Python.

This has been an interesting journey for me up to this point. I built a PC last August and decided to install Linux on it. It had been over a decade since I had last tinkered with Linux and I wanted to give it a go. Then I decided I wanted to learn more about the languages that drive Linux. So I learned a little bash scripting. Then I started learning Python. Then I completed all of the free Python courses offered by Codecademy. Then I signed up for a premium account and started taking the Career Path courses and here we are.

I've spent the time between August and now learning about a variety of things, but I've probably been working exclusively in Python for about 4 months now. It took a little longer to get through some parts than I had anticipated, but I am also building something of my own. Courses are great, but you've gotta build stuff to really learn.

More on that to come when I have more to show. For now let's get back to the project.

This program is a Python program that emulates a MIPS instruction set. The memory is 1024 bytes with 32 registers and 16 bytes of cache. It's way more than what was necessary for the provided instructions and data, but I wanted to explore things like programming for overflows, cache hits and misses, and system logging. I also wanted to try and program more operations than just what was needed to complete the provided instructions. I've found that I really like Python and I tend to really get into it when I get an idea in mind. Case in point the aforementioned personal project.

Here is a link to the CPU Github

So as we reach the end of this course, the question is what now?

Well, I'm not done with Python yet, I bought the technical manual from Rhienwerk Computing and I intend to get into that as it will allow me to explore beyond what has been taught throughout these courses and will be a nice companion to the docs. I also have some books on Linux I'd like to get through. I'd like to change careers, so I think I'll look into COMPTIA and some vendor certs, like MS Azure or AWS. We'll see. But I have come to discover I am very passionate about CS and I'd like to pursue something.

Here's to the future!

Top comments (0)