Programmers are no longer needed!
Programmers are no longer needed!
Programmers are no longer needed!
The most consistent and highest paying jobs I've had are replacing or fixing legacy and garbage systems. I don't think the current gen llm's are anywhere close to being able to do those jobs, and is in fact causing those jobs to have more work the more insecure, inefficient trash they generate.
Fellow tech-trash-disposal-engineer here. I've made a killing on replacing corporate anti-patterns. My career features such hits and old-time classics like:
In all of these cases, there were always better answers that maybe just cost a little bit more. AI will absolutely cause some players to train-wreck their business, all to save a buck, and we'll all be there to help clean up. Count on it.
excel as an relational database
That reminds me of a story. I used to do IT consulting, years ago. One client was running their 5 person real estate office off a low quality, consumer grade, box store HP desktop repurposed as a server. All collaboration was through their U drive, plus every profile had their desktop folder redirected there.
The complaint was the classic "everything is slow", which turned out to be "opening my spreadsheet takes 10 minutes then it's slow". Yeah, because that poor little "server" had a single 100 Mb jack and the owner had a 1.5 GB excel spreadsheet project where he was trying to build a relational database and property valuation tool. Six fucking heavily cross referenced tabs, some with thousands of entries. He was so proud when I asked him to explain what was going on there. He fired me when I couldn't fix his issue without massive changes to either his excel abomination or hardware.
It depends on the methodology. If you're trying to do a direct port. You're probably approaching it wrong.
What matters to the business most is data, your business objects and business logic make the business money.
If you focus on those parts and port portions at a time, you can substantially lower your tech debt and improve developer experiences, by generating greenfield code which you can verify, that follows modern best practices for your organization.
One of the main reasons many users are complaining about quality of code edited my agents comes down to the current naive tooling. Most using sloppy find/replace techniques with regex and user tools. As AI tooling improves, we are seeing agents given more IDE-like tools with intimate knowledge of your codebase using things like code indexing and ASTs. Look into Serena, for example.
Describing what they want in plain, human language is impossible for stakeholders.
Even writing an RFC for a mildly complicated feature to mostly describe it takes so many words and communication with stakeholders that it can be a full time job. Imagine an entire app.
You want the answer to the ultimate question of life, the universe, and everything? Ok np
The canonical video which demonstrates that truth.
LLMs need to be trained to work with reptilian language. Problem solved.
You can add SQL in the 70s. It was created to be human readable so business people could write sql queries themselves without programmers.
Ironically, one of the universal things I've noticed in programmers (myself included) is that newbie coders always go through a phase of thinking "why am I writing SQL? I'll write a set of classes to write the SQL for me!" resulting in a massively overcomplicated mess that is a hundred times harder to use (and maintain) than a simple SQL statement would be. The most hilarious example of this I ever saw was when I took over a young colleague's code base and found two classes named "OR.cs" and "AND.cs". All they did was take a String as a parameter, append " OR " or " AND " to it, and return it as the output. Very forward-thinking, in case the meanings of "OR" and "AND" were ever to change in future versions of SQL.
Object Relational Mapping can be helpful when dealing with larger codebases/complex databases for simply creating a more programmatic way of interacting with your data.
I can't say it is always worth it, nor does it always make things simpler, but it can help.
I did that myself back in the day. Not overly complicated, but a SQL builder.
I think it's because SQL is sort-of awkward. For basic uses you can take a SQL query string and substitute some parameters in that string. But, that one query isn't going to cover all your use cases. So, then you have at least 2 queries which are fairly similar but not similar enough that it makes sense just to do string substitutions. Two strings that are fairly similar but distinct suggests that you should refactor it. But, maybe you only make a very simple query builder. Then you have 5 queries and your query builder doesn't quite cover the latest version, so you refactor it again.
But, instead of creating a whole query builder, it's often better to have a lot of SQL repetition in the codebase. It looks ugly, but it's probably much more maintainable.
What part of this is irony?
When growing up in the 70's "computer programmers" were assumed to be geniuses. Nowadays they are maybe one tier above fast food workers. What a world!
Nowadays they are maybe one tier above fast food workers.
:-/
Having worked both jobs, I could point to a few differences
Yeah fast food is a lot more stressful.
Every single job in my entire life I have made more money, and my workload has gotten easier. I am grateful everyday I escaped the trap. Very few do.
Food is essential, the new shiny way to gobble more RAM to display a blue mushroom in a button isn't.
That environment was wild though. At the time, you basically needed to be an electrical engineer and/or a licensed HAM operator, just to have your head wrapped around how it all worked. Familiarity with the very electronics of the thing, even modifying the hardware directly when needed, was crucial to operating that old tech.
Well to be fair if you're a programmer in the 70s you might as well be a genius.
Explicit programmers are needed because the general public has failed to learn programming. Hiding the complexity behind nice interfaces makes it actually more difficult to understand programming.
This comes all from programmers using programs to abstract programming away.
What if the 2030s change the approach and use AI to teach everybody how to program?
Hiding the complexity behind nice interfaces makes it actually more difficult to understand programming.
This is a very important point, that most of my colleagues with OOP background seem to miss. They build a bunch of abstractions and then say it's easy, because we have one liner in calling code, pretending that the rest of the code doesn't exist. Oh yes, it certainly exists! And needs to be maintained, too.
the general public has failed to learn programming
That's like saying that the general public has failed to learn surgery, or the general public has failed to learn chemical engineering.
There are certain things that it just doesn't make sense for the general public to ever be expected to learn.
What if the 2030s change the approach and use AI to teach everybody how to program?
What does AI (already known to be an unreliable bullshitting machine) provide to students that existing tutorials, videos and teachers do not already?
Also the companies investing in AI are not trying to teach their workers to be better, they're trying to make more profit by replacing workers or artificially increasing their outputs. Teaching people to program is not what they care about
I find this to be a real problem with visual shaders. I know how certain mathematical formulas affect an input, but instead of just pressing the Enter key and writing it down, I now have to move blocks around, and oh no, they were nicely logically aligned, now one block is covering another block, oh noo, what a mess and the auto sort thing messes up the logical sorting completly… well too bad.
And I find that most solutions on the internet utilizing the visual editor tend to forget that previous outputs can be reused. Getting normals from already generated noise without resampling somehow becomes arcane knowledge.
Edit: words.
Least it’s an improvement over no/low code. You can dig in and unfuck some ai code easily enough but god help you if your no code platform has a bug that only their support team can fix. Not to mention the vendor lock in and licensing costs that come with it.
I’m still waiting to be replaced by robots and computers.
My company recently acquired another firm that tried to outsource the entire IT department and proceeded to shit itself to death.
Go ahead cowards. Replace me with a computer. I will become more powerful than you could ever imagine.
Feeling that. My company is off shoring and out sourcing a lot of stuff now. It’s a nightmare. But profits are up. So hey, who cares if the software is held together with hopes and dreams. And our hosted services admins don’t have a clue.
This is why I half ass things with AI. Mgmt clearly doesn’t care.
Doesn’t matter if they can replace coders. If CEOs think it can, it will.
And now, it’s good enough to look like it works so the CEO can just push the problem down the road and get an instant stock inflation
And then it'll all go to shit and proper programmers will be able to charge bank to sort it out.
I don't want so spend my career un-fucking vibe code.
I want to create something fun and nice. If I wanted to clean other people's mess, I would be a janitor.
I hope it works like that.
It never actually seems to work out that way though. Sure, for Y2K there was a short period where there were decent contracts fixing that bug in various codebases, but it wasn't something that lasted very long.
Managers and owners would much rather pass off a terrible PoS and have their users deal with it, or somehow get the government to bail them out, or hire a bunch of Uyghur programmers from a Chinese labour camp, or figure out some other way to avoid having to pay programmers / software engineers what they're actually worth.
They’ll end up being exploited
LLMs often fail at the simplest tasks. Just this week I had it fail multiple times where the solution ended up being incredibly simple and yet it couldn’t figure it out. LLMs also seem to „think“ any problem can be solved with more code, thereby making the project much harder to maintain.
LLMs won’t replace programmers anytime soon but I can see sketchy companies taking programming projects by scamming their clients through selling them work generated by LLMs. I‘ve heard multiple accounts of this already happening and similar things happened with no code solutions before.
Today I removed some functions and moved some code to separate services and being the lazy guy I am, I told it to update the tests so they no longer fail. The idiot pretty much undid my changes and updated the code to something very much resembling the original version which I was refactoring. And the fucker did it twice, even with explicit instructions to not do it.
I have heard of agents deleting tests or rewriting them to be useless like 'assert(true)'.
Your anecdote is not helpful without seeing the inputs, prompts and outputs. What you're describing sounds like not using the correct model, providing good context or tools with a reasoning model that can intelligently populate context for you.
My own anecdotes:
In two years we have gone from copy/pasting 50-100 line patches out of ChatGPT, to having agent enabled IDEs help me greenfield full stack projects, or maintain existing ones.
Our product delivery has been accelerated while delivering the same quality standards verified by our internal best practices we've our codified with determistic checks in CI pipelines.
The power come from planning correctly. We're in the realm of context engineering now, and learning to leverage the right models with the right tools in the right workflow.
Most novice users have the misconception that you can tell it to "bake a cake" and get the cake ypu had in your mind. The reality is that baking a cake can be broken down into a recipe with steps that can be validated. You as the human-in-the-loop can guide it to bake your vision, or design your agent in such a way that it can infer more information about the cake you desire.
I don't place a power drill on the table and say "build a shelf," expecting it to happen, but marketing of AI has people believing they can.
Instead, you give an intern a power drill with a step-by-step plan with all the components and on-the-job training available on demand.
If you're already good at the SDLC, you are rewarded. Some programmers aren't good a project management, and will find this transition difficult.
You won't lose your job to AI, but you will lose your job to the human using AI correctly. This isn't speculation either, we're also seeing workforce reduction supplemented by Senior Developers leveraging AI.
After shovels were invented, we decided to dig more holes.
After hammers were invented, we needed to drive more nails.
Now that vibe coding has been invented, we are going to write more software.
No shit
And after each of these, there’s been _more _ demand for developers.
Well, have you seen what game engines have done to us?
When tools become more accessible, it mostly results in more garbage.
I'm guessing 4 out of 5 of your favorite games have been made with either unity or unreal. What an absolutely shit take.
The fact that they have favorite games using these engines has absolutely nothing to do with there being massive amounts of garbage games. The shit take is yours.
You're guess is wrong. :P And anyways, I didn't say all games using an easy to use game engine are shit.
If you use an easy game engine (idk if unreal would even fit this, btw), it is easier to produce something usable at all. Meanwhile, the effort needed to make the game good (i.e. game design) stays the same. The result is that games reach a state of being publishable with a lower amount of effort spent in development.
I barely use AI for work but I gotta say that it's the first time I can get some very specific tasks done faster.
I currently make it write code generators, I fix the up and after that I have something better at making boilerplate than these LLMs. Today I had to throw up a bunch of CRUD for a small webapp and it saved me around 1-2 hours.
Yeah forms and very basic HTML its good. Anything complex and you have to take over. Great at saving time, like an intern. But a bit worse in that the intern will typically get better and the ai hasn't really.
That's a great methodology for a new adopter.
Curious if you read about it, or did it out of mistrust for the AI?
I mistrust because it's inaccurate.
help me. I am stuck working in SDET and my job makes me do a cert every 6 months that's "no code" and I need to transition to writing code.
I've been SDET since 2013, in c# and java. I am so fucking sick of selenium and getting manual testing dumped on my lap. I led a test team for a fortune 500 company as a contractor for a project. I can also program in the useless salesforce stack (apex, LWC).
I am the sole breadwinner for my household. I have no fucking idea what to do.
If you're not already messing with mcp tools that do browser orchestration, you might want to investigate that.
For example, if you setup puppeteer, you can have a natural conversation about the website you're working on, and the agent can orchestrate your browser for you. The implication is that the agent can get into a feedback loop on its own to verify the feature you're asking it to build.
I don't want to make any assumptions about additional tooling, but this is a great one in this space https://www.agentql.com/
Early 80s: High level structured languages (Hello COBOL!)
Late 80s: 4th generation languages
At least before that people just assumed everybody that interacted with a computer was a programmer, so managers didn't have a compulsion when hearing the name and decided to fire all programmers.
If ChatGPT's browser is just another chromium clone and they couldn't get their own AI to write a browser, I doubt other customers of theirs will get their shitbot to write code for them either.