(1) A hardware device used to customize a programmable logic chip such as a PAL, GAL, EPROM, etc. See PROM programmer.|
(2) A person who designs the logic for and writes the lines of codes of a computer program. Programming is the heart and soul of developing computer applications, and programmers are the most misunderstood people in the business. They are constantly being criticized for taking longer to write a program than they initially estimated.
Why Such Bad Estimators?
It is very difficult for people who have not spent any time programming to understand why programmers are often the world's worst estimators. Programming is very creative, and after a program is put into production, programmers derive a sense of completion that is very satisfying. Thus, the more programs programmers write, the more confidence they have. As a result, they take on what seems like an eternal optimism that the job can be done easily. As their confidence builds with experience, it often seems their estimates are even more absurd. It takes numerous hard knocks to wise up and then double, triple or even quadruple one's initial estimate in order to put reality into it.
Easy to Create a Hodgepodge
It is also very difficult for non-programmers to understand how easy it is to program oneself into a real predicament. Programmers love to code and are often in too much of a hurry to dive in instead of sitting back and analyzing the problem carefully on paper. There are a thousand logic solutions for every problem, and it is so easy to pick one that seems to solve the hurdle for the moment, only to find out a month later that the logic is inflexible and making changes is difficult.
Even experienced programmers fall into the trap, which compounds over and over as more patches are made until the program becomes unwieldy and nobody can bring it back into stability. Programs are then reworked and reworked, because they were not designed correctly from the start. This is why projects take longer and why your favorite program too often becomes quirkier in its next version.
Novices or Masters?
It would seem that programming is a profession for bright, young whiz kids, and, in fact, there are tons of them creating and maintaining some of the most widely used software in the world. Whiz kids, or any left-brained, intelligent person, for that matter, can program with just a little bit of practice. But, it takes years to become an expert at anything.
Masters in all professions have earned their stripes by making their mistakes over the course of 20, 30 and even 40 years. When you consider the average age of programmers in most software companies, it is understandable why software does not always work well. Too many novices make decisions that even more novices have to live with. In addition, programming is such tedious work that those who would eventually become the experts burn out and take other jobs. There is a constant influx of inexperienced souls to this field. See Freedman's law, programming language, application programmer, systems programmer and salary survey. See also to the recruiter.