We think the smartest way to learn to code is to make sure you’re never bored.
🔗 The Story
I originally built Boot.dev for my wife Breanna so she could transition from being an x-ray tech to a back-end developer, but we ran into a few problems:
- We didn’t have the time or money for a 4-year CS degree, but I felt a lot of the core CS concepts were important
- As a hiring manager, I found that many resources don’t focus enough on building projects
- We found plenty of places to learn front-end development, but not back-end
- Few people fail because coding is too hard, they fail because they lose motivation
I decided it would be fun to build a course that incorporates a lot of the fun aspects of RPG games and started Boot.dev as a side project. My wife was my first student and loves the courses, so I hope you do too.
🔗 Our Beliefs
We have some opinions about how you should learn to code.
- Coding is fun, don’t ruin it
- Computer science matters, degrees don’t
- You need to build
- You need to deploy
- It’s hard to find good resources
- Learning to code is a depth-first algorithm
- It’s a marathon, not a sprint
- You should be uncomfortable
- Get an on-site, full-time job first
🔗 1. Coding is fun, don’t ruin it
A game is a series of interesting choices
Coding is inherently a game. There’s a tight feedback loop, and you get to make interesting decisions about the code you write that moves you toward your goal: building a project that does something useful.
Coding, and in particular learning to code, can become dull if the magic is lost. We do everything we can to keep that magic alive. We think there are a few critical elements to this:
- Everything should be learned through hands-on coding lessons
- All concepts should be taught within the context of a real-world software project
- Game elements like achievements and quests can supply boosts of external motivation and sweet, sweet dopamine
🔗 2. Computer science matters, degrees don’t
People are becoming more tech-literate every day, and that’s a wonderful thing. Deploying a simple website doesn’t require advanced programming knowledge anymore. That doesn’t mean we no longer need smart engineers, we do. They just work on more interesting problems, and at a different scale.
Mastering computer science concepts like algorithms, data structures, functional programming, and cryptography is a great way to differentiate yourself as a developer, and universities needn’t be the gatekeepers of that knowledge.
🔗 3. You need to build
Too many self-taught learners watch hours of YouTube tutorials, only to find that they don’t know where to start when building their own projects.
The tighter your feedback loop, the better. Our courses teach new concepts through hands-on coding exercises, then you go use those concepts in your own projects that you build from scratch.
🔗 4. You need to deploy
Sometimes “deploy” means to host a web app on the internet. Sometimes it just means packaging up your project with great documentation and pushing it to GitHub.
The point is you need to show your work, and that work should be interesting if you want a better chance of landing a job.
🔗 5. It’s hard to find good resources
The internet is estimated to host over 100 Zettabytes of data. That’s about 100 trillion gigabytes of data. If you’re learning to code, you don’t need more information, you need a curated roadmap of the most important information packaged in a way that’s easy to digest.
🔗 6. Learning to code is a depth-first algorithm
So many learners jump from one shiny technology to the next, sometimes on a daily or weekly basis. The way tech news operates incentivizes this behavior, but it’s not the best way to learn to code.
Err on the side of going deep into a topic or technology that interests you. There is a time to branch out, but I rarely see learners going too deep.
🔗 7. It’s a marathon, not a sprint
You’re not going to “learn to code” in 3 months, but you also don’t need to spend a full 4 years in college to get a job.
We believe that it will take about 12 months to get ready for your first back-end development job, depending on your situation.
🔗 8. You should be uncomfortable
Learning to code isn’t easy. If it were, everyone would be doing it, and we wouldn’t be paid as much as we are to write good code.
You learn most effectively when you’re in your zone of proximal development, the place just outside of your comfort zone. There are just two rules for staying in the ZOPD:
- Don’t waste your time solving problems that you already know how to solve
- Don’t waste your time solving problems that are impossible for your skill level
🔗 9. Get an on-site, full-time job first
We are from the US. The advice that follows may be less applicable in other countries.
Many developers think that landing, managing, and servicing freelancing clients is easier than passing a coding interview. That’s almost always wrong.
If your situation permits, try to get an on-site full-time job as quickly as you can.
- You’ll be physically around other developers who can mentor you
- You’ll get to focus on coding instead of landing clients and marketing yourself
There are exceptions, and any paid development work is typically better than none, but hopefully, this helps provide some focus.