The Software Industry can be daunting: seemingly infinite amount of things to learn, hundreds and thousands of pieces of technologies, groundbreaking hardware innovations every year.
It's all normal to have doubts and uncomfortable feelings when you are starting your journey in this industry. Like learning anything in life you will feel like an outsider at first. However as soon as you overcome the hardship of beginning something new, things get a bit easier. As you spend more and more time with this "something new" you will start to feel more and more comfortable. Eventually you will arrive to a state where it would be very hard to remember what it was like before you knew this "something new".
Learning a programming language
So you decide to learn a programming language, let's name it Skillhand. You successfully create your first "Hello World!" program. Then you start writing more complex ones (FizzBuzz, TODO app, etc.), maybe you get a job and contribute small pieces to the production code. A few months pass and you don't feel so alienated by the industry anymore, it's pretty normal that you are a Software Engineer.
A few years pass and you are helping some other people in Skillhand. You know that you came a long way, and you maybe even got that mid level Software Engineer title. You thrive in writing Skillhand code, and you just love your job.
Another few years pass, and almost every other engineer comes to you for asking Skillhand questions. Your manager knows this and (s)he decides to promote you to a Senior Software Engineer.
Since you are one of the best engineers in the team now, an orphaned project is assigned to you. "Bring it" - you think, you are pretty good in Skillhand. To your surprise though the project is written in WisePalm (another fictional language).
Learning a programming language again?
Remember that daunting feeling I talked about? It was a long time ago since you experienced that, and you don't ever want to feel like a newcomer and powerless.
You could say that you don't want to work on this project, and it will be handed to another engineer. However, you decide against that and accept the project.
In the next months you start working in WisePalm. Soon you realize it lacks a lot of things you knew about Skillhand. You start to dread this new language. You would really want to work in Skillhand, but it would take a lot of effort to rewrite the project. Your productivity and enthusiasm decreases day by day.
What is happening?
Simply put, you are pushed out of your comfort zone.
How can I get back?
You can of course get back by ditching the project, but I don't think that's a wise choice. The ever-changing software industry will crush you if you don't adapt. Maybe it won't happen so quickly, it's rather a slow process which makes you miserable.
Overcoming the uncomfortable
So if nothing's left to do, why not just embrace the unknown? Take a leap of faith once again and start learning. If you did this once, why wouldn't you be able to do this the second time. It is almost a zero risk undertaking.
Accept that this new language probably exists and is used for a good reason. Be optimistic and focus on the bright sides, not on what's missing from it compared to what you are used to. Develop a Growth Mindset to get there faster.
What will also help you is thinking in concepts rather than code. Notice how most of the time the same patterns are implemented in different languages. Recognizing these patterns will help you become proficient in any new language.
Think in business, think in product, think about what actual problems you are solving with code. Your mind will open up to these things and the great picture will be much clearer. Try to describe the algorithms you implemented with natural language.
Stop entrenching yourself in the old and known, and embrace the new and unknown. I guarantee you will be happier.
Top comments (0)