CS Primer search log in

Learn computer science
by writing code

A self-paced platform for software engineers to learn the CS foundations they need, from computer architecture to distributed systems. Stop watching lectures and start solving real problems!

Learn by doing

The core of CS Primer is a sequence of programming problems designed to teach you foundational computer science. Why even “learn” CS if you can’t put your knowledge to use? This is not a spectator sport!

Feedback loop

As you attempt each problem, staged walkthrough videos can help you make progress or show you a better approach. When you’re finished, submit your solution for feedback from Oz and other students.

Explanations in context

Concepts are explained in short supplementary videos and linked precisely when those explanations would help you make progress on the problems. Concepts presented in a motivating context like this are easier to retain and apply in practice.

Focus on what matters

Instead of teaching you frameworks or technologies you could easily learn about yourself, we focus on foundational topics rarely taught outside of top universities. Subjects are mostly systems focused given their outsized relevance to software engineers.

Guided by experience

Problems and explanations are drawn from Oz’s experience teaching CS to 1,000+ software engineers in small classes as lead instructor of Bradfield School of Computer Science.

Support as needed

Oz is available via live weekly office hours and Discord, as is the growing CS Primer community of motivated students just like you.

Now live!

CS Primer is now open for registration. The Algorithms and Data Structures, Computer Systems, Computer Networks and Operating Systems courses are all available, with the remainder to be released over the coming 12 months.

Subscribe Explore

Dear prospective student,

I started Bradfield School of Computer Science in 2015 after a decade as a software engineer and startup CTO. Since then it has been my mission to help software engineers increase their impact, by teaching the foundational CS that matters most to them.

I am immensely proud of my students and grateful to have played a role in their success, but have long sought to extend my own impact beyond those who could access Bradfield courses. In 2017, I wrote teachyourselfcs.com to at least help self-learners find a meaningful path through the ominous maze of CS topics and resources. Millions of people have found this guide useful, but I've always held a more ambitious goal: to provide CS learners with a self-paced offering that's just as effective as a live, small-class environment.

I am thrilled to present CS Primer as the program that I believe will do this, covering all of the topics suggested in teachyourselfcs.com, structured as a sequence of interesting programming problems as motivating context, supplemented with all of my best demos and explanations from in-person teaching.

Given the ambitious scope, this has been an immense undertaking. By the end, I anticipate over 200 worked problems, 1,000+ explainer videos, and over 200 total hours of recorded content. Having now produced around half of that, I have opened up registration, and plan to continue releasing content as fast as you can work through it.

Based on my experience, I am confident that this is the best way for practicing software engineers to learn CS. I hope you will try it, and agree.


Oz's signature

Oz Nova

It's difficult to express just how game-changing is the wealth of knowledge Oz has bottled up in CS Primer. It's no exaggeration to say that pretty much every substantial technical contribution I've made, or will ever make, will be built on the foundations of one of Oz's courses. If you're looking for the best way to get deep into CS, stop looking—this is it.

Rohan Rogers
L5 SWE at Google
Rohan Rogers portrait

Bradfield courses have been the best educational experience of my career. The first-principles, project-oriented approach has significantly improved my ability to make better technical decisions, articulate my reasoning, and teach my peers. CS Primer offers the same experience at your own pace.

Jake Shasteen
Principal Software Engineer at Autodesk
Jake Shasteen portrait

Oz turns "intimidating" computer science topics into fascinating rabbit holes that might otherwise seem too recondite, or complex, or somehow "off limits", for a self-taught developer like me. His courses and teaching style help me tap in to the same sense of curiosity and drive I had back when I was first learning to program, and I'm confident that I would not be even half the engineer I am today if it weren't for Oz.

CJ Apel
Staff Software Engineer at LiveRamp
CJ Apel portrait

If you’re looking to make an impact in your engineering career, you should put that new JS framework tutorial aside and focus on foundational computer science. There's no better resource for this than CS Primer.

Patcharapon Neranartkomol
L5 Engineer at Amazon
Patch portrait

As a bootcamp grad, I've subsequently taken a whole host of university and online courses—as well as self-studied from textbooks—to develop the CS understanding I've needed to progress in my career. CS Primer tops them all. It's the only option that combines the deep CS that's typically only taught in universities with the hands-on project oriented approach that best suits someone who's already in the industry.

Jessica G
Senior Software Engineer at Reddit
Jessica G portrait

One of the major challenges in my career has been deciding how to grow. I found teachyourselfcs.com to be one of the rare resources that focus on the foundational systems understanding that really matters. Now CS Primer adds the three things that I was missing: motivating problems, help when I get stuck, and a community of like-minded students.

Bharat Agarwal
Software Engineer at Atlassian
Bharat Agarwal

Participating in Oz's courses has been one of the most meaningful experiences in my professional life and has fundamentally changed the way I look at computing problems. I love how CS Primer delivers his excellent curriculum in a self-paced manner that allows me to revisit challenging topics but is also meaningfully cross-referenced in a way that helps to reinforce concepts and better appreciate their context.

Antoni S
Engineering Manager at Skyscanner
Antoni S portrait

CS Primer is the resource I’ve been looking for for the past two years. You get practical, project-based exercises to build the kind of computer science understanding that you need to solve the more challenging problems you encounter as a software engineer. Not long after starting CS Primer, I found myself stepping through the Golang source code to solve a problem at work! I could not have imagined doing that kind of thing previously.

Jake Gutierrez
Software Engineer at Clever
Jake Gutierrez portrait

Have questions? Email Oz.