For me, building software has often been a solitary process in which I was far more obsessed with it than those around me. I'm not in a tech-heavy area and I don't have a ton of well-informed people to talk to about programming, software engineering, or AI. I have had experiences like the author in which I needed to learn a new technology or a new language but ended up doing so on my own at home, not with the assistance of a much more knowledgeable developer with significantly more experience.
To me LLMs have left us in a situation where the following things are true and moving forward lies somewhere in figuring out how to reconcile / resolve these things:
- You can use LLMs and learn things or not learn things; this is a result of the approach, desire, and willpower of the user.
- There is a level of skill associated with using LLMs much like nearly everything else in existence. The user's skill level impacts their perception of the technology and also affects the way those around them view the technology. Unskilled users will generate more negative sentiment.
- Some people love to do the things the machine is good at and do not want the machine to do them, while others hate to do the things the machine is good at and want the machine to do them. I realized at some point this year that I don't love programming anywhere near as much as I love building and designing systems and solving problems.
- Software development is many things wrapped up in one and talking about it as a single thing makes it more confusing. Some people like to think through the logic of the application and have an LLM write the code while others want the LLM to think up the solution, implement it, and test it. These are two very different people with likely different goals and different desires.
- When someone else looks at Claude or ChatGPT they might see something completely different than what you see.
I hope some of this resonates with others.