Lorem ipsum dolor sit amet, consectetur adipiscing elit lobortis arcu enim urna adipiscing praesent velit viverra sit semper lorem eu cursus vel hendrerit elementum morbi curabitur etiam nibh justo, lorem aliquet donec sed sit mi dignissim at ante massa mattis.
Vitae congue eu consequat ac felis placerat vestibulum lectus mauris ultrices cursus sit amet dictum sit amet justo donec enim diam porttitor lacus luctus accumsan tortor posuere praesent tristique magna sit amet purus gravida quis blandit turpis.
At risus viverra adipiscing at in tellus integer feugiat nisl pretium fusce id velit ut tortor sagittis orci a scelerisque purus semper eget at lectus urna duis convallis. Porta nibh venenatis cras sed felis eget neque laoreet suspendisse interdum consectetur libero id faucibus nisl donec pretium vulputate sapien nec sagittis aliquam nunc lobortis mattis aliquam faucibus purus in.
Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque. Velit euismod in pellentesque massa placerat volutpat lacus laoreet non curabitur gravida odio aenean sed adipiscing diam donec adipiscing tristique risus. amet est placerat in egestas erat imperdiet sed euismod nisi.
“Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque velit euismod in pellentesque massa placerat”
Eget lorem dolor sed viverra ipsum nunc aliquet bibendum felis donec et odio pellentesque diam volutpat commodo sed egestas aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod eu tincidunt tortor aliquam nulla facilisi aenean sed adipiscing diam donec adipiscing ut lectus arcu bibendum at varius vel pharetra nibh venenatis cras sed felis eget.
At some point in your journey as a software developer, you’ll reach the paradox.
The paradox is unavoidable and plagues all developers at some point in their career.
Now you may be asking, “What is the paradox?”. It’s this:
→ I feel like I’ve learned so much
→ I feel like I don’t know enough
These two counteracting feelings will take you through mountains and valleys. Moments of “I’m such a great developer and I’m doing so well” quickly followed by “I don’t understand nearly enough and was this the right career choice?”
Both feelings exist simultaneously and both will grow the longer you hone your craft. The more you learn and grow your skillset, the more you’ll become aware of tools, technologies, languages, concepts or frameworks that are out there that you currently know nothing about or have no experience in.
It’s an example of Einstein’s quote, “The more I learn, the more I realise how much I don’t know”.
This paradox is applicable to many aspects in life but particularly as a software developer. The reason being is that our industry evolves and changes at such a rapid pace. Often, as soon as you’ve mastered one framework, there is another one ready to take it’s place.
I don’t think you can ever truly escape it but I believe there is an approach to help lesson it’s impact and increase your own confidence in your technical abilities.
The approach:
→ Specialise at what you enjoy doing and are good at
→ Obtain a general understanding of other aspects that you fear you don't know enough about
Accept that you don't need to be an expert in everything. Don't waste your time trying to understand everything deeply because it's impossible. There is just too much. Rather acknowledge that there is value is knowing a little about everything and a lot about a little.
Java developers don’t need to know the latest changes to C# and frontend developers don’t need to know the crazy in-depth queries that one can write in SQL.
The confidence to overcome the paradox comes in specialising in something that you enjoy and are good at (your niche), followed by having a general understanding of the other things that are out there. The things that you hear about and suddenly have that sinking feeling followed by the thought, "I don't know enough".
Use that feeling to hone in on what you don't know and use it to your advantage. Use the paradox against itself.
I enjoy and love building frontend applications with backend-as-a-service technologies.
So I specialised in that to increase my technical knowledge and value that I can provide my teams and clients. React, Flutter, Angular, Firebase etc. That’s my niche and that’s what clients pay me for.
I then hear of technologies that send fear down my spine. "Should I know that?". "What if a client asks about that?". That's the paradox kicking in and showing me what I next to need to gain an understanding of.
Recently, it's been things like machine learning, Unity game development, low-code platforms etc. There is huge value in me gaining a good understanding of those things without needing to become a specialist in it.
I simply ask myself these 3 questions when researching something new:
→ What is its purpose?
→ When is it used?
→ How does it work?
We should be able to answer these 3 questions within a couple of minutes of researching. Let’s take machine learning for example:
→ What is its purpose? To allow software applications to become more accurate at predicting outcomes
→ When is it used? In projects that process data to help determine patterns or trends
→ How does it work? It uses algorithms to “learn” information from data without needing to rely on a predetermined equation model
There we go.
In 2 minutes of research, I’ve gained a super high level understanding of machine learning. I don’t know enough about it to go a build a model but luckily that’s not what I specialise in (currently). I have expanded my knowledge to be able to have a conversation about, use it in a sales meeting or identity a use case for it on a project.
Moral of the story:
Specialise in your niche. Generalise in everything else.
If you enjoyed this issue, please feel free to follow me on LinkedIn for more daily insights or pieces of advice.
See you next week,
Harley