So you would like to grow as a developer?
Great! There’s a lot of good information out there.
But there is so much! You can feel like there’s a massive mountain of things to learn, and you don’t know if you have time to even scratch the surface.
It’s overwhelming, you’re worried that you’re not meeting expectations, and you’re freaking out.
Don’t freak out, please don’t.
Instead, ask yourself this question:
Has anyone brought up your performance?
The answer is probably no.
That’s because this is normal. It’s impossible to know everything. No one knows everything, not even that mythical developer you run into on social media that seems to be an expert on every subject.
This is especially true as a full stack developer. It is often expected of you to handle a wide range of tasks. Being able to learn what you need for the task at hand is important. But technology changes so fast, especially if you’re dealing with frontend development.
So what do you do?
As a junior developer, learn about the frameworks and libraries you use at your job. It will boost your confidence and make you stand out. Avoid learning the “best” library for X or knowing all the frameworks. That’s just FOMO. The technologies you use do not make or break you as a developer.
When you start to get more experience, you will encounter different environments with different technologies. You could focus on learning all the inns & outs of those technologies every time, but how much will that effort pay off in the future? When you get a new position or change jobs, a lot of that time will be wasted.
If you want to grow without getting overwhelmed, here’s 2 things to focus on:
1. Learn the fundamentals of building good software. Things that won’t be obsolete in a few years and things that help you understand how technology works.
Having a solid grasp of the fundamentals enables you to be much more effective as a developer. You waste less time, learn to use new technologies faster and most importantly: you build better software both technically and functionally.
Good resources on fundamentals for full stack developers:
- The Pragmatic Programmer by David Thomas and Andrew Hunt is full of all-around timeless advice.
- Clean Code by Robert C. Martin (aka. Uncle Bob), about (you guessed it): writing clean code.
- Composing Software by Eric Elliott, about FP in Javascript. There is a disclaimer though.
- Head First Design Patterns by Eric Freeman and Elisabeth Robson, about OO and design patterns.
- Designing with the Mind in Mind by Jeff Johnson, about fundamental UI design guidelines.
Tip: avoid the trap of thinking that you have to read every chapter in a book to be able to “check it off” or to “say that you read it”. If you read one chapter, and you are able to apply it and get value from it, that’s great!
2. Have a high-level idea of the technologies that are relevant to you, without going deep.
You can learn about new technologies, but you only need a high-level idea of what they’re about.
Ask questions like:
- What problem does this technology solve, what’s a realistic use case scenario?
- What are the ups and downs?
- Why are people excited about it?
If you do this, you will have a mental toolbox of technologies without spending an excessive amount of time learning them. When you need to solve a problem that a technology addresses, that is the time to learn more about it. It’s part of your job, so it’s ok to do it on the job.
No one can expect you to know everything.