I have interviewed many engineers during my profession, and two groups of them grabbed my attention.
Group A
Sadly, they stayed with a job for years without advancing their technical skills because there was no need to acquire new ones.
GroupB
The engineers wanted to leave their jobs because they were too dull and could not learn anything new.
Confusion
Group A confuses domain knowledge with technical knowledge; you might be good at what you do at your current job because you know how everything works there, but it doesn’t indicate you are a sound engineer; it is a bitter truth!
Engineering mind
Group B usually doesn’t admire the engineering mind. An engineer’s mind wants a problem to solve, and when there are not many difficulties on her plate, she starts feeling bored and unsatisfied with the work. It appears to all of us, and just the rhythm of it is different.
Common problem
Group A and B have one thing in common! They both think their current job is responsible for their situation and problems, Which is not valid!
As a software engineer, what you can do is endless; there are so many open source technologies and tools, but the project and company’s goals dictate what to use and what to do when it comes to day-to-day work.
We are responsible for our growth, and we cannot expect our current employer to care more than we should. So the first step is to understand the problem and the root cause.
What is the problem?
In this context, the problem is that we are not happy with our work and our technical skill is outdated; the root cause is us. We have to learn and update ourselves constantly.
Solution
One of the best ways to keep ourselves updated is defining a pet project outside of our comfort zone, which could push us to do things that we don’t do at work. It is essential to pick up a project that looks like a new world. For example, if you are a backend engineer, pick up a mobile project, or a data scientist, pick up a web project.
It is also vital to set a realistic goal. You want to learn a new skill by doing a pet project, but you might decide not to continue doing the project after a while because you don’t like it, and that is fine. Just don’t be too hard on yourself.
Pet projects also can be just learning a skill without actually doing any work. For example, you heard the GraphQL term and want to know what it is and what it can do. Watch a 30 minutes video on YouTube to familiarise yourself with the concept, and that’s good enough.
The goal of a pet project is to keep you up to date and satisfy your engineering mind; after all, it should be fun and helps you to be a better engineer!