Post

The Self-Study Path That Got Me Into a CS Master's Without a CS Bachelor's

The Self-Study Path That Got Me Into a CS Master's Without a CS Bachelor's

I got into CU Boulder’s MSCS program with a bachelor’s degree in Social Work. No CS undergrad. No bootcamp certificate. Just a trail of self-study courses, a stack of industry certifications, and a stubborn refusal to take no for an answer. (More on that in a sec.)

Here’s what I actually did and what mattered.

The Background

I was already a few years into a tech career when I started thinking about a CS master’s. I’d gotten my CCNA, used it to get a job at Veeam, and spent years stacking infrastructure certifications — VCP-DCV, VMCE, VMCA — while working my way up to Technical Lead. I wasn’t trying to break into tech. I was already there.

But I kept bumping into walls. The deeper I went into infrastructure and cloud, the more I realized that my knowledge had gaps — real CS fundamentals that certifications don’t cover. Data structures, algorithms, the theoretical underpinnings of the systems I was supporting every day. I wanted to formalize what I knew and fill in what I didn’t.

In late 2022, I started self-studying with the goal of getting into Georgia Tech’s OMSCS program.

The Foundation Layer

CS50x (Harvard, free). This is where I started the CS side of things. David Malan’s course covers C, Python, SQL, and the fundamentals of how computers work. More importantly, it teaches you how to think about problems computationally. I’d been solving technical problems for years, but this course gave me the vocabulary and mental framework to think about them like a computer scientist.

The Odin Project (free). After CS50x I needed to actually build things, not just complete problem sets. The Odin Project’s web development curriculum forced me to build real projects — not tutorials where you follow along, but specs where you figure it out yourself. Git, the command line, HTML/CSS, JavaScript at a practical level.

The “Can I Handle Real CS Coursework?” Layer

Georgia Tech’s CS1331 and CS1332 (edX). Introduction to Object-Oriented Programming and Data Structures & Algorithms. These were the first courses that felt like real CS coursework. Java, not Python. Linked lists, trees, graph algorithms. I needed to know if someone who’d been doing infrastructure certs for years could handle formal CS academics. These courses answered that question.

Nand2Tetris (free). I’ve written about this one separately. Building a computer from logic gates gave me a mental model of the full stack that nothing else could have.

Discrete Math at OSU. This was the one that changed everything, and I’ve written a whole post about it. I enrolled as a non-degree student at Ohio State and took discrete math. Proofs, set theory, combinatorics, graph theory. It was the course that made me believe I could actually do this.

What I Skipped

I didn’t do a bootcamp. Nothing against them — they’re great for career switchers who need structure and job placement support. But I already had a full-time tech job and years of experience. I didn’t need career services. I needed knowledge, and the free resources were better than most paid options for that.

The Georgia Tech Rejections

I applied to Georgia Tech’s OMSCS twice and got rejected twice. The first time around May 2024. The second around August 2024. I’ve written about that experience separately. The short version: it hurt, but it redirected me to CU Boulder, which turned out to be a better fit.

What Actually Got Me Into CU Boulder

I can’t know exactly what the admissions committee weighed, but my application had:

  • The Georgia Tech and OSU coursework showing I could handle formal CS academics
  • A statement of purpose that connected years of professional infrastructure experience to my academic goals
  • Multiple industry certifications demonstrating sustained technical growth
  • Seven years of progressively increasing responsibility at Veeam

The self-study courses (CS50x, Odin Project, Nand2Tetris) didn’t appear on my application directly. But they made everything else possible. Without CS50x I wouldn’t have attempted the Georgia Tech courses. Without discrete math I wouldn’t have understood the algorithms material. Each step unlocked the next one. It didn’t feel like a clean progression at the time. It felt like fumbling around in the dark. But looking back the path was there.

Was the Master’s Worth It After All That Experience?

Yes, but for different reasons than I expected. A lot of the practical knowledge wasn’t dramatically beyond what I’d picked up through years of hands-on work and certifications. What the degree gave me was depth and structure. The theoretical CS foundations that certifications don’t cover. And honestly, the credential matters when your bachelor’s is in an unrelated field — it closes the question of whether you have the academic chops.

If you’re an experienced infrastructure person considering a similar path: start with CS50x. See if the CS fundamentals interest you beyond the practical skills you already have. If they do, keep going. The path exists even if it’s not well-marked.

This post is licensed under CC BY 4.0 by the author.