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!

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Engage with a sea of insights in this enlightening article, highly esteemed within the encouraging DEV Community. Programmers of every skill level are invited to participate and enrich our shared knowledge.

A simple "thank you" can uplift someone's spirits. Express your appreciation in the comments section!

On DEV, sharing knowledge smooths our journey and strengthens our community bonds. Found this useful? A brief thank you to the author can mean a lot.

Okay