When I was young, I loved programming! I loved the feeling of accomplishment, I loved problem solving, I loved sharing what I had created with those around me to both entertain and help them.
A particularly wise adult (circa 1996) took me aside and said, “You know, you’re lucky enjoy Programming, because you won’t be able to make a living on it in the future. It’s a good idea to do this for love more than money.”
“Coding is over, with Object Oriented Programming a person who is Smarter than any of us expected to be Will develop the library only Once And we will all continue to use it in future also. Once a problem is solved, there is no need to solve it again.
“In 5 years there is going to be a library of objects, like books on a bookshelf, and every software problem will be solved by business people just piecing together like Lego the object libraries they need. They won’t need you at all.”
I thought about this advice, and how software engineering would end up when I entered school. I realized that I haven’t even thought about my education yet. I was in middle school. However, programming wasn’t it, I knew it.
Here I am almost 30 years later and despite everything the software continues to pay my bills. Open source exists, there are libraries I can use all the time to solve things together. New problems not covered by the Garden Path arise all the time. Clicking Lego together remains a difficult task. Every time we fix it at one level of abstraction we work one level up and the world keeps spinning.
Whenever I’m threatened with a good time and someone says “this is for you” it happens that my job becomes more annoying. The sweet release of extinction hasn’t been found yet.
Around 1993 the “multimedia era” arrived. Multimedia was the topic of discussion. must have software multimedia readyeducation was to teach children to be prepared for multimedia eraIf your device, no matter how useless, did not have multimedia features, you would be left behind, You Needed A video guide. You Needed To be on CD-ROM. This is a whole new normal.
“Multimedia” simply means “sound and video”. We had a high concept term for a very direct, low concept concept.
And the multimedia boom ended. It became boring. No one is impressed by video on a website and no one thinks less of a website that doesn’t use sound and video if it isn’t appropriate. you pop a Tags in your HTML and you’re done. The wonderful thing became mundane. The dream of “multimedia” became common and everyone took it for granted. I don’t know of any industry that has collapsed dramatically because of multimedia. No one actually reskilled. Video editing is still a very rare thing, and we don’t typically have sound engineers working on the audio UX of software products.
In 2000 a co-worker took me aside and showed me his brand new copy of the IntelliJ IDE. “It’s over for us,” he said, “this thing makes it seem like there’s no dire need for programmers, like one person can operate this device and they can fire the rest of us.”
I was very surprised, it got some amazing autocomplete powers in the IDE. Without opening a separate JavaDocs window on the side, and without having to manually open the page for the class it needed documentation for, it was just there inline. This gave them feedback on a number of issues before the compile cycle that you don’t usually see before a build. This was a good preventative function and seemed to have the potential to keep a developer in the flow for a long time.
And then he showed me the cool feature “that will put us all out of a job:” the refactoring tool.
He then started showing me tools for easily moving code to new files, renaming classes in the codebase, all kinds of manual things that could have taken a person days to do. It was magical.
After some thought I said, “That’s amazing, but does this even write new logic or does it just move the code around?”
He was not amused by this, and insisted that these powerful devices were our destruction. I have distinguished between “useful” code and “filler” code, but obviously what is valued is not the quality and nature of the code but its quantity and presence. This device certainly provided both volume and presence to the small human-written nuggets.
During my first job in high school I was working in an office in a suburban office park with programmers from several different local agencies. The person I spoke to was a contractor: these people were highly respected, somewhat feared experts. The individual in question was working on a multi-year migration of some county health computer systems from MUMPS to a more modern relational system. He showed me the main family of problems he was solving to show how clever he was at solving them; They were largely rote problems of transferring table schema and records in a uniform manner. But there were too many of them, and he was working hard to meet his deadline!
I thought about it, and set out to help her, gaining her approval and recognition. To show what I can do. I wrote a Python script that could solve 85% of the case (it was mostly string manipulation) and even put a small TkInter dialog around it so he could select the files he wanted to migrate visually. It went great, but he looked a little intimidated when I showed him this:
“You didn’t show it to anyone else?”
“No.”
“Oh thank God.”
I guess he used my tool because he had a lot of free time to mess around with the remaining six months of his contract. I don’t think he told anyone else what he had, but I’m guessing he had a lot of MUMPS migration contracts when he could have completed them in a matter of days.
At the same job, I was paid to maintain a series of government agency web sites. One of my main tasks was to keep the list of mental health providers on the HTML page up to date and upload it to the server.
The process was quite mechanical: take the Excel sheet from the inbox, open in Excel, copy the Excel table to the HTML table.
Within a month I had a completely automated workflow:
- I used Windows Automation to check my Outlook inbox
- When I received an email from the person who sent me Excel, he would download it
- Open Excel file in Excel using Windows Automation
- Export it from Excel to CSV (automation did this, I just watched the Excel window with a ghost remote control that opened and closed on its own)
- Run a Python script that will inject that CSV data into the file as an HTML table
- Run another Python script that will connect to the FTP server and upload the file. It would randomly stop and issue typo errors, so it would appear as if the FTP session was being operated by a human at a keyboard, so no one thought anything of my plot.
I lived in fear of being found out, and didn’t tell anyone that I was no longer doing the work I was getting paid for.
About 9 months later the department hired a full-time web developer at $45k/year to bring their website in-house. My outsourced services cost me about $25/hour, probably skating under $2000/year. It clearly wasn’t about money.
And what I feared did not happen. When I no longer had enough work to support myself, my managers hired me for something else.
There is always more work.
In the last years of my graduate education and my first few years out of college I worked on projects that did some type of natural language processing. For these we needed training data, and the more the better.
However, we had responsibilities. We had to make sure that the data we had came with some kind of license or implicit permission. You didn’t just steal a pile of PDFs or scrape someone’s web site and put it into your training set. There were ethical hurdles and legal consequences. You worked your way up the board while training your AI model.
Many times we used to train models on Wikipedia dump. they were always comparatively Wonderful When we trained on good, big data like that the results showed. Solid. interesting. Even a simple Markov chain on Wikipedia looked smart.
When we wrote web crawlers, we wrote them to honor robots.txtWe placed them on the local domain, user-agent The crawler’s fields include our email address, and if any disgruntled webmaster doesn’t like the way we crawl them, we’ll fix it. Aggressive crawling all at once is taxing on servers and spam logs, so we break it down into hours or days. if their robots.txt was missing or garbled and they still didn’t want us there, we would block the site from crawling.
We made sure that we had explicit permission to collect data for our training corporation.
The dot com boom was a crazy time. The Internet has just become mainstream and a new gold rush has begun. The money was just there for the taking, so many VC funded business plans were just “Traditional business X, but on the Internet!” and money flowingHow did it flow away?
However, most of these companies didn’t really have any solid business model other than buying some servers and a domain name and “we’ll put this thing on the Internet.”
Green shoots emerged from this accident: Web 2.0, which used the Web natively, organically, giving a good web-native experience. Ultimately the dream of the Internet, the promise of publicity, came true when a lot of people learned a lot of unnecessary, really painful lessons. They spent less and put their things on the Internet because they made sense on the current Internet, not because the Internet was the next big thing.
The dream of widespread, ubiquitous Internet came true and there were very few deaths. Some occupation ended, but on the time scale it was more glacial than volcanic. When ubiquitous online services became common it simply began to seem mundane. It didn’t feel forced. This was in sharp contrast to the dot com boom five years later: The Internet is here and we are here to build a solid business within it in contrast with We must put this solid business on the Internet somehow, because it’s coming,
This is actually a set of passive-aggressive jabs at the constant assault on our senses by the LLM propaganda lobby.
<a href