From Nervousness to Confidence: My Journey to Solving the Tech Stack Switching Problem
When it comes to working with the tech that you love, you can easily work and build any product, app, or anything. When you are working in a Big tech company or MNC then there are chances that you need to work on a tech that you are not familiar with.
The problem comes when you are not familiar with the tech or even you haven't heard of the tech before and your manager or team lead wants you to work on it.
In this article, I'm going to share my journey of how I overcome the fear of working with tech or programming language that I'm not familiar with. I'm going to give you a few tips to follow whenever someone asks you to work with an unfamiliar tech or programming language, I'm sure you won't be afraid.
About me: A quick introduction π
Before I share anything a quick intro about which tech I'm working on and what I do for a living. I'm working as a software developer for 3.5 years, with experience in mainly Angular, ReactJS, NextJS, Nodejs, and SQL. I also work in Flutter, DotNet, MSSQL, MongoDB, Ionic, and Svelte and build several microservices, APIs, and apps.
I started my career as a web designer then gradually moved to a development career as I know I want to be a developer in the future. From designing to developing I build many Saas-based apps for clients, worked on many products in my organisation, and build many side projects just to try out new tech and for fun.
Where's the problem π
If anyone has to work on a tech he/she is comfortable with, and a product that is built by you from scratch. It's going to be easy to work, you know ins and outs of the code and you know how things are working in your code.
if you are stuck on something then you search for solutions on google or watch tutorials on how to do things get done. But what if you have to work on a product that is developed in a tech you never heard of it or work on it before? Also, the product is already developed and used by thousands of users currently? Now you have to implement a new feature on the existing product.
Here things would be different and not going to be easy. You need to work on code that is written by others, tech you need to work on which you don't know, and all you need to complete your task on the given deadline.
You don't have enough time to learn the tech because you need to finish the task before the given deadline. This kind of scenario will happen all the time and most of the developers faced fear, lack of confidence, and are not comfortable switching between different techs.
My recent experience π€
I'm sharing one of the recent incidents where I need to work on SvelteJS. I know nothing about SvelteJs, I don't even know how svelteJS is working but after working for many years in the software industry and in different tech I know I will figure out about svelteJS and how things are working in svelte.
What I do most of the time is first, go to the tech documentation and learn how to install the tech, life cycle, dependencies, etc, then I will print hello world using the tech and start implementing things step by step.
But the product is already developed and used by millions of users. A buggy code can impact product performance or can break the entire app and can impact millions of dollars for business. I do not just need to write code but also write code while keeping performance, clean code structure, easily maintainable, and scalable in mind.
Here, my organisation plays a very important role to help me develop an attitude to work with any tech. In the organisation where I work, we follow the scrum methodology. Whenever a new sprint task is created that time I'm not sure what task is going to be assigned to me, It doesn't depend on which tech stack you know or how you are good at any particular tech but it will assign as per task complexity.
Mostly we worked on Angular, NodeJS, DotNet MVC, and MSSQL. Whenever a task is assigned I get to know that I need to work on any of the techs I mentioned above maybe I need to create API using Dotnet or Node, MSSQL or I need to design and implement a feature using angular or sometimes I write some backend code in Nodejs and Dotnet then I create some APIs using it and implement it on the frontend using Angular/React in the same task/feature.
Working in different techs at the same time improve my confidence level. This kind of work culture really helps me to be built confidence to work on different tech. At the time when I start my development career, I'm afraid of how I'm going to work on tech which I'm not confident about.
I only know vanilla Javascript but the strong fundamentals and programming concepts also help me here. My mentors and teach leads believe in me and push me to work on different tech. Learning by doing is the best way to learn something new.
Remember:- βOne should always be ready to unlearn to learnβ
When working with new tech you should unlearn the concepts you know about the tech stack you are familiar with. The same concepts or fundamentals for the framework don't apply to other frameworks.
I develop a mindset to work with any tech stack while working in my organisation. We all know to learn something new you need to try new things and not be afraid to do it wrong.
Developers at Tech Giants π
Tech giant companies like Google, Meta, and Netflix conduct interview that focuses on data structure and algorithm as it provides insight into the developerβs problem-solving skills, understanding of fundamentals, ability to handle complex systems, and code quality.
If the developer has the ability to solve the problem he/she can work with any tech stack. Programming Language or Framework is just a tool to solve problems. You are a software developer, not a framework-specific or language-specific developer.
Empty your mind, be formless. Shapeless, like water. If you put water into a cup, it becomes the cup. You put water into a bottle and it becomes the bottle. You put it in a teapot, it becomes the teapot. Now, water can flow or it can crash. Be water, my friend
-- Bruce Lee
Tips to Remember π€©
If you want to be a 360-degree developer I'm giving you some tips you should follow.
Strong Fundamentals:- You should have strong fundamentals of computer science and programming concepts. If you are not from computer science that's fine but strong fundamentals with programming concepts are a must.
Attitude is Everything:- When it comes to working with tech you don't aware of, develop a warrior mindset that accepts the challenge to work with any tech. Attitude is more important than anything.
Continuously learning:- Learning and updating your skill will help you to stay up to date with the new tech in the market. This will also help you to adapt changes in the tech industry.
Different team:- Collaborate with different team/developer who has expertise in different tech. Learn from each other and share your knowledge.
Open source:- Contribute to open source projects. Start with the small open issues, open source will help you gain expertise in different tech.
Mentorship and Guidance:- Ask your senior or lead person about new tech, and ask them to include in the tech which you are not familiar with. Your seniors or leads help you to grow and develop your skills.
Side Projects:- Build side projects in different techs you don't know and tech that interests you the most. The project doesn't need to be the next big million-dollar app. You can build small apps like a calculator, to-do lists, or anything.
Learning while building helps you a lot. You are not just building the app, you also learn the new tech concepts and how to solve problems using new tech.
These are my tips, maybe some other things might work for you apart from these tips. Find what works for you, take action, and jump into different techs. From now on Don't say "NO" to any other tech. Accept the challenges and write some beautiful code in tech you are not aware of.
Conclusion π
A question may come to your mind, isn't it necessary to master one skill? Yes, you can master one, two, or multiple techs at a time. There's no one-size-fits-all answer to this question, as the best approach can vary depending on an individual's goals and preferences.
If you ask me I love working with different techs. This helps me to keep up to date with trendy tech in the tech world and helps me to explore different domains I'm not aware of. This also helps me whenever I going to build any app or product, so I know which tech to choose depending on my requirement. You will benefit from this in the long run.
Thank you for reading my article. Iβm going to share more tech content soon. So, Please Follow Me, Feel free to comment and share your suggestions/thoughts.
Also, Follow me on Twitter @asenseofpradhyu. I share daily Cloud, System Design, Code, and many more tech stuff π