It seems like there are quite a number of people who do not want to work as programmers. These include people who are at the stage of choosing a course to study, or someone planning their career, after graduation. And it also includes people who have already worked as programmers before and now are doing something else. Why, in fact, many of my clients seem to say they were programmers before and now they’re not. (I’m a programmer, by the way)
A good part of what makes a programmer has to do with him or her as a person. (I’ll use “him” and male-gender-words henceforth for simplicity sake). Do bear in mind that it’s not courses that teach one to become a programmer. It is pure hardcore work that moulds one to be one. You have to program and program and then program some more and you’ll never reach perfect, but you are definitely getting better and better. Classes and courses don’t do that for you.
I didn’t take Computer Science as a course. I took something completely different, and have always regretted that I should have found my passion sooner so that I could have gone for CS course instead. But after some time, I realize: CS course doesn’t make the programmer. Only his own hard work does. The course only teaches the theory and their exams are just that: to test if you know the theory. The way to pass those exams are just like passing any other exams: constant mugging or smart exam-scoring strategies and techniques. No, nothing to do with being a better programmer.
In a sense, programming is like someone who’s constantly getting hard knocks, he falls down, then gets up, brushes himself off. And then, he try again. Repeat-loop that for multiple times, if you know what I mean. Not many people in normal circumstances keep doing that when faced with their daily everyday problems. They might try, fail, try again, and soon after, give up, for many of their problems. But a programmer just can’t. Giving up is NOT an option. You can backtrack, you can take a break, but give up? No. The only way to give up is to give up the programming career altogether. And that happens typically to many.
One more thing a programmer ought to be good at: mathematics and problem-solving. And being creative in that. There’s more than one way to execute something, it seems. When a programmer thinks this is the only way, he’s more likely to give up when facing a dead-end. Just like being stuck in a maze, one has to walk back out and retry another route, hoping for a clear solution there.
Next, about memory. Memory’s very important for programmers. Not exactly photographic memory or being able to remember dates. More like memories of the problems he faced last week/month/year and how he overcame the problem at that time. Because if he loses that memory, what that means is that he has to go through all that torturous experience again, trying to find the solution to the problem at hand, when he already had found a solution in the past.
Also, important for a programmer is to know how things and sub-things interact (or inter-relate between one and another). Most of the times, touching or tweaking one part of one module will affect somewhere else in another part of another module or somewhere else in the whole application you’re building.
Lastly, your spelling needs to be perfect. Programming is not exactly English, which is rather forgiving. My article might have English mistakes, but you understand my meanings, nevertheless (I hope). But forgetting a semicolon in a program is something that might drive a programmer mad for hours, especially when he’s starting out. And that’s just one crazy lesson learnt, among others. And typically, lessons learnt hard are not easily forgotten. But, in programming, we learn such lessons too many times, that sometimes such lessons are also forgotten, if too long ago. And that’ll be a double whammy when you learn, after many hours of fixing, that this was the same problem you faced some months ago, and you spent the same 5 hours trying to fix it, before finding out it’s just a semi-colon problem, just like the previous time. Damn.
Somehow, I don’t think many people like all these above weird experiences to be part of their work-life, or that they don’t possess these traits. That’s why I feel many don’t want to be a programmer.
That’s all the rambling I can do for now. But, there’s more to say. Maybe I’ll do a Part 2 next time.