6 ms·
Adding to this: it's not just that the apprenticeship ladder is gone—it's that nobody wants to deal with juniors who spit out AI code they don't really understa
by strickjb9 10mo ago
Adding to this: it's not just that the apprenticeship ladder is gone—it's that nobody wants to deal with juniors who spit out AI code they don't really understand.
In the past, a junior would write bad code and you'd work with them to make it better. Now I just assume they're taking my feedback and feeding it right back to the LLM. Ends up taking more of my time than if I'd done it myself. The whole mentorship thing breaks down when you're basically collaborating with a model through a proxy.
I think highly motivated juniors who actually want to learn are still valuable. But it's hard to get past "why bother mentoring when I could just use AI directly?"
I don't have answers here. Just thinking maybe we're not seeing the end of software engineering for those of us already in it—but the door might be closing for anyone trying to come up behind us.
- ah979 10mo agoI get that. I think that getting to know juniors outside of work, at a recurring meetup or event, in a setting where you can suss out their motivation level and teachability level, is _a_ way of going about it. That way, if your team is hiring juniors, you have people you have already vetted at the ready.
- mikepurvis 10mo agoIMO teachability/curiosity is ultimately orthogonal to the more base question of money-motivation. In a previous role I was a principal IC trying to mentor someone who had somehow been promoted up to senior but was still regularly turning in code for review that I wouldn't have expected from an intern— it was an exhausting, mind-numbing process trying to develop some sense of engineering taste in this person, and all of this was before LLMs. This person was definitely not just there for the money; they really looked up to the top-level engineers at our org and aspired to be be there, but everything just came across as extremely shallow, like engineering cosplay: every design review or bit of feedback was soundbites from a how-to-code TED talk or something. Lots of regurgitated phrases about writing code to be "maintainable" or "elegant" but no in-the-bones feeling about what any of that actually meant. Anyway, I think a person like this is probably maximally susceptible to the fawning ego-strokes that an AI companion delivers alongside its suggestions; I think I ultimately fear that combination more than I fear a straight up mercenary for whom it's a clear transaction of money -> code.
- QuercusMax 10mo agoI had one fairly-junior teammate at Google (had been promoted once) who was a competent engineer but just refused to make any choices about what to work on. I was his TL and I gave him a choice of 3 different parts of the system to work on, and I was planning to be building the other two. He got his work done adequately, but his lack of interest / curiosity meant that he never really got to know how the rest of the system operated, and got frustrated when he didn't advance further in his career. Very odd. It was like he only had ever worked on school projects assigned to him, and had no actual interest in exploring the problems we were working on.
- mikepurvis 10mo agoIn my experience, curiosity is the #1 predictor of the kind of passionate, high-level engineer that I'm most interested in working with. And it's generally not that hard to evaluate this in a free-form interview context where you listen to how a person talks about their past projects, how they learn a new system or advocated/onboarded a tool at their company. But it can be tricky to evaluate this in the kind of structured, disciplined way that big-company HR departments like to see, where all interviewees get a consistent set of questions and are "scored" on their responses according to a fixed rubric.
- watwut 10mo agoThat does not even sounds like a problem? Like when people are that picky about what exact personality the junior musr have that good work is not enough ... then there is something wrong with us.
- mikepurvis 10mo agoI don't think it's beyond the call of duty to expect someone to acquire context beyond their immediate assignments, especially if they have ambitions to advance. It's kind of a key prerequisite to the kind of bigger-picture thinking that says "hey I noticed my component is duplicating some functionality that's over there, maybe there's an opportunity to harmonize these, etc"
- 10mo ago
- roadside_picnic 10mo ago> Just thinking maybe we're not seeing the end of software engineering for those of us already in it—but the door might be closing for anyone trying to come up behind us. It's worth considering how aggressively open the door has been for the last decade. Each new generation of engineers increasingly disappointed me with how much more motivated they were by a big pay check than they were for anything remotely related to engineering. There's nothing wrong with choosing a career for money, but there's also nothing wrong about missing a time when most people chose it because they were interested in it. However I have noticed a shift: while half the juniors I work with are just churning out AI slop, the other half are really interested in the craft of software engineering and understanding computer science better. We'll need new senior engineers in a few years, and I suspect they will come from a smaller pool of truly engaged juniors today.
- rozap 10mo agoThis is what I see. Less of door slamming completely shut, more like, the door was enormous and maybe a little too open. We forget, the 6 month coding bootcamp to 6 figure salary pipeline was a real thing for a while at the ZIRP apex. There are still junior engineers out there who have experiments on their githubs, who build weird little things because they can. Those people were the best engineers anyway. The last decade of "money falls from the sky and anyone can learn to code" brought in a bunch of people who were interested in it for the money, and those people were hard to work with anyway. I'd lump the sidehustle "ship 30 projects in 30 days" crowd in here too. I think AI will effectively eliminate junior engineers in the second camp, but absolutely will not those in the first camp. It will certainly make it harder for those junior engineers at the margins between those two extremes. There's nothing more discouraging than trying to guide a junior engineer who is just typing what you say into cursor. Like clearly you don't want to absorb this, and I can also type stuff into an AI, so why are you here? The best engineers I've worked with build things because they are truly interested in them, not because they're trying to get rich. This is true of literally all creative pursuits.
- QuercusMax 10mo agoI love building software because it's extremely gratifying to a) solve puzzles and b) see things actually working when I've built them from literally nothing. I've never been great at coming up with projects to work on, but I love working on solving problems that other people are passionate about. If software were "just" a job without any of the gratifying aspects, I wouldn't do nearly as good a job.
- shagie 10mo ago> Now I just assume they're taking my feedback and feeding it right back to the LLM. This is especially annoying when you get back a response in a PR "Yes, you're right. I have pushed the fixes you suggested." Part of the challenge (and I don't have an answer either) is there are some juniors who use AI to assist... and some who use it to delegate all of their work to. It is especially frustrating that the second group doesn't become much more than a proxy for an LLM. New juniors can progress in software engineering - but they have to take the road of disciplined use of AI and make sure that they're learning the material rather than delegating all their work to it... and that delegating work is very tempting... especially if that's what they did in college.
- mooreds 10mo ago> there are some juniors who use AI to assist... and some who use it to delegate all of their work to. Hmmm. Is there any way to distinguish between these two categories? Because I agree, if someone is delegating all their work to an LLM or similar tool, cut out the middleman. Same as if someone just copy/pasted from Stackoverflow 5 years ago. I think it is also important to think about incentives. What incentive does the newer developer have to understand the LLM output? There's the long term incentive, but is there a short term one?
- supriyo-biswas 10mo agoDealing with an intern at work who I suspect is doing exactly this, I discussed this with a colleague. One way seems to be to organize a face to face meeting where you test their problem solving skills without AI use, the other may be to question them about their thought process as you review a PR. Unfortunately, the use of LLMs has brought about a lot of mistrust in the workplace. Earlier you’d simply assume that a junior making mistakes is simply part of being a junior and can be coached; whereas nowadays said junior may not be willing to take your advice as they see it as sermonizing when an “easy” process to get “acceptable” results exists.
- throwaway2037 10mo ago
- zcw100 10mo agoI don't know what world you're living in but software development has always been a cut throat business. I've never seen true mentoring. Maybe a code review where some a-hole of a "senior" developer would come in having just read "clean code" and use some stupid stylistic preferences as a cudgel and go to town on the juniors. I'm cynical enough to believe that this, "AI is going to take your programming job!" is just a ploy to thin out the applicant pool.
- QuercusMax 10mo agoWow, you must have worked in some REALLY toxic places. I had one toxic senior teammate when I first started out - he mocked me when I was having trouble with some of the dev environment he had created - but he got fired shortly thereafter for being bad at his job. Everybody else through my 21-year career has almost universally either been helpful or neutral (mostly just busy). If you think code reviews are just for bikeshedding about style minutia, then you're really missing out. I personally have found it extremely rewarding to invest in junior SWEs and see them progress in their careers.
- zcw100 10mo agoSure have. Finance, research labs, government contracting. Can't wait for people to chime in with their horror stories. I've seen some of the most dysfunctional crap you can imagine.
- QuercusMax 10mo agoSorry you've worked for such nightmare places, but it's far from universal. There are LOTS of good companies and teams out there.
- izacus 10mo agoYou seem to have chosen the most toxic (and famous for it workplaces) and now you're misleadingly claiming that's the whole industry. It is not.
- lezojeda 10mo agoSome juniors are even using AI for communication in Slack channels or even DMs. It's so uncanny.
- spjt 10mo agoI'm staff and that is probably the main thing I use AI for. It's maybe a bit ironic that AI is a lot better at sounding like an empathetic human being than I am, but I'm still better at writing code.
- Zarathruster 10mo ago> Adding to this: it's not just that the apprenticeship ladder is gone—it's that nobody wants to deal with juniors who spit out AI code they don't really understand. I keep hearing this and find it utterly perplexing. As a junior, desperate to prove that I could hang in this world, I'd comb over my PRs obsessively. I viewed each one as a showcase of my abilities. If a senior had ever pointed at a line of code and asked "what does this do?" If I'd ever answered "I don't know," I would've been mortified. I don't want to shake my fist at a cloud, but I have to ask genuinely (not rhetorically): do these kids not have any shame at all? Are they not the slightest bit embarrassed to check in a pile of slop? I just want to understand.
- semiquaver 10mo ago> embarrassed to check in a pile of slop Part of being a true junior, especially nowadays, is not being able to recognize the differences between a pile of slop from useful and elegant code.
- gishh 10mo agoMore to the point, I think part of being a senior is being able to dig up code you wrote a few years ago and say “how awful”
- dhussoe 10mo agoI do think that there's a meaningful difference between writing code that was bad (which I definitely did and do) and writing code where I didn't know what each line did. early on when I was doing iOS development I learned that "m34" was the magic trick to make flipping a view around have a nice perspective effect, and I didn't know what "m34" actually meant but I definitely knew what the effect of the line of code that mutated it was... Googling on it now seems like a common experience for early iOS developers :) https://stackoverflow.com/questions/14261180/need-better-and-simpler-understanding-of-catransform3d https://stackoverflow.com/questions/14261180/need-better-and... https://stackoverflow.com/questions/3881446/meaning-of-m34-of-catransform3d https://stackoverflow.com/questions/3881446/meaning-of-m34-o... https://khanlou.com/2012/09/catransform3d-and-perspectives/ https://khanlou.com/2012/09/catransform3d-and-perspectives/
- agumonkey 10mo agoNew students are presented with agentic coding now, so it's possible that CS will become a more abstract spec refine + verify. Although I can't make it work in my head, that's what I took from speaking with a young college student.
- johnnyanmac 10mo ago>Now I just assume they're taking my feedback and feeding it right back to the LLM. seems like something a work policy can fix quickly. If not something filtered in the interview pipeline. I wouldn't just let juniors go around and try to copy-pasting non-compilable Stackoverflow code, why would I do it here?
- deleted 10mo ago[deleted]
- thayne 10mo ago> I think highly motivated juniors who actually want to learn are still valuable. But it's hard to know if a candidate is one of those when hiring, which also means that if you are one of those juniors it is hard for you to prove it to a prospective employer.