Reflections on CS50
Graduation season is in full swing, so I’m happy to share that I recently earned my certificate for CS50.1 I’ve learned bits and pieces of software development throughout the years, from some SQL early in my career as an analyst to a bit of Apex while working for Salesforce. But it had been several years since I’d really invested in broadening my technical knowledge, and I had never taken a course that provided a foundational overview of computer science. Since this field of study heavily influences my professional career, not to mention our broader economy and society, I thought it would be a worthwhile investment to complete CS50 start-to-finish.
I’m very glad that I did, for several reasons. Studying computer science:
Helped me appreciate that CS shares a deep connection with philosophy, an area that I have studied previously.
Deepened my empathy for the people who build software products that we use on a daily basis.
Empowered me to build software that can solve problems for myself and — eventually — other people.
Computer science and philosophy
As someone who’s dabbled in philosophy, I believe that logic and reason are essential elements of humanity’s success story. So it was fascinating to witness how CS takes those elements and applies them to the natural world. CS allows us to harness the power of raw materials to accelerate the processes of empirical observation and logical reasoning. Circuits and chips remove some of the constraints that the human body and mind place upon the ways in which rational thought can impact our world.
As a result of imprinting the outlines (and, sooner or later, the essence) of intelligence upon the natural world, we’ve unlocked entirely new opportunities for growth as individuals, as a species, and as part of an ecosystem. And what’s most exciting is how the benefits of progress in CS continue to compound. In just my personal experience, it was thrilling every time a seemingly unconquerable problem — memory allocation, app deployment, etc. — crumbled before the combined force of my own logical abilities (not that impressive) and the broader CS community’s accumulated knowledge (very impressive indeed).
Engineering empathy
One of the most useful elements of CS50 for my professional career was learning firsthand about the joys and sorrows of actually building software. As a technical product marketer, part of my job is to understand software engineers — what makes them excited to wake up every day, what keeps them up at night, and what makes them love or hate their job.
To some extent, spending weeks focused on programming my own apps meant I was living the life of a software engineer. I was able to experience the thrill of receiving an error message that actually helped me debug some code, as well as the dismay of finding an interesting API that lacked any example code.
So the next time I write a blog post or develop a webpage about new software, I’ll be able to speak even more directly to the target audience — because I’m now part of it.
It’s time to build
Early in the COVID pandemic, Marc Andreessen published an essay called It’s Time to Build. I don’t agree with everything in the article, but I am on board with the conclusion that we need more people building.
Throughout CS50, I was immersed in the process of building software that could solve actual problems. These applications started out simple2 — programs for calculating how to give change in coins or tabulate results from a runoff election — but got progressively harder each week. I profiled DNA, built a stock trading site, and eventually created my final project: a prototype app for analyzing news coverage about public figures.
It’s great to know that I now have an expanded toolkit to solve problems. I’ll need to spend many more hours learning and practicing code to build anything of substantial use for the world, but CS50 has already helped me accomplish a personal goal of rebuilding my personal website from scratch. The result isn’t pretty (yet), but I am proud to have a little corner of the Internet that’s all mine3 — and I’m pleased with the $96 I saved by moving off Squarespace. Not a bad ROI for a free online course!
Many thanks to Professor David J. Malan and the whole CS50 crew for an amazing experience.
Harvard’s Introduction to Computer Science course
They seem so simple in retrospect. At the time, they felt nearly impossible!
Well, mostly mine — Heroku and Namecheap are involved, too.

