Keeping it Small and Simple


Is programming difficult?

Filed under: programming — Tags: — Lorenzo E. Danielsson @ 00:28

I am used to talking to people about programming and being told that it is difficult. Usually, the person making this statement doesn’t have any personal experience to justify this statement with. It is a matter of something that is “common knowledge”.

So, is programming difficult? In a word, no. It’s not more difficult than learning a foreign language. Of course, you have to be ready to sacrifice some time to learn, just like you would if you were learning a human language. Over the years I have introduced hundreds of people to programming, and I have *never* come across a hopeless case. (I have, however, met numerous people who weren’t able to get far because of real or imagined external causes. Usually it’s just lack of concentration.)

There are a few things you need to keep in mind while you are learning. First of all, to become a good programmer you must write a lot of code. Kernighan and Ritchie told us this already back in the early 70s, but many of us still don’t get it. When I learn a new language I start to write small snippets of code to get familiar with different aspects of the language. Within a few weeks, I will have collected hundreds of small code snippets. I normally try to solve the same problems in different ways.

You also need to enjoy what you are doing. Of course, you won’t feel motivated every day. At times, you will need to push yourself. But at other times it may be best to just forget about programming for that day. If you push yourself too hard, you may begin to feel that it becomes a chore, which would be bad.

I recommend that, if possible, you select a single programming language and spend a bit of extra time to learn it really well. It is totally irrelevant which language you choose. I know people who used assembly language, Pascal, C, BASIC, Java and a host of other languages as their first language and have ended up as good programmers. Choose a language that you feel you are likely to use, not something that some programmer tells you is a superior beginners language. (Trust me, that programmer has no clue of what they are talking about. It’s just a personal preference.)

Once you are familiar with the syntax of a programming language and have developed enough abstract example programs, you will need to be creative as a programmer. This requires other knowledge. For instance, if you want to program network monitors, you would have to know a bit about computer networks (er. forget the “a bit” part). If you want to write mathematical models of plinian eruptions, you would have to read up on your math and volcanology.

This is no different from acquiring a foreign language. Once you know the syntax and have a vocabulary of every-day expressions, you will need to pick up a specialized vocabulary that is relevant for you. For instance, if you are a chemical engineer and learning Chinese, you will eventually want to start learning chemical terminology in Chinese.

All this is not difficult, but requires that you make your mind up and take it one step at a time. But why then, does programming have a reputation of being difficult to learn? Part of it no doubt, comes from parts of the software development community themselves. In a society where we are blindly taught the religion of competition, most people would want to keep competitors out. Many people will stay away from a field that is believed to have high barriers to entry.

It’s also a matter of status. I think we all want to be accorded some respect by people around us. If what I do has a reputation for being difficult, something that requires more knowledge and intelligence than the average person is capable of, I feel good about myself. Never mind the fact that I may not really be as brilliant as I claim to be. Most “experts” aren’t.

Now go back and re-read this post. Each time you come across the word programmer, replace it with “doctor”, “journalist”, “geologist”, “dentist”, “politician” or whatever you want, and I’m sure the same still holds.



  1. hhmmmm…programming is not that quite easy specially you are doing that all by yourself.i am a beginner programmer and there is time that I get frustrated because some problem that I can’t find for the answer and I feel to quit but I never did and I take those problem as a challenge. somehow programming now is my hobby and I love to talk with the people who have lot of experience in programming because I can get some ideas and codes.

    Comment by DC Global — 2008.02.15 @ 02:24

  2. @DC Global: Yes, anything worth knowing does take a little bit of effort. And it does get frustrating from time to time. But don’t give up. Keep working at it and you’ll gradually gain more experience.

    I come from a time when we were all self-taught. It was only in High School that I formally had programming on the schedule. Since I was an engineering student, Pascal (using Turbo Pascal) was the language of choice. But I had already been programming for years, first on my VIC-20, then Commodore 64/128 and eventually the Amiga.

    My Pascal teacher, who was also our math teacher, didn’t really know much about programming. Several of us learned Pascal too fast for him to keep up. So we were back to teaching ourselves. We also began writing code together, and that was the time when I realized how much more one can learn by being in a “community” (I didn’t use that word back then).

    Comment by Lorenzo E. Danielsson — 2008.02.15 @ 13:14

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Create a free website or blog at

%d bloggers like this: