Monday, February 20, 2017

How Long Can I Remain a [Ruby, Java, C++, Python, …]  Programmer?

Several respondents to an earlier post have asked me about the future prospects for workers in one programming language or another. Here's my best answer.

As others have said, "I can predict anything but the future." But also others have said that the only things we know about the future are what we know from the past. Therefore, you might get some idea of your future as a [Ruby …] programmer from the answers to a recent Quora question, "What were some jobs which existed 50 years ago but have largely disappeared today?"

It was great fun reading all these answers, many of which described jobs I held back then. I go back a bit more than 50 years, though, so I have a few more to add. Most obvious omission was the iceman. In the 1930s, we had an icebox (not a refrigerator, but an actual box that held a block of ice). The iceman’s horse-drawn wagon would come around regularly and be surrounded by us kids, hoping to get free shards of ice caused when he cut up little blocks to fit our iceboxes.

Another job only briefly mentioned was typesetting. I never held that job, but I was trained for manual typesetting for a semester in high school. At least I know where terms like upper-case and lower-case come from.

Someone also mentioned keypunch operator, a task (not a job) that was often done by prisoners who were literally chained to their machines. Who weren't mentioned, however, were key verifier operators. Not many people today have ever seen a verifier, let alone even know what one was.

Even before my time, there were jobs that disappeared, but which I read about—for instance, in a nineteenth century book about jobs for women. The final two chapters in the book were about a couple of sure-fire women’s jobs for the future (1900 was then the future).

First chapter was about teletype operators. The chapter “proved” that there was a great future for women because they could operate a telegraph key at least as fast as men (and the telephone had yet to be invented).

Second chapter was about picture tinters. There was, of course, no color photography, and it wasn’t really even conceived of. Women were supposedly much better at coloring photos because of their “artistic bent” and their more delicate hands. Though there are a few photo tinters still around today for special jobs, it’s not a career with a great future.

By the way, one future job for women that wasn't even mentioned in the book was typist (or amenuensis) in spite of the then recent exciting invention of the typewriter. Other sources explained that women would never be typists because everyone knew that women were not good with machines.

It's fun to think about these forgotten jobs, but they're also a source of important knowledge, or perhaps even wisdom. Job disappearance is not some new phenomenon caused by computers. It's always gone on through history. True, some jobs lasted a long time, so long that they were passed down from generation to generation, even becoming family names, such as Smith, Turner, Eisenhower, Baker, and Miller. (See, for example, <surnames.behindthename.com> for hundreds of examples)

Some of those jobs still exist, though often modified by new technology. Do you still recognize Fuller, Chandler, or Ackerman? And many others have largely disappeared, remaining only in some special niche, like photo tinters. Do you know anybody named Armbruster who still makes crossbows? Well, you probably know a few Coopers, but how many of them still make barrels?

No job is guaranteed. Nothing entitles you to hold the same job for life, let alone pass the job down to your children. So, for example, if you think of yourself as a "[Ruby…] Programmer," perhaps you'd better prepare yourself for future with a more general job description, such as "programmer" or "problem-solver."

In fact, there's a whole lot of people out there who think (or hope) the job of "programmer" will disappear one of these days. Some of them have been building apps since the time of COBOL that would "eliminate programmers." I've mocked these overblown efforts for half a century, but history has tried to teach me to be a bit more humble. Whether or not they succeed in your lifetime, you might want to hedge your bets and keep learning additional skills. Perhaps in your lifetime we'll still need problem-solvers and leaders long after we've forgotten the need for Chamberlains and Stringers.

Additional reading: 

5 comments:

Bhaskar said...

Problem Gerald! I can not see myself "general problem solver" , because I lack bend of mind on other subjects than what I have interest and worked and love to live with i.e GNU/Linux . Now , a person like you can do anything they like , but a guy like me can not do whatever he likes . A bit emotional aspect, but true. Once (many many moons ago) a wise person told me to stick to a thing for lifetime to become a master or have better understanding, that's what I am trying to achieve.Still falling on my face every now and then to accomplish something.

I am certainly not sure my asnwer is related to your post or in general sense, but those things pop up in my mind.

Thanks for your patience. Anyway , learned a bunch , a lot from yours 3 books so far.Probably more in future...need to practice those ..knowing is not enough.

Gerald M. Weinberg said...

Bhaskar,
I agree with the advice to stick to something for a lifetime—if you can. What history tells us, thouigh, is that not every "thing" remains for you to stick to.

For instance, I don't know how old you are, but do you think that GNU/Linux will be around for the rest of your career? My first programming language was wired programming for the IBM 607—which disappeared about 50 years ago. Then came the IBM 650, again long gone. Then the IBM 704, and on and on. So to survice I had to become a "programmer," plain and simple, learning to pick up new languages quickly and effectively.

So, what I'm suggesting is that if you want a long career, you must keep learning new things—at the same time you're quite correctly continuing to master that thing you're now devoted to. Yes, devote most of your energy to becoming better at GNU/Linux, but maybe take 10% of your energy to learning something new—almost anything will do. At the very least, you'll learn to be a better learner, which can help you no matter how the future turns out;.

Bhaskar said...

Thanks a bunch Gerald! your advice are invaluable,honestly. I am precisely 43 years of age Asian male living in India. I have had association with GNU/Linux from precisely year 2000,15 th of jan. Although my first introduction to UNIX was in 1996 May. And I was foolish enough sit in front of the termial quitely doing nothing ,and some words from other sparks and I fall in love with it and the journey continues. And I am still stick with it and will be till my death.

On a side note, I peek on various things which specifically runs on GNU/Linux or UNIX(different variants) . I keep myself abreast with the latest technology( although shitty technological jourgons doesn't penetrate me).

I worked on SCM(out of interest, because I found cfengine is not reachable, so I cling on to pupet and I ignored chef and Ansible).

Receltly I did little with Docker ,Kubernetes and Rkt. With an consulting assignment with compnay ,who developing a course for Linux Foundation. So I did my part reviewing(doing hands on stuff) .

Now I beg to differ with you one point, which might sound silly to you. Don't you think UNIX lives long enough and will live forever?? It will surely , like GNU/Linux past 25 years and will continue to do well for the mankind and good in technological space where things matters.

By reading your book I learned plethora of things , which I try to practice as consultant (which I decided to become, because I hate to be dictated by morons, sorry for the bad word,but unfortunately corporate world are full of those.So , being an consultant I want/have my say and I should be sure what I am saying . And they better follow my word for their good sake . For two reason, they will pay me (unmost) and they don't know how to do that specific thing better way or have time. I might sound of a geek hubris ..but that's the truth

Correct me if I sound lunatic again.I know you are polite and have seen many people like me in your esteemed career .

Gerald M. Weinberg said...

Bhaskar,
Of course, nobody knows if Linux will still be around and popular for the next twenty years of your career, but I'm pretty sure it won't be around forever. Forever is a very long time, but in a practical sense, for you, twenty-five years is "forever," so you're probably okay. If you were just twenty-one years old, though, I wouldn't be so sure Linux would be around "forever."

In any case, it sems you are doing the right sorts of things to keep your career viable. And, if you're serious about becoming a consultant, you must realize that a consultant must know a lot more things than the technical details of a programming language or operating system. That's why several of my books are concerned with those "non-technical" aspects of consulting.

tamouse said...

Another great post, Jerry! I love also sharing with my younger colleagues stories of the yesteryear. :)

More on the point, I think, is that question of "How long can I last as a [Ruby...] programmer?" is already the wrong question. I think longevity in this world of tech lies in the question "What can I learn now?"

I'm so happy you're still writing and teaching and learning.