“Do you know how to do that?” “No, but it’s probably easy with an LLM.”
That’s an interaction I had this week with one of the juniors in my team, and it really sucked. I felt robbed of an opportunity to teach, to share my experience, do discuss a technical subject. And I’ve been feeling that quite a lot lately.
To me, programming always had a social aspect. Be it learning things together back in high-school, trying to one-up each other with clever tricks, or sharing technical knowledge and experience. Seeing how other people approach a problem, how they work, what tools they use. Discussing the benefits of a specific approach, or having a flame war about formatting. All of it is social.
I also like teaching. Part of it might be having a captive audience, but most of it is the joy of forming a system of understanding, a logical explanation to a weird situation, and getting it across to someone else. I like doing live coding, and writing on a whiteboard, and digging in until we get to the bottom of the subject. And if possible - I want whoever I’m teaching to be able to do that again, on their own.
Since I started using LLMs for coding a few months back, I noticed that I’m often preferring a chat with the LLM over asking my colleagues about a technical issue or a detail I’m missing. It is something I am still struggling with, and that I strongly dislike. I feel the effects it is having on both my performance and my understanding of the technical issues, and also how it steals some of my enjoyment. It sucks, and it took me way too long to realize just how badly. Now I am trying to change my approach to improve things, and knowing how things were before LLMs is helping a little. With juniors, however, the situation is different.
Juniors today are learning how to work in a completely different environment. They have so much more at their fingertips that we ever had before. And while the internet was abundant with explanations and tutorials and how-to’s, those were never as context-relevant as what LLMs get us. They were never as easy or as instant. They never seemed to work the first time around. So we tried, and experimented, and gained knowledge and experience, and talked to our team members or friends or our seniors to learn how to get things done. And now, things are just “easy with an LLM”.
Regardless of any effect this has on long-term technical proficiency and growth, it has a massive effect on the social aspect of programming even in the short term. Juniors don’t ask me questions. When they have an issue, they ask the LLM, get an answer, and move on. They don’t build the skills of communicating their ideas with other programmers, and remain incredibly uncomfortable “intruding on my time”. Which is quite frustrating, as helping my juniors is a core part of my job.
We recently set up “office hours” in the team. Each of the more senior people have a slot allocated in the calendar for the juniors to ask whatever. And lo and behold - they have questions! They have things to discuss! They want to talk about things and value the time we spend conversing. And yet, the moment we discuss follow-ups and the questions that may come up as their continue work on their tasks, they assure me it won’t be a problem, they’ll just ask the LLM.
I don’t know what to do about this. I am trying, but currently a bit out of ideas. I find myself losing some of the best parts of the job to “easier than talking to a human”, and that sucks.