Want to “Outperform your Peers” and “Grow Consistently” as a Software Developer ? Do this.
By: Anjul Garg
Tags: Growth Mindset, Work Life Balance, Software Development, Career Advice, Promotion

Photo by Austin Distel on Unsplash

Technology is advancing at a staggering rate and industries are revolutionising the way they work. As a result, Software Development has become a hot career choice among the millennial population.

If you are a Software Engineer, you know how the world of software development is constantly changing. With the number of new programming languages, frameworks, tools and cloud technologies being introduced everyday; staying up-to-date and relevant has become a daunting task.

Moreover, Software Development as a discipline has been split horizontally into specialisations like Mobile Development, Machine Learning, Backend Development, Frontend Development, QA and Automation.

Software Engineers now are expected to be polyglots, having knowledge of and expertise in multiple such domains.

Young and inexperienced developers have often asked me questions like :-

“How do I grow and stay updated while working full-time at work?”

“There is so much to learn, how will I ever do it?”

“I never get time to study new technologies. What should I do?”

“My friends are taking a course on ML, should I take it too?”

Let’s admit it, the huge list of technologies being used at organizations these days can give any programmer anxiety.

As a fellow developer, I understand the challenges and tribulation of being a novice in this field. It’s natural to get intimidated seeing your peers throwing around jargon and using technologies you never heard of. All that while trying to grow your career can be truly crippling.

A wise man once said, “Success comes when Opportunity meets Preparation”.

You will get plenty of opportunities in your life. But you will have to be prepared for them.

In this article, I aim to share the ideologies that helped me grow in my career and made me a better person overall. Please note that this is not a “be-all, end-all list of todos” and only reflects what I have learned so far in my life.

You CAN NOT learn everything

I see so many developers stressing about learning everything at the same time. They feel intimidated and beat themselves up if they come across a subject unknown to them.

Software development has been divided in to multiple domains because everyone understands that knowing all these disciplines at the same time is extremely difficult. And it requires specialized practice to become a quality professional in all of these domains.

Don’t spread yourself too thin, pick one or a couple of these domains that are most relevant to the professional work you are currently doing; and learn them as much as you can.

Learning is Gradual and Continuous

One simply doesn’t become an expert overnight. It takes years of practice, mistakes, frustrations and patience.

More importantly, if you are not putting your knowledge to practice regularly, chances are you will forget it sooner than later.

A good tip for constantly getting better at your job is to take out some time out of your daily schedule and dedicate it to learning. For example, start reading up official documentations of the tools you are using or are planning to use at work.

It is very important to have defined goals in life and work constantly towards them.

Stop Overthinking and Start Doing

Sometimes, the thought of doing something is so overwhelming that we never start working for it. When I face such a task, it always helps to break it down into smaller pieces.

Sounds very similar to agile development right? It’s because it is. Agile development works great in real life too. Iterative and incremental development keeps you focused and enthusiastic.

I remember when I first started learning guitar. I would watch YouTube videos of people playing it effortlessly and creating incredible music. As soon as I started practicing, I lost all my enthusiasm because I was so bad at it and the journey seemed too long. Instead of giving up, I paced myself and set smaller goals. Learned to play simple open chords first then moved on to complex chords and then learned how to sing while playing.

You can try that strategy with anything you wish to achieve in life.

NEVER Over Commit and Under Deliver

It is natural to be over zealous at your new job. You are trying to outshine your peers after all. I was like that too. But it is very important to know your capabilities. Yes, humans can achieve anything if they set their mind to it but you can’t reproduce that effort every day without feeling burnt out.

If you over commit, you will face one of two situations. Either you will overwork and exhaust yourself or you won’t deliver what you promised leaving a bad impression on your team and manager. None of those two scenarios add any value to your life.

Start slow at a new job. Learn the nuances of the business and understand the core values/priorities of your team. Try to identify the level of productivity you can demonstrate consistently without exhausting yourself.

If you feel you are not able add enough value to the team, talk to your manager and let them verify your concerns. Sometimes, you yourself are your biggest critic.

Don’t just code. Communicate

Good communication is an essential skill for productivity and creating strong working relationships at all levels of an organization. This has been particularly important since the Covid-19 outbreak forced many people to work remotely.

Sometimes your ability to communicate effectively can dictate whether you are fit for a promotion or not. For example, a people manager is expected to interact with the team and stakeholders on a regular basis. A good orator can inspire and lead people ultimately improving their performance.

Even if you don’t want to manage people and would rather be a technical architect, you would still need to interact with stakeholders that might not have a technical background.

Be Professional, No Matter What

This applies to any field of work out there. When you come in to work, you should leave your ego and personal biases at home.

Conflicts are natural and will arise wherever a passionate group of people work together. Even if you have disagreements with someone, you have to believe that you are working towards a common goal and there is no mal-intent.

Resolve differences through communication and try to understand that everyone has a different perspective. Celebrate the diversity and try to learn from it.

Appreciate Feedback and Act on it

In the end, no matter how hard we try to be good at our job, there is always room for improvements.

Moreover, a feedback doesn’t always have to be negative. Sometimes, knowledge of the fact that you are doing a good job can add vigour to your life.

Always show willingness to learn, constantly seek feedback and iteratively act upon it. It demonstrates a growth mindset and shows that you truly want to be better at your work.

Not only that, you should also provide feedback to others around you and give them an opportunity to improve.

I would love your feedback

Do let me know if you strongly agree or disagree with something I have written here. I would love to learn from perspective. :)

Also, please share if you have a success story that was fuelled by one of the ideologies mentioned here.