| There has been a shift in how we discuss this question. For a long time, the answer was, "No jobs are at risk, AI can't compete in any scenarios. At best, it's a tool." Now the answer is, "Only a few jobs are at risk, AI can only compete in a small range of tasks." It's possible we're at the beginning of a hockey stick graph. So what would it look like for AI to make the leap to mid level developer? It would have to understand: 1.) The codebase 2.) The technical requirements (amount of traffic served, latency target) 3.) The parameters (must have code coverage, this team doesn't integration test, must provide a QA plan, all new infrastructure must be in Terraform) 4.) The end goal of some task (e.g. integrate with snail mail provider to send a customer snail mail on checkout attempt if it was denied for credit reasons) It would then have to make a design based as much as possible on the existing code style and library choices and follow it. This is all probably possible now, although perhaps not for a general AI or LLM. But someone could build a program leveraging an LLM to provide a decent stab at this for a given language ecosystem. The hard parts: Point 2 requires an understanding of performance which is a quantifiable thing, and LLMs up until now have been bad at making math-based inferences. Point 3 requires the bot to either provide opinions for you (inflexible) or to be very configurable for your team's needs (takes longer to develop). Point 4 requires a _current_ understanding of libraries, or the ability to search for them and make decisions as to the best ones for the job. ----- What about extending the above for a senior role? Now the bot has to understand business context, technical debt (does technical debt even exist in a world where bots are doing the programming?), and other "situational factors" and synthesize them into a plan of action, then kick off as many "mid level bot" processes as necessary to execute the plan of action. The hard parts: Current LLMs are pretty uninspired when suggesting ideas. Business context + feature decisions often involve math, which again LLMs aren't great at. |
What exceptions should I be catching off this database connection, not just listing them but knowing even the concept that I should consider those error conditions? What could possibly go wrong with simple string concatenation when putting together a database query? Is there anything wrong with trusting the user to enter a quantity at a self checkout stand, and is there any input bounds checking to be done? (Like not permitting negative number quantities of produce, or not permitting the user to enter thirty different items in a row claiming them all to be cheap Idaho baking potatoes)
"Plz write me a hello_world.py" is pretty easy for an AI, but actually writing usable code seems quite challenging.
I am so old that I predate the internet going back to 1981 and I remember coding without google and stack overflow and similar resources; life was different back then and if you couldn't google how to invert a binary tree either you figured it out yourself (like a bad interview) or you researched paper textbooks or you didn't do it. Likewise AI will be a similar step, nobody will ever again type in by hand something for example like connect to a MSSQL DB in C#. But much as being able to google the algo to invert a binary tree didn't put all programmers out of work, it seems likely that not having to hand type simple stuff will put many people out of work.
I see the AI situation as very similar to the claim that photocopiers and NOLO publications will put all the lawyers out of business. Sure, some very small businessmen will get away with hand filing their own homemade incorporation papers without lawyers, and there will be a small amount of wage pressure, but overall they're not going to get wiped out.