Saturday, October 17, 2009

On Computer Programming

If you are interested in working for the federal government, this is the web site to search for jobs. It's a huge improvement over the past, when jobs were posted to local newspapers.

There is one deficiency. If you are looking for a computer job, the postings seldom specify the precise skills required. Instead, you are redirected to a lengthy questionnaire on a slow server. Often the questions are not just multiple choice, but contain text boxes asking for a more detailed response. Around the thirtieth question, you may be asked whether you have experience in PeopleSoft or some other highly specialized niche. If you don't, that means you are not qualified and have wasted up to half an hour on one job posting. Also, if you are gay, the federal government does not offer domestic partner benefits, so it may not be worth considering as an employer, unless your partner receives health insurance elsewhere.

Computer jobs tend to be too specialized overall. When I graduated with honors, I couldn't find a local job using any mainstream language. Instead, I found employment with a company that wanted me to program in an obscure language used only by them. This is a cunning trick to discourage job-hopping. They expected long hours, sometimes during the graveyard shift, and the pay was lousy. I mastered the language, saved my money, and with a year's experience under my belt, left for a better job with more pay at another company. I kept all of my textbooks in huge triple-ringed binders, altogether weighing about a hundred pounds, for about ten years. Then one day I realized they would never be used again, so I deposited them in a dumpster.

In general, the computer programming trade has been a Tower of Babel. Skills become outdated with rapidity. Employers are seldom interested in programmers that know old languages. The old languages are no longer widely used. In my career, I seldom used the same language for more than five years. There was a constant need to master new languages. There doesn't seem to be any rhyme or reason to this. Sometimes it seems like change for the sake of change.

Recently, I read an article in Money magazine that compared the stress levels, education requirements, and potential salaries of a hundred different careers. For software development, they indicated that the stress level was low. I had a good laugh at that one. Real-time applications must be free of bugs and fault-tolerant. A programmer must be able to predict the future. He must consider every possible outcome, not just the most likely ones. If a technical event only happens once in a billion instances, that means that it will certainly happen, and you will be blamed for not anticipating it. I have seen the consequences when programmers make mistakes or oversights. Even the best and brightest programmers fail on occasion. It is just the same as a doctor flubbing a prescription. The guilt and embarrassment are enormous, because programmers are conscientious individuals who take pride in their work. "Sorry" doesn't cut it. Overtime is the only balm for failure, overtime and vast quantities of coffee.

College students should not be so eager to major in computer science, no matter how much they like using computers. It is true that the profession pays well, in comparison to say, the business major, which often leads to a sales job. However, if you have plenty of book-smarts, a better choice would be any of the other sciences, such as biology, geology, or chemistry. In these sciences, change comes gradually, and tends to be cumulative, building upon what is already known, rather than an entire subject becoming obsolete overnight.

In my opinion, the traditional sciences bring greater benefit to this world. You should want want more than just money out of your work. You should want to achieve something positive in your life of genuine benefit to society. Much computer programming consists of reinventing the wheel. Every company likes to craft their own individual solution to common tasks such as accounting. They do this to save money. It is often cheaper to hire a bunch of eggheads to hack out code rather than purchase a third-party package and pay an annual retainer fee.

Consider medicine. That's where the big money's at, and that's where you have an opportunity, at least, to make the world a better place. I can think of nothing better than healing the sick. Become a General Practitioner or a Registered Nurse, because the country needs more of them. You will never want for money in those occupations. Better yet, do research, because in that role, your work may save many millions of people. The more knowledge we acquire, the better, as long as this knowledge is used in the proper ways.

No comments:

techlorebyigor is my personal journal for ideas & opinions