I have been meaning to write a post like this one lately. Hopefully, I'll be able to keep it short. This was meant to be a little memo to myself, but I guess some people could benefit from it, so let's do this.
In this industry, we all come from the same place. The more time I spend on dev.to, the more I realised it. A place full of doubts, uncertainty, discomfort. It seems like we all go through the same process. Some call it imposter syndrome. There is always a moment in one's career when we question our motives, our abilities, our intelligence... or whatever we think doesn't make us enough to be a programmer. This is a natural state in a learning process. Whatever the thing is you are learning. Sports, math, relationships..., how can you know what you are doing when you never did it? You don't.
Do you remember the first time you drove a car? I can still remember my first lesson. How could I operate such a complex machine all by myself? What if I crash into a crowd? What if...? In the end, I'm doing alright driving my car today.
Like many other people, I experienced this as a self-taught developer. It's a tough place to be in for the first time. But, we manage to overcome this feeling. We are all better for it. But, I believe it's important to keep the feelings and emotions of that time in mind.
Lately, I've been reading, writing and learning a lot about blockchains. The more I read about this stuff, the less I know. There is always something deeper to learn behind every concept. And most of this stuff is WAAAAY over my head. I'm reading Yellow Papers about blockchains writing in a language that is not my native language. On top of that, there are mathematical formulas, hexadecimals, cryptographic hashes...
If I started to learn about blockchain 2 years ago, I would have quit. No questions. But now, I know better. I felt the same way about Web Development not too long ago. What I feel about blockchain is only amplified because it's happening right now, it's so fresh. But it's all the same. And I'm having a blast. This is just so much fun. On my last mining article, Peter asked a question about the calculation of the difficulty/target in Bitcoin. It sent me down a path where I started to calculate stuff in hexadecimals, converting hexadecimals in decimals, googling countless of things... It took me two hours to answer the question, but that was just amazing.
So, every once in a while, put yourself in that place again. A place where you are the person who knows the least in the room. A place full of doubts and discomfort. But, every time you choose to go back, it will be a little bit easier each time and you will grow for the next time around.
I've heard Bob Martin estimates that, in the programming world, the number of developers more or less doubles every 5 years. Doubles !! Which means, in our field, there is always 50% of the developers who have less than 5 years experience. This means that in your career, there is a very high chance you will work with something who knows a lot less than you, or is just starting out as a developer. Please make sure that you remember how you felt that first time. You could be a valuable help for a person just starting out. Remember what it felt like so you could deliver a precious piece of advice, provide much needed support, or even just not get angry at what you think is a stupid question.
I don't want this little essay to be one of those that make you question who you are as a developer. There is nothing wrong with being in a place where you are just refining what you learned before, not learning anything completely different. I've stayed in that place for 6 months, I needed it. It is somewhat exhausting to push the limits of our knowledge.
I'll just end this little article with a question that helped me a lot when I started out:
At what point in the life of a flower, from seed to full bloom, is it perfect?
Is a flower perfect when it is struggling to get out of the soil? Or is it perfect when it finally feels the sun for the first time? When it is in full bloom? When its colors are starting to fade?
The answer is obvious, a flower is always perfect. Every single step along the way is a necessary one that can't be discarded. The flower has to start as a seed, struggle to reach the surface, bloom into a beautiful plant and die to become the nutrients for another plant.
It doesn't matter where you are, struggling to see the surface or in full bloom. You are perfect just the way you are. The path you are on is your path, and it's the perfect one for you. Every step you took, are taking and will take are necessary steps for you to grow. You'll be alright.
Peace. And keep learning.