Zhu used to work for Google, developing AngularJS applications for the company’s engineering education team. The job was a natural intersection of his tech skills and a lifelong love of teaching. (Case in point: while in high school, Zhu used to go to the local library, walk up to families, and offer to tutor the kids for free.) After four years, however, Zhu left to launch his own educational offerings for programmers.
Watch and Code is about the core skills that all great developers possess. These skills are incredibly important but sound boring and forgettable. They’re things like reading code, consistency and style, debugging, refactoring, and test-driven development.
If I could distill Watch and Code to one skill, it would be the ability to take any codebase and rip it apart. And the most important component of that ability is being able to read code. You can’t contribute to any existing project unless you can read the code. In contrast, most other courses ignore reading completely and focus completely on building from scratch. That just seemed totally backward and unrealistic to me.
How does the program work?
Watch and Code is a linear path for serious students who want to become professional software developers. The heart of the curriculum is a series of in-depth video tutorials that you do one after another. Each video emphasizes the core skills that I mentioned earlier: reading code, consistency and style, debugging, refactoring, and test-driven development.
Watch and Code is aimed at intense beginners, which is more a personality type than anything else.
In addition to the videos, there are a bunch of ways to get help from me and other students. Every Monday, I do live office hours where students can ask me questions over video chat. You can also get help in our Facebook group, and paying members have access to a private Slack channel.
Since staying motivated can be difficult when learning online, there are also daily accountability meetings and study sessions to help students stay focused. Like office hours, all of this is done over video chat too since there are students from all over the world.
Who is Watch and Code aimed toward — absolute beginners? Working professional devs?
Watch and Code is aimed at intense beginners, which is more a personality type than anything else. These students have already learned how to work hard from previous life experiences. For example, musicians and competitive runners tend to do very well. I think it’s because things like music and running have similar discomfort/satisfaction ratios to programming. You’re mostly working hard and are totally frustrated with just a few moments of joy sprinkled throughout. You go to that performance or race, and then you go back to grinding. Or you just love the grind, which is even better. Of all the people learning to code, this group of students is very very small, but everything at Watch and Code is built with them in mind.
So Watch and Code is built for intense beginners, but most people learning to program don’t fit this profile at all. Instead, most people want to get a feel for programming, but don’t really want to work to be good at it. These students enjoy what I jokingly call The Ab Belt approach to learning programming, which includes things like in-browser challenges and badges. Just like ab belts allow you to not really work out yet feel good about yourself, these sites allow you to not really code but feel like you’re doing something useful.
Another group which is not a good fit for Watch and Code (at least initially) is what I call the Crossfit crowd. These students want to be good but might not have the confidence or motivation to do things on their own. They want to go to a physical place and get more personal instruction. Oh — also they don’t mind spending a lot of money. These students usually end up at boot camps initially, but will often come to Watch and Code after graduating.
So what does a Watch and Code student look like, then?
It breaks down into roughly three groups. The largest is students who are new to programming but have already gone through a bunch of other resources. This happens so regularly because they just didn’t know about Watch and Code when they first started; as an unknown company, that is simply reality. So they end up doing all the popular sites first. And this is actually great, because having gone through so many other resources, once they get here, they can finally focus since there’s nothing else left for them to try.
The second group is boot camp graduates. Boot camps have to expose their students to a lot of topics very quickly, which leads to very shallow knowledge in many areas. Watch and Code is the exact opposite. We focus on depth, which is what boot camp graduates are starving for after their hectic three-month programs.
One thing all these students have in common is that they’ve finally realized that great developers are amazing at the boring stuff. This is a simple but hard lesson to learn when every company in our industry is trying to convince students that they need to be “full stack” and learn all the latest nonsense.
Can you kind of predict whether someone is going to be successful — i.e., are there any traits that mark a student as someone who will go the distance?
One thing that has been an accurate indicator is the quality of questions that students ask. There are a lot of details that make one question better than another, but at the core, what’s behind a good question is effort. Not intelligence or experience or natural talent — but real, honest, effort.
Speaking of experience… how did you learn programming?
My own experience is really a list of things to avoid. So the curriculum at Watch and Code is designed to protect you from all the time-wasting, frustratingly stupid things I did. What I teach students today is what I wish I’d done.
Finally: Someone who completes Watch and Code, what do they get from it?
It comes back to the “boring” skills: reading code, consistency and style, debugging, refactoring, and test-driven development. You’ll be able to pick up new things quickly because you can read the code, and you’ll be able to write better code because you’ll be able to borrow techniques from all the code you’ve read.
With this foundation, you’ll have the confidence and ability to look at any code base and rip it apart. It’s a different way of looking at things, one that is extremely empowering. Right now there’s a whole class of programmers that are dependent. They’re dependent on Stackoverflow, they’re dependent on tutorials, dependent on other developers, and they’re sick of it. They want nothing more than to be able to stand on their own strength. Watch and Code helps you get that sense of control.
Feature image via Gordon Zhu.