If you are a software developer and you really want to see some success in your career. You need to shape your behaviour a bit. Different professions need different type of skillsets and behaviours. For example a doctor needs to have a very good memory, a football player needs a very good physic and fitness. For a software developer I think the top three qualities are:
- Able to sit down and concentrate for long hours.
- Habit of reading.
- Have patience.
Let me explain why I think these are the top 3 characteristics according to me.
When we see hackers or software developers in movies we think they just quickly write code and the magic happens. They need seconds or minutes to solve huge issues and hack systems. This is totally exaggerated. In reality software developers need to sit down for hours or even days to find proper solutions for an issue. Applications take months to get developed. There are a lot of thought processing, discussions, decision making, trial and error before a feature is released to production. Software developers have to do critical thinking to find a solution of a problem and find the most appropriate way to write the code so that it can be reliable, robust and maintainable. As software developers need to do critical thinking and find ways to solve problem it needs laser like focus to do it fast and error free. It's like connecting the dots and creating a mental model. If you get distracted or lose track of the dots, there are chances that you will take much more time or your solutions might not be the best. In this fast paced world, people are always excited and distracted. Our mind wanders even if it finds seconds of free time. Either it will ask you to open your favourite social media app or watch a video in youtube. This habit of restlessness makes it very difficult for a person to sit on a place and concentrate for longer hours. If you can sit for 2-4 hours and work on a piece of code to find a solution, you are most likely to progress a lot better instead of taking breaks after few minutes of work. As you need to re-organise your thoughts again before you get into the flow or zone. If you can develop this habit of sitting for long hours without getting bored or distracted and can focus on your work, you will be progressing very well in your work. You will achieve a lot in those few hours. That is why in my list this is my first and most important characteristics for a software developer.
The more you read the more you know. As a software developer you need to understand how things work. You need to see how other software developers have solved a similar issue or what approach would be better for a particular type of problem. Knowing all these is not possible except reading. You need to read books, articles, code, documentation and even StackOverflow questions and answers. You need to read logs to find bugs and issues in your code. As you will be spending most of the time just looking at the screen, you can already understand that your eye should be collecting info which you need to process. This is what we call reading. The more you read, the more you will know. If you don't have reading habits, you might not be up to date with the technologies and surly that will effect your growth as a software developer. So reading is very important.
Do you get anxious very easily? You can't keep your head cool when you are not able to process information? If that is the case, you need to work on your patience. Patience is super important in this profession. As you will be dealing with complicated problems and some of the information might not be easy to process for your mind. There is a high chance that you will feel the pressure. You will start to feel that your mind has shut downed and unable to work anymore. You will feel that it's an impossible problem to solve. But trust me, there is a way. You just need to keep your head cool and keep trying. You can't give up. You can't stop there! You might need to seek help from others, but make sure you have tried your level best for a limited amount of time to solve it by yourself. You must develop this mindset that initially the things might be difficult but overtime it will be under control. So having patience is very important for a software developer to succeed.
In my software development career I have tried my best to identify the behaviours of successful software developers and apply in my own life. So far I think these qualities are essential for a software developer to be successful.