Full disclosure: I am writing a chat app that is designed for software development
> It's a difficult problem to solve, requiring new sets of books, courses etc.
I think new tooling built around LLMs that fits into our current software development lifecycle is going to make a big difference. I am experiencing firsthand how much more productive I am with LLM, and I think that in the future, we will start using "Can you review my conversation?" in the same way we use "Can you review my code?"
Where I believe LLMs are a real game changer is they make it a lot easier for us to consume information. For example, I am currently working on adding a Drag and Drop feature for my chat input box. If a junior developer is tasked with this, the senior developer can easily have the LLM generate a summary of their conversation like so:
https://beta.gitsense.com/?chat=d36e0282-4326-46cf-83b1-4207...
At this point, the senior developer can see if anything is missed; if desired, they can fork the conversation to ask the LLM questions like "Was this asked?" or "Was this mentioned?"
And once everybody is happy, you can have the LLM generate a PR title and message like so:
https://beta.gitsense.com/?chat=8aa19528-5891-4dda-9a88-247a...
All of this took me about 10 minutes, which would have taken me an hour or maybe more without LLMs.
And from here, you are now ready to think about coding with or without LLM.
I think with proper tooling, we might be able to accelerate the learning process for junior developers as we now have an intermediate layer that can better articulate the senior developers' thoughts. If the junior developer is too embarrassed to ask for clarification on why the senior developer said what they did, they can easily ask the LLM to explain.
The issue right now is that we are so focused on the moon shots for LLM, but the simple fact is that we don't need it for coding if we don't want to. We can use it in a better way to communicate and gather requirements, which will go a long way to writing better code faster.