How to Become a Programmer?

Shalaw Fatah
4 min readDec 27, 2022

--

It’s not about problem solving, or math, or surplus of analytical skills. I used to work in media, trying to write nice stories. When I came to Canada, I started to learn coding on my own. Math and physics have always been my twin nightmares. I could barely pass high school due to that fact. I wanted to be an engineer, or a doctor, but my lack of patience with abstract logic in science made that dream impossible.

I started programming with the prejudice that this is a job for people highly skilled in math, and I know I don’t like math. After a while, I got into it so passionately that I could not leave it. After some years, I believe to be a programmer, you need some soft skills rather than hard analytical skills. Here I try to list them:

Tenacity

There is no way you leave something behind. You can leave it for a day or a week, or even a month. However, you get back to it. This is the ultimate feature for anyone who wants to be a programmer. You do not quit, even if you feel like you are unfit. Return to code after a day of rage-quitting and you are a programmer in no time. I quit dozens of times saying, “This is not for me,” but returned the next day to code, and you know what, I just knew how to do it. Another thing is, if it is too difficult, leave it for tomorrow, that will pay off great.

Patience

It’s important to know that you do not good in a year or two. To program well, you need lots of expierence. Sure you have some rewards when building applications, but you may never feel satisfied enough with the level of coding skills. There is a subtle difference between programming and any other job: There is always something new to learn in programming, always a deeper layer of understanding. In other jobs, after a couple years of experience, you might have covered enough to work without much update, this is absolutely not true in programming. However, your ability to learn increases every day as well. One day, new languages, libraries, and concepts are not as difficult as they seem.

Initiative

After a while, most complicated features are one day away for you to learn. To create a chat application like Facebook Messenger seems difficult, but it only requires you to believe yourself. You should be able to take initiative. By then, you know the truly hard parts. Remember, programming should give you enough confidence to believe that you can solve just about any problem in coding. If something is too difficult, you’ll easily know how to avoid. For the rest, just ask for additional time, you’ll be able to figure it out.

Communication

There is a bad image of programmers being isolated and reclusive. That’s not true. Programmers need their own space and time for sure, just like anyone else, and often their thought process requires that they should be left alone for long, but that’s just about it. You have to realize that in this world, we are all weird one way or another, embrace it and communicate everywhere. Try to be the person who, in a professional manner, cares about everyone in your space. That will be very good for your mental health. You need a lot of positive energy to be able to go on hacking everyday, and energy is mostly emitted by others, as they reflect your vibe.

Humility

Avoid using jargon with others, and your peers, as much as you can. Only use them with seniors or peer developers when you totally need it. This is a great quality. Try to explain a complicated problem in simple words and you will soon realize that you understand the problem and you can solve it. Often we think we understand a problem, while we cannot. The best measure for me is talk about the problem in simple words. If I can express the problem, the keys of solving it are all there. Knowing that others do not understand the technical jargon is not only being polite, but serves you in a way that you can solve problems faster. Google and StackOverflow can help a lot once you know what the problem really is, in simple terms.

Practice

The last but not least feature is to be able to practice. Say you want to learn about higher order functions. Read about them and imitiate one day. Next day, try to write on your own. Then leave it for next week, make another attempt one more time. Then leave it for next month, with another attempt. Once this cycle takes course, you’ll see that when you need it, higher order function comes naturally to you. You know where, when and how to use it. This is a big payoff and will teach you to appreciate programming forever.

Needless to say, there is no research behind this writing. All of this is based on the anecdotal evidence of my own experience, and some others. However, we should always appreciate experience, as it nurtures our instinct and we usually use our instincts to make decisions, not analytical research. Try to use this if you think it could benefit you.

--

--