Programming does not only improve your problem solving skills. It helps grow other abilities as well such as communication, learning and negotiating. Programming is more than simply sitting down, typing and glaring at the computer screen for hours.
We however also write readable codes so that other developers can understand what we are doing. As a result, we also communicate with them.
When we are programming, depending on our knowledge and experience, we try our best to be most effective, which therefore increases our communication skills.
The biggest skill you develop when programming is becoming more patient. You need to sit down for hours focusing on writing computer instructions, which will most probably not work the first time and require rewrites.
Therefore, having to sit down and concentrate on a single task for long period of time increase your patience.
Patience is the most underrated character trait to have in this modern day and age - especially with the instant gratification mindsets - promoted with the advent of internet and mainstream consumerism.
That does not, however, guarantee that a good programmer is a patient person but from my experience, there is definitely a correlation.
If you're a person who loves learning and is quickly bored with repetitive tasks, you'll find plenty of learning opportunities with programming.
You get to learn:
- technologies such as the latest from Web Technologies
- functionalities e.g. how to calculate Tax on different types of products
- conventions, methods and procedures - for instance git branches naming convention
- wide variety of processes in Project Management, task delegation and code reviewing
4. Handle Stress
Life is full of stressful situations. From our early childhood, we are teach to compete. From school to higher education, academic results are of significant importance. Additionally, we are also exposed with other sources of stress - particularly in our relationships.
Programming entails lots of trials and errors within usually tough deadlines. We therefore deal with stress on a daily basis and learn how to handle failure; particularly after Covid pandemic.
5. Negotiation and Persuasion skills
As a programmer, one observation that I've noticed is the Customer and/or the Product Owner is always in a hurry for you to deliver the products or resolve issues - even if you might be working on Proof Of Concepts (PoC) or Minimum Viable Products (MVP) - stuff that are meant for demo.
With programming, you learn to negotiate deadlines and extensions because most decision makers tend to underestimate the amount of work behind. In order not to be overwhelmed with the endless streams of work, you have to improve this skill. As a result, this also helps you in other areas of your life.
When I just started out, as a novice programmer, when asked to work on additional stuff, even if I was overwhelmed, I would always accept instead of directly refusing. As a result, I soon grow to despise my job.
Yet if the work is delayed for a few additional days, no one dies. Most developers don't work on the Emergency Unit where each second counts.