There's a lot of news regarding copilot and openAI and what have you. I'm not familiar with AI so I cannot really tell hype from substance here.
Should I worry? Do you think that some form of AI will be able to do the job of an average programmer any time soon? If yes what is your estimate? And how would you try to AI-proof your career?
A very large part of what remains is the bit which cannot be automated: modelling real world (business) process in terms of the systems of automation which are available.
Programming is a modelling activity which is about phrasing sequences of available actions to represent a process. If AI systems generate code, then programming becomes the sequencing of AI prompts -- which are here then just a more natural language like version of programming.
Even in that world a significant amount of technical skill is required to ensure commands are sequenced correctly, the code is correct, etc.
For "AI" to replace this process it would not only have to be AGI, but also AGI fully embeded in the human social world of the processes were are modelling.
My observation was that a lot of my colleagues had no appetite for reasoning about processes, much less thinking through various edge cases to make sure the work was done correctly and covered enough cases to be a useful workflow with low incidents.
Colour me skeptical but I'm not convinced we will see an AGI that can solve business problems without killing the proverbial cat without lots of baby sitting.
So is programming the business of copy pasting from stackoverflow or is it the business of solving problems?
Both, but what you’ve missed is you’re still putting some devs out of work. And solving business problems is absolutely on the burner for AI right now so give them a few years and it will solve that too.
This is not programming. This is not what I had in mind when I signed up for Computer Science school.
> modelling real world (business) process in terms of the systems of automation which are available.
In other words, programming by analogy.
But if you mean algorithm design, that isn't programming. Algorithms arent programs, and the "operations" that they "sequence" are abstract. CSCi alg. design is more like geometry.
Programming is an empirical discipline; it uses the "geometry" of csci to build applications.
Senior devs will be able (they already are) to generate code, at first boilerplate and gradually more complex code, and effectively work as planners and passive reviewers, in a similar way to how some companies just hire legions of juniors with some architects/seniors guiding and reviewing their work.
The problem with that flow, I think, is that it completely disrupts the junior to senior pipeline. Senior roles might be valued even more than today, but reaching that stage or simply entering the market might become much more difficult.
I feel my career is pretty safe, but I’m not sure about someone joining the industry 5 years from now.
That could put junior developers out of a job just like glass terminals put many data entry and server room operators out of jobs.
My guess is that we’ll eventually see some kind of “higher degree bootcamps” that accept people with junior baseline skills and take them to the senior level, since learning on the job might become less feasible.
Ask someone who isn't a software engineer to guide you in developing a simple program. You do all the actual coding, they just tell you what they want to happen. You will find that most people are unable to describe even high-level actions in the form of a coherent, procedural sequence.
Even the best code-generating AI won't solve this problem, since it cannot generate useful code if the operator cannot articulate what they actually need.
You need to have highly developed critical thinking skills in order to be able to formulate appropriate solutions to problems. What a developer does isn't so different from what an entrepreneur does; they spend most of their time explaining their vision and goals; the difference is that the developer's vision and goals are much more granular and detailed.
For the same reason why companies pay $2000 per day for an experienced consultant when an employee could theoretically build the same stuff at minimum wage. Sometimes, mistakes are expensive. And then you need people who can reason about why they are doing what they are doing. AI can maybe churn out CRUD better than other generators, but when you have any significant amount of money depending on the software working, nobody is going to use ChatGPT without a human code review.
But ChatGPT code is typically overly lengthy and complicated, just like what a beginner would produce. And that makes for expensive and slow code reviews. That's why in the end it's cheaper overall to skip all that and just hire a professional.
But in my experience, a small and highly skilled team already outcompetes these armies right now.
Working as an "IT consultant" after a 2 week bootstrap course has always been unsustainable. We will likely get rid of 90% of the current "software engineers" without any meaningful reduction in productivity.
Deleted Comment
Yes.
> If yes what is your estimate?
5 to 10 years will see a noticeable decrease in the number of programming jobs as we know them today.
> And how would you try to AI-proof your career
Historically tech changes end up leaving a small rump of niche based practitioners, e.g. Blacksmiths servicing riding stables and racing yards, while the majority either exit the industry or take up the skillsets for the new technology. To future proof against AI, it's either be about finding the niche in a shrinking market or changing skillsets.
In terms of those skillsets.
Without Artifical General Intelligence there is going to be a need for someone to translate human requirements into something that the "machine" - however sophisticated - understands _and_ verify the results afterwards. That sounds very much like some form of Behaviour Driven Development.
As to niches; there are a lot of complex, ill-defined but essential Cobol, Perl, PHP and Python systems floating around. Verifying a new translations is going to be expensive. QED; specialists keeping those existing systems ticking along is likely to be a thing long enough to make a career from.
Just as vertical integration in the auto industry killed off the auto startup ecosystem, vertical integration in the tech industry will kill off tech startups. This isnt because there won't be demand for innovative new tech or that startups won't be able to innovate, but because control of core platforms will allow the bigger players more leeway to crush and swallow smaller companies as well as to siphon their profit margins.
Think what aws is doing to elastic on a large scale.
Once the tech startup ecosystem dies (which could be soon; high interest rates will suck capital away from startups), the behemoths will probably stop innovating and slash headcounts.
Once that happens, I'm pretty sure that the stewards of capital and captains of industry will scapegoat AI and the Economist and Time magazine and the like will dutifully believe them and so will most of the people who read them.
Not too different from interpreting lighthouse scores.
It can make anyone with the means to access it a bad coder but the value of a professional has always been in picking the best solution from the possible ones.
When you actually decide the best solution you list pros and cons, weigh risk and cost, etc. These are all easily automated through least cost optimization. Not even using AI.
How good the results are, depends on how good you are at constructing the queries. It's a bit like using google - some people have only the most basic knowledge, while others can find pretty much anything, because they're really good at writing queries.
Now, imagine how it's going to be 10-15-20 years from now? The future models will probably cull a chunk of devs., while the good devs will be even more efficient.
But who knows, maybe this will actually help some of the mediocre programmers to focus their energy on other things? Like taking on other roles? Take me for example - I'm no rock-star programmer. I see programming as a means to an end, it's just a tool. I would much prefer to focus on the actual business logic and features of a product, maybe even long-time strategy. If most of the tedious coding was removed, that would make me happy.