... and I don't just mean things like 40 years ago I used punch cards, and today I use Python. Walk us through the more human side of your career. Things like how has the Internet changed your perception of things? What other big milestones were there over the years that caused a shift in the industry? More recently, how has AI changed programmer behavior? As a hired programmer, are you experiencing any backlash from people saying they can just use AI to write apps so they don't need you? Tell us your stories :)

rproffitt commented: You had punch cards? I had the joy of toggle switches on the IMSAI 8080. +17

Recommended Answers

All 17 Replies

I retired in 2008 and while I still keep my hand in programming, it's only for my own use. Programming has become so complex with web apps, neural nets, and machine learning that I would be absolutely lost in today's marketplace. I think the worst thing that has happened (and this started long before I retired) was the growing trend of releasing apps in beta. I underestand the need to get a product out ahead of the competition but that has only resulted in crappy software that only disappoints. I'M TALKING TO YOU, BLUETOOTH PROGRAMMERS!!!

We need apps that are easy to use, not apps that require memorizing a 200 page manual. Just trying to figure out how to use my new LG B5 TV is a chore. Getting a new toy used to be fun. Now it's juat frustrating.

I underestand the need to get a product out ahead of the competition but that has only resulted in crappy software that only disappoints.

I think it's only half about getting a product out ahead of the competition. Early adopters are a thing. They are the product's biggest supporters, biggest advocates, will scream the product from the rooftops, and will be better QA folks than could ever be hired because they're doing all the actual real world testing, not just for free, but in exchange for actually promoting the darn thing as well.

Programming has become so complex with web apps, neural nets, and machine learning that I would be absolutely lost in today's marketplace.

That leads me to a question that ChatGPT wants me to ask: Specifically (and I'm paraphrasing), what do veteran developers misunderstand about today's frameworks, tools, and culture?

I think that in order to understand what I misunderstand I'd have to understand. RE: Dunning-Kruger.

The one thing that changed and that worries me most, is that it all got fast paced, just like everything in progress.
From the first man to the first flying man, took from the early homo sapiens to the brothers Montgolfier. From the first flight of Montgolfier, to the brothers Wright taking off was significantly shorter.
From the first programming (putting the right cards in the right order in slots) to current languages ...
Even in the last 25 years.

When I just started, colleges were still teaching Java 2, and all was good. There was no need to buy a new book each year, after all, though improvements were done in patches, the huge differences would only come in the next version of the language.
They had time to properly test it, have people with decent knowledge of the material write books on the matter, have the book proof-read by other developers, have it published, set up tests for certification paths, ...
And it would still be another couple of years before a new major version would appear.

At this point, there is a new major release of Java each 6 months, so, if on the day of the release you start on a new textbook of the material, by the time you manage to publish it, you'll be about 5 major versions behind.

The times when your knowledge with a bit updating every couple of years was sufficient, is gone. For the moment, I 'm working on a legacy project. Even I considered before Java 8 to be way to much outdated, but here I was.
Then, we had to migrate it to Java 8, and tackle the problems as we encountered them. Of course, all they expected of us was "make sure it builds and runs on Java 8", re-writing the actual older code wasn't really in scope.
Then, we went to Java 17, then to Java 21. Same approach.

If, however, I go to a new project, I will be expected to be able to read and write proper Java 21 code (or 25, who knows these days?)
It'll be interesting to "learn up", but from an employers point of view, they'll want me to be able to "get in there" asap, while, obviously, for a 20 year old, catching up with it would be a lot easier.

Then came the new tools. AI to the rescue. We could now ask ChatGPT or Github's copilot to generate code for us, based on a simple description of what is expected.

To give an example, had never used the copilot tool, so at first, I asked it to:
"Generate a method that authenticates a user with username and password".

I was given something like this:

public boolean isAuthenticatedUser(String userIn, String passwordIn) {
  String username = "USER_NAME";
  String password = "PASS_WORD";
  return userIn.equals(username) && passwordIn.equals(password);
}

Obviously, this comes with some issues attached. What if one of the inputs is an uninstantiated value? So, I asked the tool to

"update the code so that it executes the equals methods on the String literals instead of on the variables"

and I ended up with this:

public boolean isAuthenticatedUser(String userIn, String passwordIn) {
  String username = "USER_NAME";
  String password = "PASS_WORD";
  return "USER_NAME".equals(userIn) && "PASS_WORD".equals(passwordIn);
}

OK, now I was hoping that it would go with:

username.equals(userIn)

but I did state "call it on String literals", so that 's on me. But why keep the non-used variables around?

So, do I fear that these tools will quite immediately "take my job"? Not really.
I do fear, however, that in the next generation of developers that 'll be hired, there 'll be a lot of "I'mma let ChatGPT code it for me" whizz kids.
Seeing as I write code for our national department of health's applications, and from time to time I still encounter code of which I think "which idiot ever thought it a good idea to put THIS in production", I somewhat hold my heart by the thought of the ChatGPT generation taking over the helm.

But who can blame them? They can't rely on textbooks anymore, they're out of date at best.

At the moment there's bit of an issue around here: from all the students whose intake tests were good enough to start their studies to become physicians or surgeons, there is reason to believe that quite a few of them have "solved" the test using ChatGPT, a couple of them actually got caught.
In ten years from now, if I go to the hospital in need of surgery, do I want my surgeon to be able to memorize some books about anatomy, or will I without protest settle for the guy who knows how to use ChatGPT?
It's a problem that is increasing, sure, the tools exist, but they should be used to 'lessen the workload'. You should still be able to correct any errors that are generated instead of just assuming everything that is generated is correct, and I doubt that 'll still be so.

Checking the results of ChatGPT or other AI tools before using them in a professional environment is going to be a future version of "don't get in the van of strangers, not even if they have candy".

It took a moment to realize I used toggle switches before paper tape and punch cards. The Imsai 8080 for example. When the the PDP-8 was disposed of I lucked into keeping this bit of history. Pun intended:
image_2025-08-27_141832588.png
Banana for scale.

It's also very heavy and would make a fine weapon.

You had punch cards?

No, I meant as an illustrative example. Like, don't say things like "40 years ago I used punch cards, and today I use Python." I didn't use punch cards then and I also don't use python now.

I heard about punch cards a bunch, including from some college professors and DaniWebbers, but they were just slightly before my time. According to Wikipedia, they were popular up through the mid-1980s, which is exactly when I started at a super young age programming on my Apple IIGS (1987ish).

It's also very heavy and would make a fine weapon.

What if he has a pointed stick?

My second job involved programming an Imsai 8080.

commented: That panel would break bones in a foot if I dropped on their foot. And here's to the mighty Imsai 8080! +17

Yes, definitely. Programming has changed a lot over the years. It has shifted from basic machine-level coding to high-level languages such as Power BI, Python, Java and many more that mainly focus on efficiency, collaboration, and scalability. In the past years programmers had limited tools and resources, But Today, modern development environments, cloud computing, and automation have changed how software is created and used, the era of AI now a days, make the programming so easy to understand, that every a full code can be written by AI

Another reason is the big shift in how people learn these programming languages. Traditional classrooms have been replaced by e-learning classrooms along with AI tutors and virtual instructors facility, and AI-driven learning platforms. These technologies offer interactive, hands-on experiences, personalized feedback, and flexible schedules. This makes programming education easier to access and better suited to individual learning needs.

yes, overall, programming has grown and changed the technical mindset, but it has also changed the interface how the people are going to learn it.

I find that dev environments have gone from one extreme to the other. It used to be that the only tool a developer had was a text editor, and while these improved dramatically over the years, other than improved search/replace and full screen WYSIWYG features, they offered no actual help or language specific features. Then we got language specific syntax highlighting (a great feature). Now we have incredibly complex IDEs like VsCode, Anaconda, Jupyter notebooks, etc. While I like some of the features of VsCode I find that it can be too intrusive. Every keystroke seems to pop up help, suggestions, and arcane symbols. It can be as difficult to learn the IDE as it is to learn the language. I like intellisense but I think it would be more effective (for me, anyway) and less intrusive if the help text appeared in a separate window. Personally, I'd like to work with two monitors where one contains mostly code and the other contains controls and help text.

Personally, I'd like to work with two monitors where one contains mostly code and the other contains controls and help text.

Naa. I have always used 2 monitors but one is for main focus (IDE, etc.) and then off to the side is my email client, chat clients, etc. Having code in one and code controls and help text on the other is like sitting in the first row of a movie theater and constantly having to bob my head back and forth.

commented: Not a tennis fan then? +16

Over the years, I’ve seen programming change a lot. In the beginning, it was all about low-level coding and doing everything from scratch, which was slow and complex. Now, with high-level languages, frameworks, and cloud tools, building apps is much faster and more accessible. For example, creating a marketplace app today is way easier thanks to ready-made APIs and libraries. Programming has gone from being super technical to something anyone with the right tools and mindset can dive into, and I’ve experienced that shift firsthand.

For those of us who have computer science degrees, I think there's good along with bad from making programming as accessible as it is. As I've mentioned lots of times in the forums before, I feel like there is a lot of really bad PHP code out there because PHP is so easily accessible that people without training and experience with Big O notation, etc. are putting libraries out there that "just work" and then people with even less programming experience are utilizing those libraries. But I digress. With the bad obviously comes a lot of good. Making something that was once only available to a few now available to everyone can never be too bad, right?

Wrong. It can be bad. Very bad.

Compare software design to building construction. In order to build a building of any significant size you need to get a permit. And you also need to get the building inspected at various stages to ensure that it meets accepted standards for structural integrity as well as electrical and plumbing safety. And even with these safeguards there are problems with corruption that result in catastrophe and loss of life. And even when standards are met there are still disasters. Think of the Hyatt Regency walkway collapse in Kansas City, Missouri in 1981. A design change from continuous steel rods to separate rods for each floor resulted in the collapse of the walkway resulting in 114 deaths and more than 200 injuries.

Now consider the possibilities when software, which has no formal standards, is deployed. And what would formal standards for software even look like? My group (Process Control) was responsible for the maintenance and enhancement of the software that ran our provincial electrical grid. This software controlled the generation, transmission, and distribution of our entire grid with interconnects to Saskatchewan, Ontario and the northern US. The potential for disaster was enormous.

And what about software used for medical instruments? One small error (pre-1970) occurred in a device used for delivering external beam radiation. If someone pressed any key on the keyboard controller without pressing the ENTER key the keyboard code would time out causing a massive increase in the delivered radiation. One patient received several thousand times the desired dose. Unfortunately this patient was secured to the table at the time and was unable to escape. The patient died shortly after. This story was much on my mind when I received 35 sessions of EBR on my neck in 2019.

commented: The fix for EBR was to pry off the Enter key. +17

That's not the fix. That's the problem, NOT pressing the enter key.

commented: My memory is that it was either that or the backspace key. +0

Media (paper tape, punch card, etc.), IDEs, and debuggers aside, the one thing that remains the same is that programming is not primarily about writing code; it's about providing solutions. In the same way that learning how to use a hammer, screwdriver, saw, router, etc. does not make you a carpenter, learning a computer language does not make you a programmer any more than learning English will make you a good writer. You have to learn all the other skills like good design, user interfaces, mathematics, and more that allow you to apply your programming skills to provide solutions to real world problems. And sometimes the best solution is no code.

commented: When all you have is a hammer, everything looks like a nail. +17
commented: Exactly so +0

This is really interesting to hear everyone's stories about programming at different times in history.

Last weekend my Dad and I visited Bletchley Park where they did a lot of the code breaking of encrypted German messages in the lead up and during World War 2. While the code breaking itself is most impressive, the thing that I found the most mind blowing was that they achieved it all with mechanics and electronics. It was circa 1935 and the computer as we know it had not been invented yet. It's a great place to visit and I'd highly recommend you do should you have the opportunity to.

commented: I recommend the book, Colossus: The Secrets of Bletchley Park - Jack Copeland +16
commented: I think I've watched every lengthy YouTube documentary I could find on Bletchley Park, Alan Turing, Gordon Welshman, and the enigma. Fascinating. +9
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.