Live data from Hacker News

Experts have it easy (2024)

boydkane.com

111–120 of 130 posts

Re: Experts have it easy (2024)

#111
post #7
post #4

Taking mechanical stuff apart and fixing it is one of these areas. One of the more recent ones I watched is taking apart large wenches on a bulldozer. There is a metal plate with two bolts on it you have to take off. If you don't know what you're doing you take both bolts out and it flies apart losing stuff because there is a spring behind the mechanism. If you know what you're doing you take out one bolt then put in…

Would that not be documented by the manufacturer somewhere?

Manufacturer like to say things like 'use the repressor tool #4325' which is no longer produced and costs a small fortune, rather than a $5 bolt.

Re: Experts have it easy (2024)

#112
post #2

> Having someone who’s happy to spend time “just talking”, without any specific goal to solve, will go a long way. This is actually something I love doing with our junior developers: Often they have a question every once in a while, or they don't have any questions for too long so I ask them what they're doing currently. Both often leads to me taking a look, and discovering that they're like five miles deep into a de…

I love developing junior people for all the reasons you outlined. It's both rewarding and fun. I know that I'm supposed to show up at work to deliver value or whatever, but that all pales in comparison to seeing a young person light up because suddenly they can see the path in front of them. And it's a lovely feeling to have instructed someone one day, then come in the following day or week and they've been on a tear with their new knowledge because they were so excited. One of my favorite feelings in life.

Given that, it really boggles my mind the backward view most people seem to have of junior folks. There's a logic that says: "well, training somebody up is very expensive, and then once they have the skills, what's to stop them from leaving?" Like...really? You actually want someone to stay low-skill and produce shoddy results? Besides, if the only thing keeping the person around is their lack of skills, that says more about the place of work than the person. Can't say it makes any sense to me but I have accepted it at this point.

Re: Experts have it easy (2024)

#113
Nice article, I really enjoyed reading it. I have to give an obligatory shout-out to the Dreyfus Model of learning which I find is often relevant.

Keying off that, I caught myself while reading this section:

> The expert’s intuition is often formidable, but rarely comprehensible. This inability to clearly explain their decisions is what makes it so useful for novices to spend time with experts. Often there’s an underlying pattern that the novice can pick up through careful observation, even if neither the expert nor the novice can properly articulate this pattern.

I'm 20 years into my programming career at this point and for a long time I really believed this was true and in a sense the "final" stage of mastery. However, I think there is a stage (possibly stages?) of mastery beyond the level of expertness where most answers come quickly through intuition.

I think it boils down to "practitioner vs educator" -- some people are amazing practitioners and unquestionably expert at what they do. But, when you ask them to explain themselves, they run into that "I know it's right, but I don't know how" situation. I think the reason for this is that the person is not a great educator, which is a separate skill. Similarly, I've met many great educators who didn't perform well when asked to execute under real-world conditions.

This has led me to believe that the combination of "great practitioner and great educator" is one of the rarest breeds out there. The few people I've met with this ability I would not call even 10x engineers but 100x or even 1000x.

Re: Experts have it easy (2024)

#114
post #41

A quick track from juniors to experts is to convince someone to let you build something big from scratch. It is going to be messy and likely difficult to maintain. But you gain immense experience from that project, so much that you can be a semi expert (and an expert in that specific domain) in just a couple of years. That was how tons of young people who trampolined to senior in just a few years, bagging a lot of ex…

Especially if it's integrated with a large legacy app or codebase. You'll get so many valuable lessons.

Yeah. Alas such opportunites are pretty much luck based.

Re: Experts have it easy (2024)

#115

> This explains the difficulty of training new employees when all your experts are working remotely, as remote work practically eliminates any sort of casual unguided “water-cooler” interaction. In software development remote work, the novice can learn from the expert by screen sharing how they're working on a problem, sometimes called a working session. The expert can point out more efficient ways of working, like i…

(author here) I'm not sure I agree. I certainly think that screen sharing is better than nothing, but remote screen sharing is a strict subset of what you can do while in-person. Working remotely means there's some higher bar for quickly bugging a colleague, since you have no idea if they're casually reading their emails or if they're in deep focus. I can't describe how many times I've been saved days of work because…

> Working remotely means there's some higher bar for quickly bugging a colleague, since you have no idea if they're casually reading their emails or if they're in deep focus.

You've outed yourself as a young person here, because young people have this social fear of messaging senior engineers. Messaging at work doesn't need to be synchronous like in personal communication. Messaging at work matures into optional asynchronous communication for efficiency. See the No Hello (https://nohello.net) protocol.

There is actually a lower bar for quickly bugging a colleague over messaging than walking over to their desk. It's actually impolite to shoulder surf and skim your colleague's email inbox to determine if what they're doing is important. For senior and above levels, reading emails can be more urgent than having an IDE open. There can be production issues, environment issues, vendor tickets, and emails from senior management that are communicated over email. Or they can be submitting an HR form that has their personal details.

Before 2020, software developers in open office environments naturally gravitated to messaging over talking in person, because having no office or cubicle walls means if you're talking out loud at someone's desk, you're bothering others sitting nearby. Sometimes this happens anyway, and it can be hard for some people to read code or emails while listening to colleagues talking right next to them.

> There are other, tangential, reasons to prefer remote work over in-person, but I don't think there's any reason why remote work would be better at educating novices.

There is minor degradation in educating novices, like maybe it's 2% to 5% worse, but in open office work environments, the majority of communication is messaging and emails anyway due to lack of privacy and sound-proofing. Screensharing is easier to see than huddling at someone's desk, and quieter for your colleagues next to you who wouldn't hear all sides of the conversation when you're using headphones.

Re: Experts have it easy (2024)

#116

Earlier quoted context omitted.

Also love debugging, it's puzzle, pattern matching, evidence gathering, poking around, experimenting, it's using tools, diving into documentation, learning more than whats required to write it and learning about humans and machines and why and how we make mistakes and forgiving these mistakes and fixing the errors. That feeling when spending lots of time to write just one line of code to close that one pesky bug. Are…

Debugging can be a joy when dealing with a single system. Not so much when dealing with things like microservices where every combination has a possible failure scenario related to that bug. And because of the deployment strategy, you can't easily test that combination in isolation. Also no tests for each service, only full integration tests that takes a while to run. I know distributed systems can be a pain to reaso…

> And because of the deployment strategy, you can't easily test that combination in isolation. Also no tests for each service, only full integration tests that takes a while to run.

That doesn't sound like microservices at all, but a distributed monolith.

I'm so sorry!

Re: Experts have it easy (2024)

#117

Earlier quoted context omitted.

Also, a novice is more ready to learn a lesson on the way back from a dead end than while barreling down towards it.

(author here) This is an interesting point. I hadn't considered it, but I agree. Or maybe to be more specific, I think the novice has some prior that their idea will work, and hearing an expert's disagreement will update their prior somewhat. If the novice has a high respect for the expert, that update will be large enough. But sometimes the novice just has to experience the pain firsthand in order to truly appreciat…

I often find myself smiling and joking with novices as I meet them coming back from a dead end, "yup, that's exactly the problem I suspected you'd have, now let's see how and why it happens, and how to move forward".

There might be some situations and some people for whom this would be immensely irritating, but for the moment as far as I can tell, it's going ok with my novices. But your essay opened up a reflection in me about how people perceive this and if I need to tone it down. Thanks!

Re: Experts have it easy (2024)

#118
post #14

Earlier quoted context omitted.

I disagree, because in high specialty domains you even cannot reuse knowledge as it might be proprietary. On the other hand patterns are universal. You sit in a meeting where someone raises problem of „database slow, we have 50M of log entries, we need to delete them” and all the familiarity bells already ring. The open domain knowledge IMO is something that can be extracted from LLMs. Ask LLM for disk-based data cac…

What's the problem with 50M log entries and deletion, and a disk-based cache?

A great question, which I'll allow myself to not respond _here_. Please check within a week, as I try to migrate my blog to something simpler. I'll put description there and link here once done.

Re: Experts have it easy (2024)

#119
post #66

This is a really good article. There's a quality in strong developers which is difficult to select for in an interview but wildly valuable once they're up and running; maybe the best word is "scrappiness". When I interview juniors or interns, one of the questions I like to ask is something like this- "You've got two computer, one Linux one Windows. There's 50gb of files on the Windows machine which need to be moved t…

This is a fun question. But the fact that "move a medium sized file from one machine to another" is still a fun question is also a pretty damning indictment of our industry :P

Gigabit Ethernet is 26 years old and the average home/company network is still at the same level... some new PC motherboards have 2.5G but more often than not switches/routers are still on 1GbE.

Crazy how much CPU/GPU performance and storage speed have improved while other things haven't changed at all in decades.

Re: Experts have it easy (2024)

#120

Earlier quoted context omitted.

A good documenter is the novice who just learned. (Maybe the expert should vet it for accuracy)

(author here) Absolutely agree. Another commenter mentioned that sometimes the best mentor is someone slightly better than you, and not some seasoned veteran. You want someone knowledgeable enough to give good (and correct) advice, but not so knowledgeable that they struggle to be comprehensible.

I took contact with an existing code base about a year ago.

Tbh I would have been better at explaining it after 6 months than I am now. I've already worked with it enough that I've internalized some basics and I'm sure I'll forget to mention them when explaining to a hypothetical new guy.

Post reply on HN