Dan Luu Profile picture
Active on https://t.co/WG71Nrs60M; also trying out https://t.co/fGOzbSxVHi. No longer read replies or notifications here now that tweetdeck is gated.

Sep 28, 2021, 11 tweets

I feel like it would be useful for programmers, as a field, to acknowledge that humans are bad at programming.

This is because techniques for improving at things you're bad at are different from techniques for improving at things you're good at.

E.g., blunder avoidance is generally high ROI when you're bad and I've gotten a lot of mileage from trying to avoid blunders.

If I look at how other people operate, they often do really sophisticated/complex stuff that's net ineffective because it increases the rate of blunders.

My opinion that humans are bad at programming (relative to how good we are at, say, chess or skiing) seems like one most of my most ridiculable opinions (almost no one I talk to agrees, most people think it's a very stupid opinion) but IMO It's also very obviously correct?

My opinion comes in part from looking at how people train for and improve at things we're good at vs. programming.

E.g., look at skiing. I was just talking to a skier who was on the Canadian national team for three ski sports about their training/coaching regimen.

I asked this person why she didn't do moguls competitively when she learned to do moguls as she learned to walk and the answer was that there weren't moguls coaches in western Canada, so to be good enough at moguls to compete, she would've had to move to eastern Canada by age 7.

There was a similar answer to why she dropped out of downhill when she was in high school.

Westerns for XC and downhill, which were qualifiers for the national team and ∴ for coaching, were on the same weekend and there was no way to keep up after missing a year of coaching.

At the time she dropped out, she was maybe the #3 or #4 downhill skier in Canada for her age group, plausibly better at skiing than I've ever been at anything.

But we're so good at coaching people to become better skiers that someone who isn't a generational talent can't even be in the same league as humans with coaching if they miss one year of coaching.

Compare that to programming, where we basically have no idea how to improve.

Blanket advice to programmers is all over the place and often directly contradictory.

If you look for programmers who are relatively good at programming, they frequently do the opposite of the most common advice, etc.

The fact that I go looking for programmers who are effective to see what works for them seems unusual.

AFAICT, most people who give advice don't look at what's worked in general and what hasn't worked and just tell people some form of "do what I did".

How you should approach improvement is very different in an environment where we know how to make people good, like skiing, where we can observe that advice is often very effective, vs. in programming, where we can observe that most advice is useless or counterproductive.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling