“Programming is easy”, they said, and I would wholeheartedly agree. However, software development is not easy. A plethora of technologies and frameworks are required to develop and ship an enterprise-ready application that can run in a production environment.
But again, software development is subjective.
If you are just creating a small web application, then any technology stack would do. If you are creating a full-on banking application which should be scalable and secure, then Java and its framework are preferred. Similarly, if you are focussing on machine learning or artificial intelligence, then Python or R is your go-to programming language.
The point is, no matter how good you are at coding, you are always learning new stuff to complete your task. The constant learning on the job makes it so fun since you get the sense of doing something meaningful.
I have been mentoring the juniors in the team, and some of them have recently graduated from their respective colleges. When I started giving them the knowledge transfer of my applications along with the business overview, they were overwhelmed.
My junior colleagues assumed that whatever they had learned in their respective colleges was enough to get them started in the software industry until they were bombarded with a range of technologies, frameworks, tools, and best practices.
In fact, being a relevant developer simply necessitates staying current with a variety of technologies and upskilling on a regular basis. Irrespective of your experience, one must always be open to learning new technologies and implementing them when required.
“Fake Till You Make It” is the Worst Advice
In my initial years, I was guilty of lying about knowing something about a particular concept or tool during a job interview. While in some interviews, I could simply ace them. However, in some interviews, an interviewer could easily make out that I had been fooling around.
Yep. That was me. Don’t do that.
It is well known that in today’s ever-evolving tech world, nobody knows everything, for obvious reasons. It is okay to not know. What matters is how much effort you are willing to put into learning that technology, programming language, or even a concept.
Recently, I conducted an interview with a person who was doing the same. I just told him about my experience with this and also made him feel comfortable. He was nervous as hell. I asked him whatever he said he was comfortable with, and he did ace that interview.
Understand your Requirements before Working
This is not even a rookie mistake. A lot of experienced folks do this. If you get a task, you should always understand the requirements. Always get the full knowledge of what is being asked of you. Otherwise, you will lose a lot of your precious time. The time lost will haunt you when you are working on a crucial project.
What we do is write the implementation plan with a detailed analysis of the task and send it to the assigning person. I am sure you are following, or you will follow a different process for doing the same. The implementation plan helps me save hours, and the analysis ensures that I am on the same page with the requester’s requirements.
Crises test your Character and make you Strong
You just need to understand that not all of your software development days will be rainbows or sunshine. There would be a lot of dark days. A lot.
Of course, if you are working on a bigger project, there will always be contingency plans for every major failure. It’s the minor things that backfire on you and your team.
There have been so many instances where unforeseeable issues have cropped up in the PROD environment, even though the application was well tested for every damn possible scenario in your DEV, QA, and UAT environments. And you need to fix the issue (s) in under 4 hours.
At that time, it is always best to focus on the error rather than finger-pointing at each other, and playing the blame game. I have seen that as well.😅
It is at the crucial moments that it will define your character and not crumble at such moments. Just shut off everything and focus on the problem and work with your team. You will come up with a solution.
New Technologies will always Tempt You
“Robotics is sexy”, “Data Science is currently hot”, and “Web 3.0 is the future” — Have you heard these statements? Maybe a paraphrased version of these statements?
When I was studying engineering, robotics was all the rage. Everyone was talking about it. Then came big data and data science, I mean, Twitter was filled with “data science” 2 years back. Now, Web 3.0 and Meta have captured our attention on every social media platform available.
Don’t get me wrong. All these are great technologies, but running after them without learning anything properly will definitely not help you in the long run.
But hey, it is always good to learn about newer technologies. In fact, it is encouraged. However, in my opinion, you should first strengthen your foundation in any of the domains and become known to the extent that you can earn from them before venturing into uncharted territory.
Software development is one of the best jobs that you can currently get. It is exciting, lucrative, and keeps you grounded on all levels. You have lots of scope to learn as well.
If you enjoyed reading this, you might also find the below articles worth your time.