A key ingredient in becoming the best as what you do as a software developer is continuous learning and development. As easy as this sounds, how to go about it is often one of the greatest dilemmas of software developers. This article will examine why it could be dicey and how best to achieve this.
Employers always want the best hands working in their organizations in fact, it is the primary reason why they employ one person and not the other. After people get into the system, they could get stuck just doing the mundane — getting the job done daily without continuously improving. This is always detrimental to the growth of the employee because gradually, they are no longer the best hands available, they do not stand out anymore.
As a software developer whose primary source of income is not freelancing, you would often find yourself wondering how to navigate this path because most times, you cannot choose what projects you take on or the kinds of applications you manage. Companies have their trusted applications and they usually restrict changes on these applications because they want to reduce disruption in service to the barest minimum. For software developers who have to work on applications like this, they could feel stifled and their creative juices restricted because employers are more interested in keeping the running while the developer even though interested in keeping the app running optimally, would also like to try out new things. So what is the solution to this, how do we keep both employer and employee happy? Even from the employee’s point of view, this needs to be addressed because no one likes to stay in a place that almost feels like a cycle, same old stuff every day; and this increases iteration rate because developers ordinarily like to take on challenges, it usually gets them thinking and kicking.
I will be sharing how I and most of the people around me navigate this hurdle, how we keep the “creative” juices flowing and the employers happy all at once.
One of the most-commonly suggested ways to deal with this is by taking on side projects; You could take up a side project alone or with friends. One of the best things about this asides from the fact that there are a million and one ideas out there, is that you can implement the idea anyway you wish and if you get stuck, you could look through what others have done and find ideas on how to solve the issue. However, the con of this is that laziness could set in. A developer may just as well copy a working source code online and paste it as work done.
A second approach is by research. Yes, in your spare time, you should commit to researching the programming language you employ daily trust me, there is always something new to discover, better syntax, libraries that make your work cleaner and faster. Your research could even be on writing cleaner, better and more efficient codes. While you may have limited control on the overall architecture of the apps you work on, you certainly can make things better. In most cases, these apps have been written a while back therefore, they could be a couple of steps behind in terms of technologies used also, these apps will most likely have passed through various hands with varying levels of experience which could make the code base quite brittle to handle. Research makes everything better. Research exposes your mind to how you can handle even a brittle code base, how you can implement better, cleaner syntaxes without breaking anything of consequence.
The third method is by taking opportunities. There will always be new projects coming up even in already established companies. New ideas, new thought processes which will require people who can spearhead them. Why this style is exciting is you have a clean canvas to paint whatever you desire on, it gives you the opportunity to prove your mettle, to show that you are much more grounded than what they are used to and it gives you exposure. I remember the first .NET Core project I wrote at my place of work was through an avenue such as this. There was a fresh API to be developed, it would be needed in the shortest possible time so people were shying from it but I wanted to really implement a .NET Core project so I picked it up; it was frustrating at times I must admit, but I achieved my goal. Firstly, I tried out several technologies on that project, which was such a joy; and it showed growth and development which is something that every employer wants to see in their staff. It was a win-win situation. I was happy, my employer was happy.
Another way to keep growing is by contributing to open source projects. One of the biggest positives of this is helps you to build your network because you would be collaborating with people from all walks of life. It also encourages peer-to-peer working and exposes you to other technologies that you may not be familiar with.
In summary, I highlighted three methods I often employ for continuous development:
- Taking on side projects
- Taking opportunities at work
- Contributing to open source
There are more ways by which people ensure they are continuously learning and putting to practice what they learn but in this article, I have highlighted some methods of continuous learning that I employ so feel free to find your own path. However, there is a common denominator for all the methods highlighted which is, continuous learning starts from the mind. Unless an individual decides to continuously invest in themselves, nothing can happen because each method requires grit and determination which is never easy to come by.
As long as you are committed to your own growth, you will always find a way to make it happen. As they say, where there is a will, there is a way.
Perhaps, the most important thing you need to develop is the will to keep improving.
Do remember to leave a feedback as this would be well appreciated.
You can find me on twitter: @bammieyour and instagram: Olufunmbi Adeosun.