A complete system for people that want to become great programmers





One-of-a-kind, unapologetically boring curriculum

I could teach you trendy languages and frameworks that die every few years, but that'd be silly. Instead, I'm unapologetically boring. My deliberate focus is on the timeless aspects of programming that never change.

World-class support (for those frustrating moments)

Getting stuck used to be a frustrating, hellish experience. Now it's fun. Just jump on one of our video chats and get live help from me or one of your peers.

Accountability to make sure you follow through

We have daily accountability meetings where you describe what you did yesterday. It's really simple. Just commit to showing up every day and you'll make progress. Could you attend and say you did nothing yesterday? Sure you could, but try it out and see how it feels. My hunch is that you won't do it two days in a row. This meeting forces you to do the right thing. It's like having a personal trainer.

Community of serious learners

There are many communities out there that are friendly and supportive, but chances are they're also distracting. Every minute, someone posts about a new tutorial to add to your bookmarks list. People come and go like flies. Is that really the type of place you want to spend your time? Sure, it might be entertaining, but is it productive? Now imagine a place where everyone is serious and focused on the same goal. That's what you'll get here.

Real work experience through open source

You'll make substantial open source contributions to software used by millions of people. The reason for my approach is simple — what better way to prepare you for software engineering than to just have you do it?





How it works





Take the first step

The first step for all Watch and Code students is our introductory course. You'll learn the basics of programming and get a feel for what being a Watch and Code student is like.

Get started (procrastination is unhealthy)

Then go for the full experience

After going through the introductory course, you'll subscribe to the Premium Membership and say goodbye to beginner land. With your subscription, you'll get access to everything Watch and Code has to offer: the full curriculum, daily video meetings on Zoom, and the paid Slack channel. You'll get instructions on how to subscribe at the end of the introductory course.

Progressively more difficult codebases

Much of your time in Premium will be focused on understanding existing codebases of increasing difficulty — starting from extremely simple to very complicated. The killer skill is your ability to read and understand existing codebases. We start gently, with an extension of the code we looked at in the introductory course. This allows us to review and reinforce foundational programming constructs like functions, objects, and conditional logic. Gradually, we look at more and more difficult codebases. Along the way, we'll touch on more advanced topics that you'll run into as a professional developer.

Test-driven development

Along the way, we learn about how to write code to automatically test our programs. This has two purposes: It allows us to make sure our programs work as intended and it allows us to write more complex programs than we would be able to otherwise. You'll find that at a certain point, it's nearly impossible to write code without tests!

Challenging exercises

Throughout the curriculum, you'll complete exercises that allow you to apply what you've learned. You'll remove jQuery from a todo list so that it's just plain JavaScript, modify a simple testing framework, replicate the native Array methods, create a library loading system, recreate the front-end of the popular task management app Workflowy, and learn how to handle URL routing.

Build confidence through independent action

The lesson-driven passive learning stage is now over. This part of the system is all about contributing to a large open source project. You'll work with senior software engineers and learn how to write production quality code on a team. You'll encounter issues like version control, different types of testing, continuous integration, bug tracking systems, and build systems. Instead of learning through lessons, you'll learn through your own independent action. The project leaders and your peers (especially those with more experience) will be crucial in helping you through this stage. I'll step back and will seem more like a coach than a traditional instructor.

Career coaching (experimental)

Students that have made substantial contributions to open source are eligible for career coaching. Topics covered include resume writing, application strategy, behavioral interview questions, and technical interview questions (with special attention on data structures and algorithms). Students at this level have typically made dozens of substantive open source contributions.