How to learn to code for free at Stanford and make six figures in under 1 year
Learn to code for free and get a job at Google or Facebook by taking advantage of Stanford’s computer science curriculum online
I worked at Google for two years and studied at Stanford for three years. Recently I discovered a secret: Stanford, the #1 computer science school in the nation, is giving away its core computer science curriculum for free online. Timing is perfect for learning to code, software engineers are more in demand than ever with starting salaries that exceed $170k per year and higher-end engineers getting paid close to $500k per year.
If you want to break into tech or just want to learn to code, take an insider’s look at how you can obtain these highly desirable skills in less than 1 year, for free, and at your own pace.
Stanford gives away the same classes its students take
Stanford packages recorded lectures from the classroom, slides, assignments and solutions and makes them all available online. Even the course numbers are frequently kept the same. Here’s an example:
- CS106A Programming Methodology — this is the first class all CS majors take at Stanford and also taken by many non-majors. You learn fantastic software engineering principles by using the Java language and learn to code fun games like Breakout!, Hangman, and Yahtzee!
There are dozens of courses available, including the 10 CS courses, required for a computer science systems degree. There are also a few electives, which I don’t count in the 10 courses, but also shown in the list. I omitted Math, Science, and EE classes as those are not core to CS.
This CS curriculum giveaway is a secret because it’s hard for non-majors to know which courses to take and in what order — that’s why I wrote this article and made the list publicly available (Full Online Course List is here).
Stanford’s curriculum is far superior than coding bootcamps because you get a much deeper understanding and it’s free
You may have heard about coding bootcamps like General Assembly, but most don’t really work because they don’t teach enough foundational knowledge and instead mostly focus on teaching you how to use tools, languages, and frameworks like Python, Bootstrap, MVC, etc.
Stanford is the #1 computer science school in the nation because its curriculum both goes much deeper into the theoretical foundations and asks students to build important systems from scratch, like compilers and operating systems. In essence, Stanford’s curriculum helps you learn to code and gives you deep understanding with hands-on practice in building phenomenal software.
It’s insane you can get this curriculum for free while bootcampers are routinely paying tens of thousands of dollars to learn gibberish and enrolled Stanford students are paying a quarter million dollars to study the same courses (there are real benefits to being on campus, though). This is the steal of the century and now you can take advantage of it!
The entire curriculum takes less than 1 year if you studied full time
The compiled list of 10 classes with direct links to materials is abbreviated in the table below and takes about 2,000 hours of study.
The magic of self-paced online learning lets you learn to code at your own pace. Shown in the graph below, you can do all the classes with 2,000 hours of study in under 1 year if you put in 40 hours per week. Part-time students will probably finish in 1–2 years.
For those who are really motivated, you can theoretically do all the work in 6 months if you put in 80 hours per week. Though learning to code is very brain-intensive and I’m not sure if 80 hours per week is feasible, but please email me and say ‘hi’ if you’re able to learn that quickly.
Get started today and transform yourself
Online learning is the reading and writing of the 21st century and it’s a skill you must learn in the modern world. Online learning is very different than classroom learning because you’re alone, so start by recruiting a friend and committing to finish just one class — over committing yourself to doing too much is a sure way to fail. Make sure you read my best strategies at being successful in online learning.
Your first course: CS106A
Start with CS106A Programming Methodology, described above, and give yourself a short time to finish it (say 5–10 weeks).Typically Stanford students finish this course, along with 3 other courses, in a 10-week quarter. Read my guide on How to get good at online learning to maximize your chance of finishing.
After your first course: priority of courses
In the course list, the order of study is very important because advanced classes build on foundational classes. Shown in the table above, classes in Priority 1–4 teaches you how to code and do algorithm design while classes in Priority 5–6 gives you practice actually building complex systems.
Courses are delivered in four ways
Courses are delivered on four different platforms, seemingly randomly, because it depends on the instructor who first put the course up. Here is a brief description of each:
- Lagunita — this is the best platform because it’s designed for online learners and the videos are ~10 minutes long and you get regularly scheduled quizzes to help you learn. Assignments are normally well laid out.
- Stanford Engineering Everywhere (SEE) — this is a pretty good platform because it’s designed for online learners. Though the videos are 45 minutes long. Assignments are well laid out.
- Course website with YouTube — this is slightly harder to use, you simply use the class website and find assignments, solutions, and slides. The course videos are hosted on YouTube.
- Course website without videos — this is the hardest way to learn online because you will just have the slides and read the book. Thankfully, only 2 of the 10 classes are in this format and I’ve also listed good alternatives for this content.
Stanford Center for Professional Development offers most of these classes with instructional support, exams, and grading. It’s expensive at around $6000 per class, but if you’re really stuck you can use this as a way to get back on track.
Landing the job
There’s still a huge shortage of good software engineers in the world. The number of software engineering jobs outnumber the number of CS graduates more than 3 to 1. Every year, Google hires more than 20,000 people, most of whom are software engineers. And at any one moment, Google has 1,000+ open jobs for software engineers.
Getting noticed for the interview is easy but will require a little creativity. Since tech recruiting uses filters for school and major, leverage the Stanford name by citing the Statements of Accomplishments you’ve earned. Though the best way is to get a referral from a friend so your resume rises to the top — meetups are great for this. If you’re really stuck and have actually completed the entire curriculum with good scores, feel free to reach out to me and I will refer you.
Passing the interview will require practice, but it’s manageable. First, familiarize yourself with the interview process with Cracking the Coding Interview. Then do a mock interview and practice coding questions for 4–8 weeks on LeetCode.
Finally, remember getting good at software engineering requires practice beyond the classroom, so it’s a great idea to contribute to open source projects after your first 3 classes to gain real experience and have some fun with your new skills.
Retraining the world is a $Billion dollar startup idea
For the first time in the history of the world technology is displacing jobs within a generation. Previously, if a kid’s parents were farmers and tractors got invented, then the kid would just study to be something else. Today, students training to be radiologists or accountants or stock traders may see their jobs displaced by technology in just 10 or 20 years and within their working life.
Corporations are interested in retraining their workforce
While technology is making many workers redundant, corporations face hiring shortages across other exploding disciplines like: Software Engineering, UX Design, Medical Services Manager, and Registered Nurses. On average, companies pay a recruiting fee of 20% of the 1st year salary for each hire and go through the hassles of interviewing, on-boarding, and finally molding the candidate to the internal culture.
A much better idea is to just retrain existing workers to do something totally different. In fact, Amazon is retraining one-third of its workforce by 2025.
Online learning makes corporate retraining at scale feasible and is a great idea for a startup
It’s not realistic to expect adults to take another 2–4 years and spend $100k+ to go back to college. And we can’t expect every corporation to have Amazon’s deep pockets to develop retraining programs. So if we can design a service that utilizes online learning and enables corporations to fill their much needed roles with loyal employees, corporations will happily pay for it. If you’re interested in collaborating on this project, be sure to email me through www.thisisjeffchen.com.
Like this article? Please give claps below and leave questions & thoughts in the comments
Can I collaborate with you on the corporate retraining idea?
Yes, please! I’m looking for engineers, designers, and business folks to collaborate with. Please contact me through www.thisisjeffchen.com.
What if I want to learn machine learning?
You’ll still need the foundational courses in Priority 1–4, and it’s still a good idea to pickup Priority 5–6 courses if you want to build a real system. Then you can pick between Andrew Ng’s http://deeplearning.ai courses or Stanford’s SCPD courses (not free). Stanford is working on cheaper and more available AI classes but it will take sometime.
Thank you to my friends Meg He, Adam Preiss, James Zhang, and Jay Shek for reading drafts of this.