Software development has taken the world by storm in the past couple of years. Every aspect of people’s lives the world over depends on software in one way or the other – route navigation, buying groceries, banking, to name but a few. This software does not fall out of the sky or magically appear out of thin air but it is written by someone, men and women who possess amazing and sometimes out-of-this-world kind of skills. From the day I wrote my first
Hello World program I was convinced that I needed to be one of those amazing people who change the world through amazing software products. Ten years later I’m proud that my dream of being a software developer came to pass, albeit I’m not yet an expert, neither do I possess out-of-this-world skills yet. However, I believe I have reached that level where I can share my journey with someone else – talking about the things I have done or am doing to ensure that I excell in this amazing profession that I believe is changing he world. Allow me then to share with you what I believe is the recipe for success as a software developer. It works for me at least but it is by no means the best one out there.
1. Build A Strong Software Development Foundation
Everyone who knows or has interacted with me knows that I always say that I am a software developer first before I call myself a .NET developer, mobile developer or machine learning engineer. This is because from the day I started writing code I made a conscious decision to put my focus on software development as a discipline and not focus much on a certain technology. I remember during my first year at university when we were being taught writing C# code I got myself a Python book and started learning Python. Learning Python on my own was not a very big challenge because during my C# lectures I was not focusing much on the language itself but on the core principles of software development. Focusing on building a strong understanding of software development has helped me thrive in multiple programming languages and technologies. Technologies will come and go, programming languages will also come and go but the basic principles of software development such as design patterns, SOLID principles etc transcend all that and will hardly change. This is therefore the advice I give you if you are starting out as a software developer – focus on building a solid software development foundation rather than on a certain technology or language. Of course, you are going to use a certain technology or programming language to learn those software development skills.
2. Be A Life-Long Learner
Technology is moving at an amazing rate nowadays. This means there are always new ways of doing things and better technologies to accomplish a particular task. Even though it is virtually impossible to keep up with everything, you need to stay fairly up-to-date. The only way to accomplish this is by creating a habit of learning new things on a regular basis. Never be satisfied with what you already know, rather try and learn something new. This will improve your skills or add to your skillset which, in turn, will set you apart from the crowd.
3. Have Side Projects
Having side projects has helped me grow my skillset as a developer. I always make sure that I work with technologies that I don’t use in my day job which helps me learn new things and, sometimes, better ways of doing things. Most of my side projects never see the light of day but I learn a great deal from them. One of my greatest strength is not fearing failure. I’m not afraid to fail because I know through failure great lessons are learnt. If you can, have a side project that you will work on no matter how big or small. It will help you learn new things, especially if it uses technologies that you are not so familiar with.
In this post I spoke about things that I believe can help you excell as a software developer. This is not by no means the complete list or the best thereis but it has helped me grow as a software developer. Once again thank you for taking time to read and hopefully you’ve learned something.