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.
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.
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!
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.
July 24, 2020
Miriam Budayr, Software Engineer, Ahana
This program provides a framework for learning how to think logically. Programmers will always encounter novel problems, language features, and frameworks. Gordon guides students to become independent programmers by cultivating reasoning skills that can be applied to any language and truly complex programming problems.
Students are taught to experiment using what amounts to the scientific method as a pillar of learning how to problem-solve. You will rarely hear Gordon directly answer a student’s technical question if they are stuck. He will instead ask something like, “what experiments did you run to figure out why that variable’s value isn’t what you expected it to be?”. Gordon doesn’t give students answers, but he also doesn’t allow students to become unproductive and overly frustrated. He always leaves them with a clear, actionable step they can take to get themselves unstuck and then checks in with them. Eventually, students become more and more independent and move on to help other students improve their process during daily morning meetings.
Asking Good Questions
Students are taught to speak and think with clarity and specificity. How well a question is formulated is often directly correlated with how well a person understands the problem and the code they are looking at. By asking students to verbalize their thought process during online meetings, Gordon and classmates can help students see their logical errors. Students get feedback not only for the specific problem they are working on but more importantly their general ability to reason through and resolve problems independently.
The amount of support Gordon provides for his students is incredible. He hosts daily meetings where students can ask questions and practice skills. He is invested in the success of his students. The daily meetings also provide a supportive community of other students. We all make progress by learning from each other’s mistakes and successes along the way.
A core part of the curriculum is open source. By working on open source projects after going through the premium content, students gain extremely useful experience working on real software and learning from experienced developers. Because of Gordon’s excellent teaching, I have been an active open source contributor for over a year.
I cannot say enough good things about Gordon’s teaching approach and the consistent effort and thoughtfulness he puts into Watch and Code.
December 29, 2019
Abhi Routray, Software Engineer, GE Aviation Digital
The things a developer does on a daily basis is very different from what most tutorials would have you think. For example, at my job, rarely was I writing code from scratch. Instead, I add features or fix bugs in large, existing applications. This is entirely what Gordon emphasizes at Watch and Code, and he does so masterfully.
At a glance, some of the best things I learned:
1. How to read code. It's very easy to get lost in large codebases with hundreds of files and thousands of lines of code. Gordon taught me how to efficiently break things down into manageable chunks and quickly develop an understanding of what each line is doing.
2. How to troubleshoot code. The debugger was a foreign concept to me before Watch and Code. I'm glad Gordon ingrains the usage of the debugger because it is absolutely the best tool a developer can be armed with.
3. How to test code. Test-Driven Development (TDD) is not just a great way to ensure you're writing functional code, but the only way. The course makes this a priority.
But Watch and Code is more than just the videos. It's also a community of people, dedicated to becoming better developers. Everyone goes at their own pace, but we all hold each other accountable through an active Slack channel and daily video calls hosted by Gordon. This level of engagement does wonders for your motivation.
August 9, 2019
Richard Sherman, Consultant, Self-employed
Watch and Code has been a real breath of fresh air for me. I have worked in various aspects of independent front-end and corporate web development for over 10 years. In that time, I have read countless blog posts, Medium articles, Stackoverflow recommended readings, and programming books. I've watched endless tutorials, online courses and used web-based learning platforms for a wide variety of web technologies.
But I can say with no hesitation that during the past few months, working through Gordon's program, I have learned more practical information in a short time than in any attempt to learn a new technology during my previous 10+ years of experience. From a technical standpoint, I've found the lessons and instruction introduce and reinforce new concepts more clearly and more effectively than any program or book I've found before. Critically, the heavy focus on code digestion techniques has been instrumental in coming out of the premium coursework feeling empowered to find answers on my own.
If you are new to coding, or just feel like your programming skills are stagnant or underwhelming, I can't say enough about this program and about Gordon. You WILL be pushed, you WILL something new every single day, and if you finish this course and take it seriously you WILL come out the other end better prepared for the next steps into the engineering world than through any other program I've seen.
March 30, 2019
Janelle de Ment, Open Source Developer, Mozilla Firefox
Entering the premium content was like suddenly being a part of a family; a family that cares about your success. Every day, you can join an accountability meeting to stay on track with your progress. Before I attended these meetings, I didn’t really believe that anyone in the world would care about my progress in programming...not even a teacher at a university or bootcamp. How could they? They only see you once/twice a week for approximately 3-4 months. Gordon, on the other hand, attends these meetings every day asking what you’ve done to further your understanding. He says he doesn’t hold your hand through the premium content. While this statement is absolutely true, you do put in the work on your own, it’s also a bit misleading. If you participate in the community that premium content provides, it’s like having Gordon walk along beside you... the whole way.
Now, I actively contribute to open source projects and am starting to consider interviewing for jobs as a developer. When I first started learning programming, I never thought I’d get this far as a self-taught person, without the help of a university or bootcamp. As it turns out for me, it took a village, the Watch and Code village. This course is more than just a curriculum, it’s a support system that encourages you to keep at it, keep learning, keep coding and to not give up.
August 8, 2018
Rick Hallett, Software Developer, School Business Services
I joined Watch and Code in October 2017. It was, unreservedly, the best decision I made in my journey towards professional development work. I have tried many online resources; this was the only one that resulted in an increase in my baseline skill levels that can persist over time, and so Gordon helped me forge the literal foundation on which to build an entire career and way of life. I posted a video review on youtube to try and say thank you.
July 24, 2018
Anthony Xie, Open Source Developer, Mozilla Firefox
Over time, I've come to recognize and trust in the care and thoughtfulness Gordon has put into Watch and Code. As a beginner, it's hard to distinguish between what learning resources are good or bad. There are numerous courses of varying quality online and even more people suggesting different paths like learning "X" framework and reading "Y" book. However, with Watch and Code everything you learn is cumulative. Each next thing we work on in the course can only be done after mastering the previous topic. In this learning environment, the students have a well-defined linear path of what to learn and when to learn it. This is one of the core strengths of this course that is uncommonly found elsewhere, but crucial to improving.
To address the question of what you get from this course, I'd say that students gain an independence and freedom that can only be achieved when reaching a certain level of technical expertise. Students who complete this course don't know the ins and outs of the most recent popular frameworks. Instead, what they gain is the ability to independently read and understand those frameworks on their own. The invaluable skill of learning how to independently process and understand complex subjects is insanely useful.
This course will require you to dedicate time and effort, but the return on investment is huge. I highly, highly recommend this course.
May 2, 2018
If you’re an absolute beginner in programming, this is the perfect course for you, and I really mean it. I’ve read lots of books and tutorials in my career for several different languages and none made me loved to learn how to program as in this course.
Gordon has a really good faculty to teach and break things down into small digestible steps. The community in the Slack channel will help you move forward and never get stuck, that’s a huge asset for a beginner to not lose your motivation and avoid frustration.
You may want to know how long does it take to actually complete the course? I can’t answer that question because it depends on your available time per day, your skills, your abilities etc. but what I can tell you is that this course is underpriced.
In fact you don’t purchase a course for this price, you purchase a good learning environment and that has unlimited value. This can make the difference between a frustrated alone student stuck on a problem for hours, that will finally lose his motivation and quit, and a student that will get support from his peers and fix quickly his problems.
If you want to know more, I wrote a full and honest review about each chapter of the premium course on my blog: https://jeremymouzin.com/blog/watchandcode-review/.
January 9, 2018
Brian Baso, Program Manager Intern, Microsoft
Before I joined Watch and Code, I spent almost two years trying countless resources to learn to code. These past resources made it seem like I was learning but when I was on my own I realized that none of the information stuck. I think most people give up at this point, however, I continued and kept failing miserably with subpar coding classes online.
When I began Watch and Code, I adapted to Gordon's teaching style almost instantly. I finally figured out that learning to code isn't about learning specific technologies ("Build a React app in 15 minutes" or "Build a full stack MERN app" were some previous videos I'd watch) but instead, learning to code is more about learning to READ source code, test code with the debugger, and learning to comprehend the lengthy documentation. This may sound intimidating at first, but it is absolutely necessary if you want to become someone skilled enough at programming to create the idea that's been in the back of your head for a year, or what most people aspire for— landing that job.
June 13, 2017
Rhett Del Fierro, Software Engineer, NetFortris
January 24, 2017
Adam Kearney, Software Engineer, Amazon Alexa
Watch and Code is hands down the best coding course I have ever taken. This is completely a hidden gem.
Before taking this course, I considered myself a beginner. Due to using the wrong resources, I only knew what they had me memorize. My process was slow and painful.
This course takes a very different approach. It's about enabling you to learn on your own and solve problems you have never seen before.
First, you will essentially learn how to read someone else's code (via open source projects). Your goal of reading is to understand how the code works. Gordon, your instructor, will show you the process you should follow.
Once you understand, writing code is so much easier. You'll have the skills to actually problem solve because you know how to figure out what's going right or wrong.
It is insane no other courses teach you how to read real code so that you can then learn. Imagine learning anything if you didn't know how to read? In addition, it is insane no one teaches you using real code bases. Why work on stuff that is fake and theoretical when you can work on something that is real and grounded? Gordon nailed this approach.
With Watch and Code, you will move from being dependent to independent pretty quickly. It's a huge milestone for any learner. It's where you take off because nothing can hold you back.
Take this course. Take this course. Take this course.
Contact me at https://twitter.com/K3ARN3Y if you have any questions.
January 2, 2017
Aaron Chiandet, Product Manager, SpyFu
I've been working in this industry for close to 16 years now as a designer. I have strong knowledge of html/css but I never took the time to truly understand the fundamentals of programming. In 2013 (yes, three years ago) I decided to change that and started plowing through all the well known JS MOOCs available online. All of which left me feeling confused and moderately hopeless. I was never able to make the leap from beginner to intermediate or even "expert beginner." I could tell you what an immutable object was, but I had no idea what you would do with it or why I should care about it. This left me questioning if I was "built" to be a programmer, clearly it was my problem, not the companies that teach JS, right?
Then I completed Practical JS and everything started to change. Watch and Code is one of the most unorthodox curriculums that I've participated in, you will focus on skills that no one, including the most popular MOOCs, will cover. You learn how to use the dev tools to debug your code and help remove confusion as you write code. You learn how to read documentation along with other peoples code which is such a core skill to being a developer. Docs once made my head hurt, literally. Now I greet them with open arms and optimism.
If you want to be a software engineer in three weeks, this isn't the course for you. However, if your goals are even remotely like mine, and you're willing to put in the time to learning properly, then this is absolutely the right place to start. I've had more growth in the last three months than the last three years running down rabbit holes.
The real struggle today, is to maintain focus because I want to build 10 different things I have in my head. I should also note, I'm not even that deep into the premium content and I feel this way.
December 16, 2016
Jon Rojas, Product Manager, Perfect Sense
The Premium Membership is a no-brainer. Going through the premium content can be summed up as "forced reinforcement". The program is full of opportunities to strengthen the connections you make while learning. I love it. You will too!
October 3, 2016
Kenny Lee, Co-founder, Weblife (acquired by Proofpoint)
One of my 2016 goals was to learn JS deeply. Not just copy/paste code, tutorials, and barely make a functioning website, but to really know/understand JS as if it was my native language.
I consider myself somewhere in between a beginner and intermediate JS programmer. I graduated from Udacity (took 7 months), then proceeded to take/purchase more intermediate books and online courses. I spent too much time and resources that it's embarrassing. Before W&C, I 'sorta' knew ES5/ES6/jQuery/ReactJS. Also, along the way, I got side tracked with Grunt/Gulp/Webpack/Browserify/Bower.
This is a mistake that I've been making for the past year.
Here are my takeaways so far...
Let's learn how to read open source code! Line by line..yes really...LINE BY LINE. I scoffed at first b/c it was jQuery, but that's not the point. It teaches you how to really READ, INVESTIGATE, DEBUG, UNDERSTAND code that you didn't write. This is a must have skill!
Let's write code starting with tests. TDD! Ugh, I need to spend time learning a complicated test tool? NO! Gordon open sourced the easiest testing tool I've come across. You just focus on coding and testing...not learning a tool.
Let's learn forEach/map/filter/reduce functions. Yeah...I thought I knew them too. Gordon takes you through how to re-create these functions! If someone asked me if I knew what they were, I would've said 'think so...sorta'. Now, I'd say 'hell yeah! let me show you how they work under the hood!'. Oh, as I mentioned before...you learn all this by writing tests first...amazing.
Do you know how to read MDN? No? Me neither...until now! I felt that it was almost always too much info and too intimidating for me. I mostly used w3schools and StackOverflow since I didn't have the patience to read through MDN. Gordon takes you through an example on how to read MDN, and create test requirements from them as you are re-creating the reduce function.
When I started to write this review, I wasn't going to gush, but just ended up being this way. I'm very realistic about learning formats and expectations.
Could I have gotten this type of JS foundation elsewhere? Maybe...but it would take you much more time and money. It's extremely difficult to keep focused in such a crowded JS/code tools/framework/shiny toy.
Just sign up, and follow the W&C path. You'll learn JS deeply.
August 27, 2016
Anthony Ko, Co-founder, Graft Concepts (YCombinator W17)
In the first series of premium videos, Gordon investigates an app that's written with jQuery. You'll start by reading code, then break down each function to see how it works. There's lots of instruction on how to use the debugger, and you'll get exposure things like templating with Handlebars.js, and routing with Director.
There's an active Slack channel for premium members. The instructor is active in answering questions, which means you won't get a bunch of beginners giving each other bad advice. You'll have someone with experience to teach you how to learn, and a place to turn to if you end up getting stuck somewhere. Through taking the course, some students have already contributed to open source projects.
July 26, 2016
James Squillante, Developer, BBVA Compass
The membership has been such a great and motivating experience interacting with a dedicated instructor and community on a daily basis. The main thing that sets this offering apart from others is that Gordon pushes us to think on our own and truly understand code; releasing us from the dependency of tutorials.
We'll take real web apps and break down the source code to understand every detail of how it's supposed to work. This not only shows us real world examples and how to incorporate different libraries and techniques to get the job done, but also exposes us to reading quality code which enables us to create more insightful and intricate work of our own.
June 4, 2016
Brandon Plemon, Software Engineer, Nikola Motor Company
This is not just another “course”. Gordon does not have you just copying his code and at the end saying ….. tada ….. you have a web app. He actually goes into the how/why of the code. It dawned on me the other night as I was looking back on all my other courses, the instructors probably had my best interests in mind but all they did was teach the basics, walk you through building an app, and call it a day. There are discussion forums and they help a little but there's definitely something missing from this learning style (as I’m sure you're all aware of since you found this course).
I came to the conclusion that there's a disconnect from someone who's really good at something and their teaching ability. Many just assume you know certain things because, well, they knew it (even if the course says it's for complete beginners). They dumb some things down but they definitely assume a certain level (usually a pretty proficient level) for other things and it usually makes the course difficult or useless as you then have to find a different course to figure out the stuff the first course was talking about.
Gordon could have easily just said hey we are gonna build this app and coded it with us through the process and called it day but he doesn’t. It honestly feels like he wants us to understand what is going on. I think it’s safe to say there are two types of instructors out there. There are instructors who are teaching you to code a certain app and there are instructors who are teaching you to program. Gordon is definitely the latter. If you have spent any money on Udemy, Treehouse, CodeMentor or any of the other myriad of available courses out there, you'll be blown away with what you get from Gordon and you would be hard pressed to find a better course.