The Struggle in Being a Software Developer

The Struggle in Being a Software Developer

I have been working in the IT industry as a programming guy for more than five years now and there is one thing that I know will always remain true; and that is to always look out for frequent technological changes and keep on learning and practising them. This applies to software development more than any other career stream. If you are someone who is involved in development and maintenance of new and existing software systems then you must have felt the urge to keep up with the changing trends in application development. If you haven't then either you are one of those unfortunate souls maintaining years old legacy systems for a long time or you are simply an ignorant person who has lost the heart for programming.

Let me give you a perspective here. As of now I am focused on learning a JavaScript language framework which has a high learning curve and I'll need to put in so many hours in applying what I learned before I can begin to roll out production ready code. Now the interesting thing is that I did the same with another such application framework last year which is now quickly becoming obsolete. This means that most of my hours that I 'invested' in learning that framework can more or less be seen as wasted if I am not going to use that knowledge and experience any more. There is a high degree of certainty that this will happen again and there is nothing that I can do about this.

Sounds depressing doesn't it? For many of us it might sound disheartening but if we must keep learning new and sometimes boring stuff to upgrade ourselves then lets try to find a silver lining to this never ending problem. If you are always learning new stuff then you are more likely to learn them faster as changing technological trends have overlapping knowledge base. Technologies which are years apart have a high degree of being very different to each other than the ones which have a gap of an year or so. Another very important reason to keep learning is that you will always be relevant to the current job market. You will have an upper hand over any bad situation in your current company and over your career growth.

The difficult question for many of us can be about what to learn. There are so many options out there, so many choices and paths that the universe can take us to. Time invested in learning the right thing can prove beneficial in terms of both career growth and the monies we make. Some choices are basically dead ends because the software development industry is very dynamic and ever changing so it is fairly difficult to actually predict for sure what is going to stay for a while and what is not.

If you are unsure after careful consideration of different options then you can ask your mentors if you have any about which way to go. You can talk to your friends and colleagues who are working in the same technology stack. If nothing helps then just take a leap of faith and start learning and working on anything that you can trust your gut with. After all, doing something is always better than doing nothing.

There is another way in which you can keep yourself up-to-date with the latest (or sometimes not-so-latest) stuff. So many companies pay the exam and course fees of certified courses. Now these companies pay for only those courses which align with the technology stack being used in their products. Its up to us to decide if we want to pursue our company's preferred courses or we want to be a ninja and do what we are individually interested in. Whatever you do keep in mind that our time is limited and this limit is imposed on all our activities. Never commit to your company's courses unless you are sure that it aligns with your career goals.

You might be tempted to get your hands on that expensive certification that your company is offering and then flaunt it in your resume all for free. But remember that you will need to study and practically apply that course to pass its exams. Even if you somehow manage to pass that awfully uninteresting piece of course material and decide to put that in your resume; you will be putting yourself at a disadvantage in your future interviews. You will increase the expectations of your interviewees by putting the name of that certification which in all probabilities will be a vast subject (like .Net certifications) and someone might decide to nail you down based on a little part of it that you are less aware of.

Another big problem that most of us face is to get stuck in working on decades old systems and frameworks. The harsh truth is that not everyone gets to work in their chosen area of interest and there is a good chance for us to be one of those forsaken people. But you must not remain inactive in that career path and push in the opposite direction, forcing yourself to get the most out of your time as the job market can be volatile sometimes and you may find yourself looking for another profile.

In the end I would like to emphasize that no matter which career stream you are in, always be proactive in sniffing out the changes going on in your industry and eventually learn about them. There will always be something to learn and for many of us it really is a frustrating cycle; but with all the pleasures of our career we should also embrace the pain and it will be totally worth it.

To view or add a comment, sign in

More articles by Nitij Jhangra

Others also viewed

Explore content categories