3

I am a recent computer science graduate turned junior full stack engineer working his first year in Software Development. I am liking my job currently and do not plan to leave but I have been hearing some concerning things about job security in my area due to the progress of AI and automation through things like ChatGPT.

Many have said that programmers, especially those in junior positions will soon have their jobs either replaced by automation or automation would make software development a much more difficult field to grow in for juniors.

With that being said while I am striving to become a better developer and learn what I can, I’m looking for different careers/trades that use technical , analytical and/or creative skills and would offer more job security from AI that would allow me to pay the bills and give me a bit of time to work on passion projects. Does anyone have any suggestions?

8
  • 10
    If it happens at all, it will NOT be soon, at least not for anything above "code monkey" level programming. The advice I'd give you right now is "Relax."
    – keshlam
    Jan 23, 2023 at 0:59
  • I hope you are right. again still trying to learn as much as I can, and I love my job, just trying to be smart and prepare for the future.
    – Ventus
    Jan 23, 2023 at 1:57
  • 5
    Programmers have spent literally decades trying to write software to write software, we will likely continue to spend decades on that problem, we are not actually that close to developing true AI. ChatGPT appears to be even less advanced then the AI Google fired the engineer who thought it was alive and that AI was dumb as a bag of bricks. We have a long way to go until an AI can make educated decisions instead of what currently exists today.
    – Donald
    Jan 23, 2023 at 2:17
  • Of the many who have said... How many of them have actually had the expertise to justify their opinion?
    – keshlam
    Jan 23, 2023 at 4:10
  • @keshlam that's a fair assessment, but regardless I'm just trying to cover my bases, maybe I am worrying over nothing, I hope I am, but I'd feel better if I at least had a backup plan to look into. I appreciate everyone's input, but no one so far has given any suggestions concerning trades or careers...
    – Ventus
    Jan 23, 2023 at 5:03

10 Answers 10

31

Many have said that programmers, especially those in junior positions will soon have their jobs either replaced by automation or automation would make software development a much more difficult field to grow in for juniors.

Well, you already met the people who were never actually good developers and probably never will be.

Being a software developer is really not about making the computer do what you want. That is the baseline. If you cannot do that, you should quit the profession.

I'll compare it to a cook. Peeling potatoes is not what makes good cooks. It is the groundwork. Yes, someone has to do it. And there are machines who peel thousands of potatoes an hour. But peeling potatoes is not enough to be a cook. Even cooking a great potato dish is not enough to make you a commercially successful cook.

You know what does? Asking the customer what they want, understanding their wish and then fulfilling their wish. You could be the fastest peeler of potatoes, the greatest cook of all time, but if your customer says "But I told you, I wanted spaghetti!", it's all for nothing.

This is a very common problem in our industry. In fact, this problem is the only reason there is an industry in western countries. People in India for example can program just as good as we can. But if the communication what is needed fails, the product is crap, regardless of software development skills. And it fails for a million different reasons, most of the time because "the customer is king" is very service oriented, but gets you very bad results. Sometimes, the customer needs to be told that their order is crap and they need to change it to get a good product. That is what inhouse full-time employees protected by good labor laws have the opportunity to do and that is why they shine. Communication. Not typing speed or lines of code per hour. Communication.

So unless the AI becomes sentient in a way that lets it say "no boss, I don't think we should do it that way, let me think about it and present you a better solution tomorrow", it is no match for real software developers.

It can be dangerous for people that don't have above sentence in their skillset though. But they are bad software developers anyway.

13

I am old, old enough to remember when 4GLs were going to make programmers redundant. All that happens is the boring boilerplate stuff gets automated you you end up writing the interest complicated stuff, the stuff that needs more thinking, more designing.

4
  • 2
    4GLs! Blast from the past there...
    – AakashM
    Jan 26, 2023 at 11:08
  • 4
    Remember when BASIC came out and promised to put career programmers out of work because everyone could now write programs themselves?
    – Philipp
    Jan 26, 2023 at 13:40
  • 1
    And "The Last One" from 1981. So called because it was the last program anyone would have to buy. Jan 26, 2023 at 14:49
  • @Philipp no I was only 10 when I learnt Basic at home.
    – WendyG
    Jan 30, 2023 at 14:30
5

You mentioned in a comment that you're looking to "cover your bases" in case AI renders your skillset/job redundant. The simple answer then is to begin learning about AI and becoming knowledgeable in that field of SE. If the hypothetical that AI will replace junior software engineers comes true, then there will be high demand for software engineers who can understand, improve, and better utilize AI tools. If AI is indeed only ever a tool, then at least you have skills to build your resume out with. The last part of your questions mentions technical, analytical or creative skills (that's pretty much all skills, no?), as well as job security and time for passion projects. It seems to me as though that is a different question, and one that requires some light soul-searching on your end.

3

Don't worry about being replaced by AI. Worry about being replaced by the youngsters who grew up with stuff that used to be advanced skills (to the point where some companies are wondering if they can start hiring folks who don't have formal degrees) and/or the folks overseas whose skills are improving and who so far are willing to work for less pay. Those are likely to compete with you directly long before AI does, and the way you counter that threat is to continue learning and develop skills those folks haven't had time to acquire. In this industry, if you aren't continuously learning you fall behind. Luckily most of us are in this field because we like to learn.

2

The Irony of this question being on Stack Exchange, when almost all the scripts/code I've ever written have had at least one section/function that is wholesale copied from one of the myriad of SE sites.

If you replace the word AI with the 'Stack Exchange' - you'll see that having access to something that can do part of your job quicker and better than you, doesn't mean you'll be without a Job.

1
  • Fair, but even with that I can only imagine how powerful this stuff might become. Just trying to look ahead and make sure I'm prepared.
    – Ventus
    Jan 23, 2023 at 1:58
2

Don't worry about getting replaced by an AI. Worry about getting replaced by someone who knows how to use AI.

AI is a tool. But the current natural language processing APIs have their limits. If you ever tried to use generative AI to create something complex that is beyond trivial examples you can find on Stackoverflow, you will notice that they aren't really capable of giving you what you need. But what we have today, Github Copilot or ChatGPT, is not the final evolutionary step of expert systems for software development. These toys are going to mature into tools over the course of the next decades and deliver much better output that solves much more complicated problems.

However, there is unfortunately one fundamental constraint that will be very difficult to overcome for them, and those are the constraints of natural language themselves. The reason why programming languages exist is because natural language is just not a good fit for explaining complex solutions to complicated problems to a computer. So if we want to use generative AI more productively in software development, we will have to get away from natural language and communicate with it in ways that require more technical expertise. Expertise only software developers will have.

1
  • "Worry about getting replaced by someone who knows how to use AI." - Even this is a stretch, and I don't think is something you actually need to worry about.
    – rooby
    Jan 27, 2023 at 0:11
1

For programmers, ChatGPT can be a tool, just as a linter, or code completion, or anything that is more than notepad and a toolchain.

It will increase productivity for sure, and maybe code quality, but I don't think that it is a game changer. You have more time to think about the code and what it does in the bigger picture, you have more time to write tests.

In any case, just try using it, see if and how it changes your workflow. This AI stuff is not going away, so why not see where it takes us?

0

Don't worry about losing your job due to things like ChatGPT, AI, and automation.

Engineers and programmers will always stay 1 step ahead of automations and AI because these smart engineers and programmers will be the ones who invent, design, implement, and control these automation and AI.

Since the 1900's, many people have always been concerned that machines will take over human's jobs. However, as it is evident, people will always train themselves and get many new jobs that control and operate these machines.

0

ChatGPT is an large language model chatbot. It isn't designed to write code and doesn't try to, what it does is pattern-match words and phrases to create a linguistically optimal response to a question. That said, I've seen it create some convincing looking code and some of it even works. If you ask it to write something to open a file in Python, it will give you a working chunk of code. If you ask it to write, say, a chess program, I'd expect it to do that well, because its training data has lots of examples.

The fun starts when you ask it to write a chunk of new business logic for the sort of real-world problems software devs have to deal with. How do you know the code works correctly? You'd write a bunch of test cases but you can't just duplicate the logic the chatbot has used. Writing code that fulfills the requirements is a task that has eluded many of the non-artificial intelligence units that have been coding since the nineteen forties.

Of course progress will be made in code generation by dedicated, machine learning applications, but it was ever thus. Tools to improve productivity have been around since high-level languages replaced assembler. In the 1990s, 4GLs were going to make coders redundant. I remember the fuss around Visual Basic (yes, really) and later intellisense (who bothers remembering the exact syntax for a rarely-used expression when the IDE autocompletes it for you?), linters and it has to be said that Stack Overflow cut-and-paste has increased productivity (if not always quality) hugely. There will be new developments that make the act of writing code much easier, but the big problem is: What is the program exactly supposed to do? And developers will always be needed to implement the detail of that.

I've noticed that, over the last few decades, there's always been a shortage of coders (even allowing for the recent layoffs). As technology can do more, aspirations and expectations are raised. When all we had were dot matrix printers, presentations were very basic. When colour injet came along everyone handed out flashy brochures. Powerpoint allowed presentations to include animations, and now, if you are willing to strap a brick to your face, Meta will host your presentation in VR. Customers always want more, newer stuff and there will always be a demand for coders to lead that innovation.

-1

All previous answers in essence say that there is no reason to worry about software developers being replaced by software any time soon. In this answer, I would like to add a more nuanced viewpoint.

Many of the previous answers are based on capabilities of current publicly accessible systems. While these are clearly insufficient to automate the production of complex software, it seems to me that the degree of certainty is overstated that either these limitations will remain over the time span that might be considered relevant for the question or that systems at current/near future capability levels cannot lead to displacement of development jobs.

This is due to the following reasons:

First, ChatGPT is in its current form not a product, but a public research demonstration. It is not primarily designed to do software development or solve any real-world problems, but to impress the public by showing off capabilities that the public has not previously seen, gather experience running these systems at scale, gather user feedback, learn how to avoid too much public embarassment in the outputs, and to get free training data, all at a price-performance point that makes achieving these goals financially viable. I think the same holds for all similar current systems that I am aware of; even for Copilot, which among the lot is probably closest to being a product.

It is unclear to me how much better SOTA systems currently are and how much improvement can be obtained by paying more for inference. My guess would be that current state of the art LLMs can solve significantly more complex problems than ChatGPT (both in programming and other domains), but that the general pattern of strengths and weaknesses will be similar to public system; and that known ways to trade computation time for answer quality (like chain of thought prompting, auto-prompting, in-context learning, best-of-n sampling) do have a marked effect similar to public models, but that maybe nothing radically better is known for these models.

Secondly, it is genuinely difficult to predict future evolution of capabilities with much certainty. On the one hand, people are impressionable and the hype cycle that accompanies any new technology is a corollary to that. On the other hand, people also have an inflated ego and tend to overestimate the irreplaceability of their own skills. It seems unlikely to me that most people would have predicted current capabilities, say, five years ago. Five years ago, the fundamental techniques used in current demonstrations had already been invented. I would think that a predictive horizon of another five years would certainly seem relevant to the question, and another jump in capabilities similar to that observed in the previous five years is not out of the question and could well be enough to change an answer.

Third, full automation is not required for job displacement. It is not even required for the complete elimination of a profession! For instance, we do not have and we do not know how to build robots that can perform the job of a manual typesetter; this is probably true even if we look only at the part of the job that involves arranging written information in a useful way for visual presentation, i.e. at that part of the job that could be done fully in virtual. And yet, desktop publishing technology has mostly displaced typesetters. It has done so by giving people who are not typesetters enough of an ability to bring their writing into publishable form that most professional typesetting is not needed any more.

In the context of software development, analogues of this could take many forms. Generative AI might enable people who are not able to code but who are domain experts to write software they need, thereby reducing demand for software development as a profession; it will certainly enable existing software developers to be more productive, thereby reducing the manpower required to complete given projects; and in some settings, dialogue systems might enable more general solutions to software problems, meaning that companies will ship one software that can do a hundred different things instead of a dozen programs that could each only perform a particular function. I do not know how important these effects will be, but end results with less full-time professional software developers certainly seem possible.

With all of this being said, I would not currently panic. On the one hand, currently public systems do have severe capability shortcomings with logical reasoning, generation of solutions that are both unconventional and work, precision, verifiability of their output and automatic generation of frame challenges/critical thinking. Humans can improve their own skills in these areas, and doing so is useful for both life and career irrespective of when AI is going to make us redundant. If one is naturally so inclined, it can be very rewarding to grow one's career in directions that make use of such skills.

On the other hand, even if we assume that current problems will soon be fixed and that AI capabilities will grow rapidly, it is not too unlikely that humans will be able to add significant value to AI-generated output for a long time. This has certainly been observed in narrow domains like chess, where AI has long been superior to unaided humans, but only quite recently reached a point of performance where heavily computer-aided humans cannot reliably beat strong computers any more. While one cannot be sure that similar effects will be in evidence for dialogue systems much more advanced than current ones, persistence of some robustness and reliability advantages for human cognition over AI seems plausible given prior experience in many application domains of AI, even if average-case capabilities become very impressive.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .