A friend recently asked me for help. He had been teaching himself web development for the last 18 months, but felt overwhelmed by the vastness of online tutorials. “Should I learn Angular or React? Do I focus on front-end or back-end?” I’m sure many more questions were flying around in his head.
I remember feeling like this. I think everyone does. It’s brutal. I spent entire weekends stressing over “Ruby vs Python” articles (I chose Ruby for that project, but honestly, either language would have worked just fine).
To me, what really matters as a new web developer is one thing: learning how to build things that work.
Let me explain:
- Companies who will hire you have one main goal: companies need software that accomplishes some goal or provides some value.
- The languages and frameworks will change, but the main goal will still be the same: the software needs to work.
- Yes, you will also need to develop the ability to build well-written, easy-to-maintain software; but it would be irresponsible to require a junior developer to have these skills. You can and will get better at writing code over time. This is why teams do code reviews before committing changes to their codebase.
- It would also be irresponsible if a company expected you (a junior developer) to decide between frameworks/languages for a critical project. A senior developer can and should make those decisions.
- What I’m trying to say here: Focus first on learning how to build things that work. This step took me the past decade. Once you accomplish that, you can learn how to make things that work well. And then, later in your career, you’ll naturally be the one asked to decide between languages/frameworks (and you’ll be ready for it).
A few other tips I’ve learned along the way:
- Articles that tell you “you should know this thing by yesterday!” often left me feeling discouraged. They still do. Learning how to make software is hard enough. Feeling discouraged while you’re learning is stifling. You’ll get discouraged. When you do, see my comments below.
- You are making progress, despite what you think. I keep an excel spreadsheet log of what I learn. I try to spend an hour or two learning some small new thing every week (Note: I succeed at this goal 60% of the weeks).
And very lastly, but maybe more importantly: Tune into your feelings along the way.
- Discouragement/frustration is natural. It usually just means this goal is important to you, but you need some help/guidance.
- Overwhelmed-ness is natural. It usually just means you are reading/working on something that is too many steps ahead of your current knowledge. Close that tab and find something simpler. Software development will take a lifetime to master.
- Analysis paralysis is natural. Reach out and ask for help. Not everyone will have time to help (because they might be feeling overwhelmed as well), so ask a handful of people.