I’m a lot older.
But seriously, the biggest skill back then was invention, creativity, imagination, whatever you would like to call it; unlike today there was no Google, no Stackoverflow, no open source at your fingertips, rarely even someone to email to ask for help. You were basically programming on an island, and anything you needed to figure out or solve, you had to do it yourself. Sometimes you might go to a library and search books and journals, or maybe you could ask someone at a user group or conference, or if you were lucky someone you knew was a programmer. Generally though no matter what you wanted to do it was on your shoulders to come up with it. Even if someone else in the world was solving some similar problem, you probably had no way to know about it.
What you need today is searching, understanding and evaluation. You have access to the world’s smartest (and sometimes dumbest) people. The chances that something you need hasn’t been done elsewhere is rare and the real skill is in finding it, relating it to what you need, deciding if it is useful or adaptable, and if it is of a decent quality.
Having straddled both of these worlds, I both miss the early days of having to imagine solutions with little to go on, and yet appreciate the ease at which one can find things today. It is hard to accurately describe just how much we had to figure things out for ourselves; yet we didn’t know any alternative so it wasn’t a burden. Today of course the world of the 80’s seems like medieval programming. We didn’t have much of what there is today; yet somehow we still solved problems, shipped complex apps (in boxes on floppies!) and worried about quality and competition and what to add next.
Unlike back then when we had little to work with, today we have an embarrassment of riches available for free. The problem is now there is too much information, much of it is of variable quality, often out of date, wrong, or poorly described. First you have to figure out what to ask for, often your Google searches are very indirect as describing your problem in a way that includes the right words is often hit or miss. Then you get 500,000 results; now you have to filter through what you find, trying to answer your question or find an algorithm or idea, and then the fun begins of evaluation. Is this what I need? Is this up to date? Does this make any sense to me, can I understand it? Is it possible to integrate into what I already have? Is this library trustworthy, will it be supported?
That is a very different skill set than the 80’s programmer—working with little information, having to imagine how to fix it or invent it or solve it in some way. Back then of course there were a lot fewer programmers (guessing maybe 1% or 0.1% of today) and unless you were good at figuring things out for yourself, you really couldn’t be a programmer outside of some very large employer. Today it seems much more likely that someone without much imagination can still become a decent contributor, you can learn online, you can build things on top of open source, you can read what other people think and follow along. It’s not that programmers back then were smarter than today, just that it was the skills needed were different.
I have to admit I think programming was actually more fun back then. Without all the modern trappings of working as a programmer that suck major time out of your day we were able to spend a majority of every day actually programming, thinking about solutions, trying things and finding ways to come up with clever (not as a pejorative) ways to do things. No story points, user stories, scrums, grooming, endless phone and video meetings, thousands of emails and slack messages to answer and of course reading stuff online like HackerNews. Going into work and knowing virtually everything I would be doing that day would be a fun adventure in programming is something I no longer see. Some days at work I get almost no coding done due to all the other stuff (despite coding being what I am supposed to do given that we have way too few people) and I do really miss that “primitive” time.
These days you spend so much time doing what seems like non-productive time (sometimes it’s not programming but still useful) and often you solve problems by looking up solutions and adapting them which seems like cheating sometimes. Of course this is a benefit, and the open source world of today has allowed us to build on the shoulders of giants, and I doubt there is anyone among us who doesn’t like a good Stackoverflow solution. The world of today has needs we never even knew about back then: servers, networking, cloud, security, web, mobile and fancy UI/UX. Today is far more complicated in what is expected, yet there is so much to build upon. Back then everything was new and often you might be the only person in the world working on something (or at least that you knew of), which still happens today but not for most of us. Even then the new stuff of today is built based on what others have done before because you can know about it, read about it and learn from it.
It’s strange to think how few choice we had back then. We wrote our apps in C on MacOS. The only vaguely open source thing we had in nearly 9 years of Trapeze, Persuasion and Deltagraph was a hacked up lex and yacc we used to build the Trapeze formula parser, and I used a commercial UI library called MacExpress in Trapeze. Deltagraph was a massive application 100% written by us. Even the 3D engine and the Postscript driver were built just from the basics (I figured out the Postscript by playing around with Illustrator since its file format was Postscript—an early precursor to PDF). Today building an app without some open source or commercial framework would be pretty rare.
It’s not to say people were better programmers back then, just with different skills, targeting different types of programs, and having absolutely no idea that we were missing anything. I always wonder how people program in North Korea today—do they know how much they are unable to access in the outside world? That would be frustrating, to know there are answers available, but you can’t get there!
Back then I could have never imagined the world of today, where the world is searchable and available and sometimes even usable. It’s weird to think I have lived in both eras and somehow managed to adjust the skills necessary as the world changed, often without realizing it was changing. Today is not back then, it’s today, and tomorrow will not be like today either. Having a long view it’s easy for me to say that we have no idea what the future will be like, perhaps one day there will no longer be programmers like today and people will look back and wonder how we got anything done at all.
There are many days when I wish all I had to do was imagine things that haven’t been done before, figure out how to solve an impossible problem or forge ahead into an unknown future. But finding that kind of job today is a skill I probably don’t have. Maybe I can search for something in Google…