You can learn web development on your own: here's how
So, you want to learn web development. You’ve heard about the booming job market in the tech industry right now, and the great opportunities for a highly rewarding career as a developer.
But, aside from going back to school, how do you become one? And is it really possible to learn web development on your own?
You can absolutely become an employable web developer on your own. It will take an extraordinary amount of hard work and motivation, but—with a solid plan and the right resources—it is possible to learn to code in less than a year (and get a job).
But where do you start?
There are thousands of online courses available today, all aimed at teaching you to code, with many claiming to provide ‘all you need’ information on a topic. And you can find plenty of articles that are simply long lists of learn-to-code resources.
Or hundreds of coding bootcamps, all eager to take $10,000-$20,000 of your money, claiming to take you from zero to employable web developer in a few months.
And what about the free options? Is it possible to make this career switch without paying a penny?
The problem is that when you’re completely new to web development, you don’t even know what you need to learn. So how can you tell which courses are actually going to give you what you need?
I’m a senior software engineer living and working in San Francisco. I entered tech after a career change in 2013, coming from a non-traditional background, and with no previous coding experience.
Based on my experience as a career switcher and then industry engineer for 6+ years, the truth is that no single course will give you everything you need to go from zero to employable. Even with the most full-featured courses, you'll still need to practice your skills and self-study outside the course, not least because not everything you learn will 'click' first time. However, using some combination of the resources available, success is possible.
What the exact path to success looks like will vary from person to person, because everyone starts with different levels of knowledge, has different learning styles and paces, and struggles with different aspects of the material.
If you want to go the formal coding bootcamp route, I have a couple of guides for you that are tailored to that situation:
For those who can’t or don’t want to attend a real bootcamp, I wanted to create a guide aimed at anyone struggling to navigate the ocean of available resources on their own.
My goal is to give you a curated curriculum of specific resources to be followed in order, roughly equivalent to what you would cover in a real bootcamp. I want to make it flexible enough to accommodate different learning styles, and able to be done at a pace that works for you.
It is based on the core list of topics that a beginner would need to grasp to become generally employable, and is what I would likely follow if I was starting over again today. Of course, there will always be other things you can learn, but this should be enough to give you a solid foundation.
The resources included are all ones that I have personally verified. Many of them I've actually used on my own journey to becoming a professional developer, so they have also helped me get to where I am today.
What will I learn?
Mirroring a lot of regular bootcamps, the curriculum has a full-stack web focus, and uses a modern JavaScript stack (including React, Node.js and Express).
Why this stack? Firstly because it offers a good balance between ease of learning, ubiquity and employability, and secondly because these are technologies I use in my day-to-day job, so I'm more familiar with the JavaScript ecosystem than that of other beginner-friendly languages.
I want to emphasize, though, that learning fundamental concepts is more important than learning any specific language or framework. JavaScript is as good a place to start as any, but your first language is really just a tool you will use to implement new concepts as you learn them. Once you've learned basic programming concepts, you'll be able to apply this knowledge to other languages, should you choose to learn them.
How will I learn?
The resources are a mixture of books, articles, videos, documentation and online courses, from many different (mostly free) sources.
Aside from the low cost, I think this style of learning actually has a few other advantages over doing a single course:
- It's good practice to get used to absorbing information through a variety of media (professional developers use a combination of reading, watching videos or talks, and hands-on projects to learn new things)
- It's closer to how you'll learn once you're working as a developer (there's no neatly packaged course that can tell you everything you need to know throughout your career)
- It encourages you to apply the skills you've learned in independent projects, rather than just following along with cookie-cutter projects done by everyone else on the course
- You'll develop the invaluable developer skill of Googling (looking things up for yourself when you get stuck)
Will I build projects?
Yes! Projects are a must for anyone learning to code, and are a big part of what you would do at a regular bootcamp. Many of the resources I include will have you build projects as you work through them. You should definitely complete all of these for practice, but to really solidify your understanding, you should also attempt more open-ended projects, and not just code-along style tutorials.
This will require more work on your part as you'll have to figure more out for yourself (as opposed to just following a single set of instructions). It will make your projects take longer, but ultimately be much better practice for you, as you'll really engage with the problems and learn a lot more.
I’ll suggest appropriate points to stop and practice your new skills in these kind of projects. I'll also offer hints for project ideas that can be adapted to fit your personal interests. Having a portfolio of more unusual projects will be a big plus when it comes to getting a job.
You'll also learn Git basics, and create a GitHub account which you can use to keep a record of your projects.
How long will this take me?
There's no single answer to this. It all depends on your prior knowledge, how much time you have to devote to learning, and the pace at which you absorb the material. For most people, I would expect it to take 6-12 months to work through everything, from start to finish, including projects.
When I link to courses that have their own time estimate, I'll mention those, but I've otherwise avoided any kind of time-related terminology in the guide itself (Week 1, Week 2 etc.) because getting a solid grasp of a topic is more important than how long it takes you to do it.
This is a major flaw of regular bootcamps: people are forced to move on at the pace of the bootcamp, regardless of whether or not they have actually gained a solid understanding of the material so far. If something doesn't stick first time, I encourage you to revisit the topic, use it in more projects, and approach it from different angles (Google around for other people's explanations) until you feel like you've got it.
Should I learn web development on my own?
If you're unsure whether you have what it takes to learn web development on your own, figuring out if you're actually cut out for programming could help you decide.
Ready to get started? Head over to The $27 DIY Coding Bootcamp.