Just to rant a bit on this topic:
Putting it very simply, LLMs, fundamentally, simply predicts what is the most likely/suitable response from it's in-built knowledge trained from vast, vast datasets scoured from the Internet. Modern complex LLMs are engineered to be able to learn patterns and relationships within the data, so for example:
1. "The cat sat on the mat in the living room."
2. "The CEO sat on the board in the company."
Despite being different, the LLM would recognize the pattern "[Subject] + [verb in past tense] + on the [noun] + in the [location]" and would be able to answer correctly the question "What is sitting on what?", despite probably never actually seeing that exact sentence and answer in it's dataset.
However, the LLM certainly is not aware and definitely does not understand what I am asking it. The most obvious example is asking any LLMs the question "How many r's are there in 'Strawberry'?". The AI will answer '2', which is wrong!
Why? Partially because the nature of LLMs require the question to be broken into tokens, which could and would warp the context that it is processing on (breaking "Strawberry" into "straw" and "berry", for example), but more importantly it is because LLMs fundamentally does not understand the question! LLMs does not possess the ability to "step back" and examine a word letter by letter, or truly understand the concept of counting letters. They're simply regurgitating what they have calculated to be the most probable response based on their training data and the patterns they've learned.
LLMs assume things, but they never question whether their assumptions are correct, because they don't understand what is correct or wrong in different contexts. Thus, hallucinations and garbage responses.
This limitation extends to many other types of questions and tasks. While LLMs can often produce impressively human-like responses, they're fundamentally pattern-matching and prediction engines, completely incapable of genuine comprehension or reasoning - therefore never ever replacing humanity in software development or other fields.
Now, newer models like ClosedAI's o1 can somewhat emulate higher order reasoning to improve it's coding effectiveness, but it isn't and will never be capable of independently recognize that despite following the logical steps it generated to the letter, what it produces is rubbish and useless in real life. (Just tried asking the preview model to solve some coding issues of mine, and it managed to distill the problem correctly into steps which needs to be solved, then proceeded to produce code that doesn't work at all. Does it realize that the code doesn't work? Does it understand what the problem actually is? No, of course not.)
Honestly, the best argument against "AI will replace X" is actually trying to do X with AI for a period of time.