Skills of a programmer that nobody is talking about

Md. Hussainul Islam Sajib
Published in
4 min readJun 8, 2021

--

When we’re talking about a programmer’s skills, we’re always talking about technical skills and maybe some soft skills. In this article, I’ll try to list some of the skills that I think are critical for being a successful programmer, but are rarely or never talked about.

Learn transferable skills

I used to believe that syntax is very important in programming. Don’t get me wrong, syntax is important. But there are other things that are far more important that learning syntax.

The more important skills would be learning how to solve a problem, basic understanding of algorithms, understanding of design patterns, and the ability to be persistent and not give up on a problem or project.

When in college, I would learn a few new things every semester. In one semester, I’d learn C++, Node.js, and DB2 in three different courses. Though learning the nitty-gritties of a technology or language is important, what I found to be far more important was how to approach a problem. The list of languages and technologies is so vast, and the pace at which new technologies are being built is so great, it is impossible to learn everything! So rather than jumping around from one thing to another, a programmer should first build a solid base in the things that are more stable and return value in the long run. One of the books that I read, that helped in this regard, was “Think Like a Programmer: An Introduction to Creative Problem Solving

Photo by Hans-Peter Gauster on Unsplash

Keep a playful attitude

It’s important to keep a playful attitude while learning; otherwise, everything can become monotonous. Continuously trying to solve different problems can take a toll on mental health. When learning something, I would try out different approaches and see the outcome. This gave me a better understanding of how things worked. This approach worked from dynamic memory allocation of C++ to uploading bulk data in Node.js. This prepared me for thinking out-of-the-box and having multiple perspectives on everything. This also taught me the value of questioning everything and learning from the answers I receive in the process.

Another great way of learning is actually participating in hackathons. A great platform to do this is minbean.io. This can be particularly helpful when one knows the basics and wants to build up that skill.

Take Breaks

I know this might be counter intuitive. Everyone tells you to grind and work hard. But it is equally, if not more, important to regularly take breaks. As a beginner, it was hard for me to take a break from focusing on solving something. However, it surprised me how quickly I could solve a problem after taking just a short break from it. I know, it can be really hard to get the problem out of our head. But our brain is just like any other muscle: once it’s sore, it needs to rest before it can perform well. Also, sometimes the compulsive drive to solve a problem can become so intense that we don’t see even the most evident solution right in front of our eyes.

Bug fix meme

Identify the wow’s and meh’s

I came across a bunch of new technologies in the last two years. Some technologies I found amazing; I felt excited to work with those. Others were not that exciting for me. It was very easy to get overwhelmed by the sheer number of things that a programmer has to master now-a-days. It’s virtually impossible for a beginner to grasp everything. To keep razor sharp focus, give less attention to the things that don’t excite you that much.

Build a focus area

Once you know what technologies move you, work on them. First, focus on the major features and gradually move into fine details. Read documentation! Read StackOverflow! Build stuff using what you like! Spend time working on it.

Like I said before, technologies are fast evolving. So, you might not get to work with the technology you have learned but you will build up the habit and skill to learn something in-depth. This coupled with the other transferrable skills will strategically position you for success.

--

--

Md. Hussainul Islam Sajib
Mintbean.io

Exploring software engineering, cybersecurity, and cloud