Ask HN: Am I the longest-serving programmer – 57 years and counting?
In May of 1963, I started my first full-time job as a computer programmer for Mitchell Engineering Company, a supplier of steel buildings. At Mitchell, I developed programs in Fortran II on an IBM 1620 mostly to improve the efficiency of order processing and fulfillment. Since then, all my jobs for the past 57 years have involved computer programming. I am now a data scientist developing cloud-based big data fraud detection algorithms using machine learning and other advanced analytical technologies. Along the way, I earned a Master’s in Operations Research and a Master’s in Management Science, studied artificial intelligence for 3 years in a Ph.D. program for engineering, and just two years ago I received Graduate Certificates in Big Data Analytics from the schools of business and computer science at a local university (FAU). In addition, I currently hold the designation of Certified Analytics Professional (CAP). At 74, I still have no plans to retire or to stop programming.
555 comments
[ 1.9 ms ] story [ 445 ms ] threadTell us, what is the secret to your longevity?
[I'm more than halfway to your experience but definitely missing this aspect.]
Also: 74 - 57 = 17 years of age when you started as a full time programmer. How did you pull that off in 1963?
When I was 17 I started a program connecting high tech firms to winners of a programming competition for high schoolers that is still going, 14 years later :-) But I was far from the first to do this here.
The PCs really aren't much more than intelligent terminals. You were right, and you should have held your ground and been eventually correct.
It really boils down to what I've already said. A company is its staff. What its staff does and accepts other staff doing is ultimately its policy. Anything else that they might have written down into a document that isn't enforced or followed is not company policy, but a way to compartmentalize responsibility and blame once its actual policies come under scrutiny
The company (and the law) have rules about discrimination and fairness, but when a group of 20-somethings interviews an older programmer those rules may not matter. Fixing age discrimination probably shouldn't focus on laws and company policies, no company has a policy condoning age discrimination that we need to fix. It's the software dev culture that equates age and experience with "not a good fit," for whatever reason. I have my own theories what those reasons amount to but regardless of why I think it happens, it clearly does.
But yeah, always vaguely thought she was younger starting.
(Aside, I wonder if recruiters in 1944 were already asking for ten years of ENIAC experience?)
"We shall need a great number of mathematicians of ability; there will probably be a good deal of work of this kind to be done" - Alan Turing, 1945.
You might find this talk by Bob Martin interesting - https://www.youtube.com/watch?v=ecIWPzGEbFc - it's a history of programming that isn't the usual style, but instead about this growth into existance, increasing numbers of programmers, where they came from, and the effects that's had on the industry and on programming languages.
As an example, Larry Page may have been a programmer in the very early days of Google, but it's been more than 15 years since Larry has seriously written code for a living.
As opposed to Jeff Dean who is still hacking away at his keyboard.
https://www.youtube.com/watch?v=9eyFDBPk4Yw
I think if you're a top-tier developer (which OP seems to be!) age discrimination may not be as much of a factor? If you're decent but not amazing (most of us honestly) you may find it easier to find work at 35 than at 55.
My biggest piece of advice to anyone who wants a long technical career is to keep learning new things. Don't rely on your day job to train you in what you need. Follow up on stuff that interests you and invest some of your "me" time on staying current in areas that interest you. I've seen a lot of people drop out of the industry because they were over specialised. I know APL experts, Cobol and DB2 experts, C++ with MFC experts, etc, etc. None of them are working as programmers any more. It's tempting to thing that Java enterprise and C# and Ruby on Rails and Python and whatever you think is the best paycheck will last forever. It won't and over time you will slowly become obsolete. A 40 something (or 50 something) with no relevant technology experience will be seen as less valuable than a 30 something because people will be imagining you are simply going through the motions. The fact that you aren't getting sucked into the new (and horrible) programming fads makes you even less attractive because the people hiring you have been pulled into those fads. So it's important to be able to speak the speak and walk the walk.
Anyway that's precisely the problem - either get sucked into all the horrible fads or not finding a job. That's a pretty bad choice.
There would be new projects & not many people in the company experienced in the tech required (due to hiring staff that has experience in their bread & butter current projects) and it was often pretty easy to jump on those ships - it does require the confidence that you'll be able to ramp up quickly!
Also when a technology is new there is a shortage of people with experience using it & companies relax experience expectations when hiring.
Artists get better with age. Programming is an art. All tedious tasks get automated away. All that's left are design decisions. Making good design decisions is what people mean by "taste". Taste gets better with experience.
A young person may have more physical energy, but to paraphrase Steve Jobs, they don't have any taste. Their surplus physical energy could be a liability, as they'll just write more code that's hard to maintain. Of course there are exceptions. Don't discriminate by age in either direction. Ask for experience, and make your final judgment after examining their portfolio (just as you would an architect or photographer), looking for signs of good taste.
Further reading: "Taste for Makers", by Paul Graham, http://www.paulgraham.com/taste.html
That means most employers have only ever seen developers with <5 years experience, working in teams of same, using languages and tools designed by and for same. How could such employers properly value 30 or 50 years of experience?
Does wisdom count in software? Practically and generally, I'd say no. When setting hiring priorities, cost trumps wisdom in all but the most senior roles.
(BTW, at 62, I've been coding professionally for 34 years. I wish I were valued more by my employers with each passing year. But if it's so, they hide it well.)
How do you rate your mental agility versus your younger self?
I was honestly curious how it compared. What tools and processes transfer over, that kinb of thing.
You don't type; is the way you create this logic similar to Ladder Logic, Pure Data or Touch Designer?
I just realised I need to walk my dog more often after the lockdowns are getting less strict!
The first time I said I wanted a pair of single focus lenses for the computer (so I could use my whole field of view..), I got a lot of flak about "you should get bifocals". I haven't needed to drive anywhere in the last couple of years, so I basically never where my distance glasses anymore.
lately though.. Seems like they're getting more used to the idea. Maybe more people doing it ?
I've got the computer glasses, and then the regular ones. I swap as needed.
My only problem is forgetting to change glasses when I go out, and not really noticing til I hit a main road and wonder why the street signs are blurry.
Have you tried the 'blue blocker' type lenses? If so, how do you like them ?
I'm also very nearsighted :)
A true inspiration, thanks for sharing.
Hope I'll be able to say the same someday :-)
Welcome to HN! I hope you stick around, it can be a great place.
Any advice (technical or life) for us younger people?
Maybe I'm biased? PHP paid my bills for a long time and currently I'm a front-end developer that works mostly with Angular (but sometimes I jump into the .NET Core backends). I love JS and TS, they evolved nicely along the years.
Nothing against being a fanboy for one specific lang, but thinking "X" language is bad/joke/nightmare isn't nice and makes people that work with them look like losers, which they aren't.
To make a JS package consumable by a reasonably strict TS project, someone has to basically rewrite the package. It's less effort than writing one from scratch, but it's not free.
I’m not sure what you mean by “strict” here... Certainly one can use JavaScript from TypeScript, and even provide type information for the JS with declaration files. [1] Does a “strict” project require something beyond this?
[1] “Declaration Files”, TypeScript Handbook https://www.typescriptlang.org/docs/handbook/declaration-fil...
Adding the actually correct and reliable types is the hard part. (But easier than writing the code in the first place.)
'1'+1=2 prevents a lot of errors. The languages tries to help you along compared to an harsh error. Maybe you want a harsh error.. halting everything until you declare a new variable with the same type and have to go through a manual conversion. For me let the language handle that. If you are tdding anything unexpected will be caught anyhow if you are worried how things convert.
It's like rust in terms of memory management vs c. It handles it for you..
Still, this is unforgivable in my book:
The second example is misleading, and it has nothing to do with the rules for addition: the {} at the beginning of the expression is parsed as a code block, played off the rules for what the value of a Javascript statement is. More realistically, we have
but the original is, effectively,I worked with PHP professionally for some 10 years, with very competent colleagues from whom I've learned a lot. The PHP ecosystem with Composer and Symfony components is quite good. Still, PHP itself is a terrible language. I have less knowledge but a similar opinion of JavaScript. Doesn't mean people working with PHP or JavaScript are losers - I admire their tenacity and do feel a little bad for them.
Is COBOL terrible or C Or Go?
> Terrible compared to what?
Terrible compared to other available programming languages.
> What do you find a better language?
Lisps, Haskell, Erlang, Rust, but even eg Python, Ruby, C, Java.
> What makes a language terrible for you?
Allowing me to do unreasonable things and resulting in unreasonable behaviour. Eg JavaScript:
[] + {} == [object Object]
{} + [] == 0
> Is COBOL terrible or C Or Go?
Programming languages are products of their time and context.
When COBOL was created, it might've been the best there was. By now, I think COBOL can be considered worse than many alternatives. If someone decided to write a non-toy greenfield project in COBOL today, I'd be surprised and might question their sanity.
C has two things going for it: it's a simple language and it's close to the hardware. I wouldn't call it terrible.
Go, now I really dislike Go, but I think there might be situations where it's the right tool for the job. Simple web services perhaps?
PHP was terrible already when it was created. I don't hold that against Rasmus, he just wanted to get simple things done, and didn't even intend to create a full-fledged programming language.
JavaScript... Brendan Eich wanted to put Scheme scripting in the browser, but because Java was popular, he was told by management to make it look more like Java and also to call it JavaScript. Oh also he had like a two week deadline or something.
Yea, I dunno... good hard questions :)
I don't particularly care about php because I have basically zero experience with it.
To each their own I suppose.
Any meaningful milestones along the way, that you think are worth noting. Tasks or roles that indicate progress?
I'm not so sure about that (but I'm pretty green on bioinformatics). I mean, for one: https://xkcd.com/1605/. For two, if that was the case we wouldn't need projects like folding@home and such to tell us what the structures described by DNA actually look like. And for three, there is a massive amount of influence on brain development from elsewhere (both from within the fetal body and from the womb). It's a bit like having a compiler's source code but nothing to bootstrap it with...
Stuff like the comment you answered to is how the people pulling in the actual big bucks hope to get you to work for cheap.
What do you think the biggest shift for day to day programming was for you in your 57 years?
Congratulations on being in that company, and may it long continue.
Or perhaps I'd classify him as the somewhat more sycophantic "longest working genius" or "longest working cool guy". Heck, Knuth was uniquely awarded a master's degree for his bachelor's because his work was considered so outstanding, he's an organist and composer, and he's hilarious. I love this quote about him: "If you had an optimization function that was in some way a combination of warmth and depth, Don would be it."
A quote from him in an interview I found: "Indeed, as mentioned above, my life's work was to be a teacher."
https://www-cs-faculty.stanford.edu/~knuth/programs.html
But being a programmer and a computer scientist -are- two very different things. Simply in his daily activities over the last sixty years, Knuth has been writing tens of thousands of pages, doing a lot of math, diving deep into computer science topics. (That is not what I do in my employment as a programmer.) This guy has been sitting behind a keyboard and writing code. (That is what I do.)
But being a programmer and a computer scientist -are- two very different things. Simply in his daily activities over the last sixty years, Knuth has been writing tens of thousands of pages, doing a lot of math, diving deep into computer science topics. (That is not what I do in my employment as a programmer.) This guy has been sitting behind a keyboard and writing code. (That is what I do.)
There are probably many of us who will probably follow in your footsteps. Provided that Stack Overflow continues to exist, I have no plans to ever stop programming either.