My billing rates depend upon how much I hate the programming language.
A discussion I had with someone recently revolved around his learning Java, which is in high demand in Europe, a place he has become attached to. Here in the United States, the skills that seem to be in extremely short supply are main-framers, the Cobol/JCL/CICS propeller-heads. These days, they have been renamed to ‘Enterprise Servers’, but they still live in rooms with raised floors and freezing air-conditioning and fishbowl windows so the boss can see what the operators are up to.
After programming in Databus and Basic and 8008 Assembler and 360 Assembler and 8086 Assembler and APL and Cobol and LabView and C and C++ and C# and RPG II and Javascript and Visual Basic and Visual Basic Script and Visual Basic for Applications, I can tell you that after a while programming languages don’t really do much for me anymore; if you need something programmed I’ll program it. They all have conditional operators and looping structures and variables of various kinds and I/O statements, and it ain’t going to cost all that much more to do it one way or another. My billing rate may depend on how badly I hate the language, among other things, but my highest rate is still cheaper than anyone trying to make a living in San Francisco.
Many of us remember programming when our files were saved on punch cards, paper tape, and cassettes. The term ‘overlay’ appeared frequently, followed eventually by ‘virtual memory’. Some of us remember thinking carefully about whether we could persuade the accounting manager to convince the owner to buy another 16K for our computer, so that we could close the books within thirty days of the end of the month. That was a period of time when the way a language used computing resources mattered a lot. These days, the chip running the TV remote has more memory than some of the computers I had access to in 1971.
Micron Technology has recently delivered a 4GB memory module to Intel, presumably as a component to Intel’s Itanium computer, a 64-bit computing behemoth that currently requires 220-volt power. The programmer these days is not thinking in terms of how to reduce byte counts and get every computing cycle to do useful work; rather the task of the day is to figure out which function, object, or library included in the development environment already does whatever it was the programmer was thinking of writing. Anyone that’s simply attempting to catalog the functions in Excel is bewildered, and this is aimed at non-technical users!
A programmer ‘learning’ Java is probably actually learning something else: e-Commerce, manufacturing, order-entry, for examples; in an industry: automobiles, medicine, banking, etc. Most people that are really interested in the issues of property management are probably kind of weird, so the programmer discusses Windows Server 2003, .NET, and SOAP and hopes the government will reduce the H1-B quota so that it will be possible to find work in bio-informatics. In short, most programmers muddle through users’ problems in order to make a living. Really interesting stuff is elsewhere.
A programming background aids in grasping other concepts. You might have a hard time taking the cube root of 100 million in your head, but if you realize this is simply a field of 27 bits (which can be split into three nine-bit fields), you can persuade someone that a large H-bomb will not blow up a two mile-high mountain. You also realize that your fully sequenced DNA would require most of, but not more than, one CD-ROM.
Much ‘programming’ work is really hacking the operational procedures of a business. Things are done a particular way which no one has documented, and which in many cases no one has even explored. Management hands the specs to the programmer, and an application is developed. In the deployment phase, everyone discovers that the
grunts actually do something else. Usually, all this leads to is a long-overdue discussion of the ‘we’ve been trying to tell you this forever’ variety.
Reading ‘2600’ (the hacker quarterly) reveals details about K-Mart, Blockbuster, and various federal law enforcement agencies that I have no need to explore in the first person. While reading these exploits are certainly amusing, one can only ask: "Who would spend one minute of time doing stuff like this?"
American ex-pats attempting to develop systems in countries and businesses that are less than transparent find themselves in a minefield, perhaps literally. There are, so to speak, things you don’t need to know. That being the case, ‘shortages’ develop for programmers with specific language skills. The actual shortfall is in people that know how to design a system by reading people’s minds. The more paranoid the environment, the less automation is possible. The more politically driven the distribution of resources, the less appreciative the players are of anyone nosing around trying to figure out what’s going on, particularly if the result of the inquiry is any kind of documentation.
So my friend wants to pick up a job in Europe, preferably Paris. My personal experience with such visits is a feeling of having traveled back in time, not because of the Ionic columns and the Roman sarcophagi in the Louvre, but because of the industrial-era thinking where you get a factory job for forty years and retire with benefits. Your role in society is largely established by the time you’re in high school. Any external force, whether technological or economic, that upsets this apple cart is to be resisted with every fiber of one’s being.
Where this is true, the American technologist is an essential but evil presence in the land.