Photo by Max Duzij on Unsplash

Coding is more than a skillset; it’s an attitude, approach and art!

0Shares

Having worked in IT and mostly with programming and architecture for more than 17 years, I have come up with this correlation between programmer’s attitude and their coding style. I got an opportunity to work with different types of programmers through different projects I have worked within my career and have reviewed their coding styles. Each has their unique signatures on how they code. The most important thing I have observed based on their coding style is:

Their coding is Directly Proportional to their attitude

While coming to programming there are two dimensions to it. One dimension is to address the business challenge and another dimension is to write better code. Business challenge brings life for a project with deliverables. But better code gives a good shape for the project and meeting the deadlines with the quality promised. 

To write better code, many companies come up with the coding standards and ask the programmers to follow them and add stringent code review methodologies that make it impossible to introduce bad code into the production. Though this ensures a good deliverable, the attitude of team members who develop the code plays a vital role in the success of the project rather than the policies. 

A man is defined by his approach to his real-life problems and how he solves them. Whatever approach we follow in our real lives, I have observed that the same thing we follow at the workplace. I am going to add my experience with people that I have worked with and how their attitude has made them different and unique out of the whole team. One thing to observe is they do something because that is their nature, their attitude rather than their skillset or proficiency in their work area. That is why we see many new programmers who are completely from different background of study getting successful in programming and helping companies move in the proper direction. Because their background may limit them from being a good programmer but their attitude towards learning, understanding and thinking better, makes them frontrunners of the software industry. 

I have worked with a senior programmer in a project while I was a fresher out of college and fascinated by his confidence in his code. He would challenge the QA team to find bugs in his code and offers a chocolate bar for each bug found. As a newbie, I wanted to know what is the secret for his confidence and went through his code and found out that he writes a separate project that tests the scenarios addressed by the code and he runs them before checking in the code. I have observed other programmers never did this. He would spend more time in completing tasks compared to other programmers and so he had to work a few extra hours to complete his tasks. I asked him one day why he bothers to spend extra hours while others go home. He told me that for him it’s more like a responsibility rather than a job to give a good deliverable as a programmer. Also, it gives him a sense of achievement as he leaves for the day. After a few months, I realized that while other programmers were busy with fixing the bugs in their code, this guy was spending time to code new enhancements/features to the product. Other programmers were always afraid of getting bugs in their code and they used to carry the same feelings to home. But this guy leaves happily to home and spend the quality time with his family. He received many accolades in his career and always recognized for his quality of work.

I am not sure if he is the Master of the programming language, but definitely, his attitude made him Master of coding. He’s one of the examples where his attitude has shown him in a different dimension than his skillset. In his real-life also, he was very sincere and humble in his dealings with family and friends that gave him true happiness in his life.

I had an opportunity to work with another programmer who had this approach in his coding that he adds comments for the methods and classes he writes so that any other developer can easily understand it without much effort. While check-in the code he would add better comments that always helped others to review the history of each version of code. He would put braces for all the set of code whether it is needed or not. So, it was always easy to find which block of code gets executed based on a particular condition. Here is the same case as above. When there was a need of rolling back code, other programmers used to review the versions with each line of code that they have changed because they are not well commented and his code was simple to rollback because of his comments for each of his check-ins. Even after a few years of the project went live, new programmers would feel ease to work on his code rather than others. 

I have observed that in his personal life too, he was a very well organized person. His family though gets fed up with his organizing stuff at home, they always used to tell me that if they have to look for something they don’t need to search. He would put a sticker on each file about what it has and maintains an index of things so it is easy to search. Everyone at home and work feels easy to work with him. Here is another case where his attitude won him more accolades than his skillset.

I have met one C# programmer who was asked to work on wearable devices programming in C++. He has shared his experiences to the group of programmers at a meetup. He said that his approach of writing code has changed once he started working on the project and it has also changed a lot in his personal life. Since it is a new area, he had to ask help from existing programmers many times. From asking help from other programmers he understood the dependency on others and learnt how to be humble and compassionate. This also taught him the need of helping others. From programming perspective, he was restricted to use as much memory needed for executing a particular instruction and release it as soon as the operation is completed unlike automatic memory management available with programming languages like C#. This taught him to utilize resources in better way and that in away turned him to change his spending habits in his personal life. This also helped him understanding poor people and how they manage their money. So, his approach to poor people has changed and started respecting them more. Also, working on the project helped him to take ownership of his tasks as it was a startup company with only handful of programmers including its CEO who was also a programmer. He ended the session saying that one year working in the project has entirely change his life. So, by working in the project he just did not learn a skill but an attitude that totally transformed his life. 

A programmer who understands Object-Oriented Programming very well understands the importance of abstraction and encapsulation along with inheritance. Every programmer while writing code truly may/may not be following OOP concepts. But if you observe who have imbibed these concepts as a part and parcel of daily lives will always make sure that they follow OOP concepts by default. 

If you observe, for example, an email wrote by them they will make sure all the relevant information is provided in the body of the email with respect to the subject of the email and they don’t deviate for a single line from the subject and abstracts the information that is not needed to the email recipients. Whoever goes through that email will get whatever the information that is needed for them and they don’t need to go through something that they do not need through. Any documents they prepare, any updates they give during team meetings they always ensure that only right information is provided for the audience and not for a single moment they would deviate from the topic of the discussion. A programmer who has these abilities will leave their mark in their code with proper abstraction and encapsulation. They don’t consciously write the code with the principles but it’s their nature that makes them better for this job concerned. This does not mean other programmers will not be good in implementing them but they might leave some room for improvement for sure.

There are other sets of programmers who will become good mentors without aspiring to be one. These people have an inherent attitude of helping others and they like to share with others not only with the code but in other things in real life. They would do more social work, educating people and helping friends in need. The same approach they show at the work too that make them go-to persons without their knowledge over their career. When they fix a bug in the product after struggling for many hours, the immediate thought comes to them is there might be other programmers who might encounter the same problem and their immediate action would be sharing the fix with their team by sending an email or publishing the fix in company’s intranet website or write a blog so that others can benefit from it. Or they may go share their experiences and code with other programmers in a meetup session. These programmers would have started sharing something like a simple fix or few lines of code according to them, but it might have helped many other programmers in the community by saving few hours of effort which can be translated to saving dollars for the company and that’s where these people get attention and becomes mentors to the other programmers. But if we observe they do it because that is their nature; not any motive to become a mentor. If someone aspires it to be a mentor or go-to person, he would always have to consciously put efforts. But someone who has the inherent ability to help people would never to put conscious efforts. Because it is not something they want to become but it is something they are. It’s their attitude towards helping others that made them what they are and they do not have any expectations in return. That’s why we see many programmer podcasts, youtube videos, forums, and blogs which are found when searched for a problem in Google. Most of the blooming programmers survive, learns and become successful in today’s world only because of the few programmers of this nature.

These days we find several open-source projects available in Github and many new open source languages, frameworks coming up. If we observe each language or framework or any open-source product was initially some programmer’s pet project or solution to their problem at work and they do not want to keep that for themselves and want to help others. Python, Groovy Script, Java and Linux are few of the millions of open source artifacts available today. Some stories go like a programmer sits at an airport for a few hours while his wife was doing the shopping and got an idea and it turns out to be a new language. Someone always complains about how the business is changing and how difficult it is to integrate with different products that their company is onboarding, comes up with a solution and that turns out to be a different project. They are in a way doing social service and contributing to society by sharing their code. Their code may be the reason that many other people can earn their bread and butter which otherwise would have become difficult to. 

You may get a question on how open source projects helps in earning bread and butter for other programmers? Imagine a freelance programmer who is very good at UI and knows only JavaScript programming. If he has to develop software faster, how much time he has to spend on writing JavaScript code. Because of so many new JavaScript frameworks available as open-source, he would spend little time to understand them and start delivering projects at a faster pace. That is indirectly helping him to earn more for which he did not put any effort. This is a simple example. But many examples can be discussed. These open source programmers also challenged the monopolistic nature of software companies that forced them to participate in open source their code as the only option to survive. 

Here again, it is an attitude of some programmers to help others has made them different from others. That is why most of the companies look more at the attitude of the person along with their skillsets. Sometimes, the interview board selects a candidate based on his attitude and willingness to learn rather than his skills in that particular area.

There are millions of programmers, but only a few standouts to be exemplary and idealistic because of their attitude and approach to the problems they solve in their real life. That same attitude they bring it to the workplace and that makes them excel in what they do. There are many books on coding. But no books are enough to make a person be a good programmer because there are infinite ways to better writing code and the only attitude of the programmer brings the best way to write better code. It’s like you have a big house, but it depends on how beautiful you decorate it and how well you maintain it. Otherwise, that big house is appreciated only for its size, not for its beauty. 

Thanks to different programmers of the world for their attitude that is bringing a lot of opportunities for other people who would not have flourished otherwise. Because of these people’s attitude the world has become a better place to live. 

Disclaimer: These are just my personal views and not backed by any research studies. 

0Shares