Hacker News new | ask | show | jobs
by barrkel 4543 days ago
Availability heuristic.

I think your perspective may be warped by two things: not having worked with excellent engineers in person, and only considering relatively famous devs in your set of people who "participate online" - e.g. you're excluding the denizens of the last 80% of pages on StackOverflow.

One of the most capable engineers I've ever worked with is a guy called Yooichi Tagawa. The guy has an incredible appetite for complexity, as well as spooling up on old codebases and new technologies. But you'll find very little by him online, both because he's Japanese and doesn't use English often, and also he's squirrelled away inside Embarcadero, working on Delphi compiler as he's been doing for the past 15 years or so.

1 comments

"Availability heuristic."

It's certainly possible. And there are definitely a great many devs who don't participate online but are brilliant, don't get me wrong.

But I still think the average person who does participate online is better than the average person who doesn't.

In retrospect, what bothered me was the implication that participating online is detrimental, when I think it's just the opposite, if for no other reason than that people who do participate online tend to care more about programming than people who don't, and are therefore better.

Also, availability cuts both ways. Don't think about the amazing devs you've worked with, think of the averages. Trust me, I've worked with people of wildly, wildly varying ability, I know what's out there. Both on the amazing side, and on the "can't code worth a damn" side.

The problem is that you're missing a huge swath of deep (as in, learned over decades of practical work) knowledge that exists within the community of engineers -- not just programmers, but all types of engineers -- in the 40+ age range, who have been working and learning and applying in industry since before the social/online boom, and may well be uncomfortable participating in the same way as the current generation tend to. Generally speaking, and I know this is an unfair generalization, that generation tended to have an approach to problems of "let's reduce this to it's core pieces and see what we know, then experiment until we understand it well enough to solve the macro- problem" In other words, the scientific method. My experience with folks who've entered the market in the past 5-10 years is that, when they first receive a problem, their inclination is to search the web for possible solutions and then hack other people's code to address the 80% easy part of the issue, while often completely ignoring or potentially just misunderstanding the more difficult 20%. This kind of behavior is one of the reasons company culture is critical, and employing senior, experienced engineers & technical managers who have at least a partial focus on engendering critical thinking and problem solving skills in their younger team mates.

Point of reference: I manage a team of about 100 programmers, analysts and DBAs in India, Mexico, Brazil, Scotland, and the US.

I think I'd probably agree that the average person who participates online is more skilled than the average person who doesn't. Participating online exposes you to other perspectives and lets you test your experiences against others, after all.

And I wouldn't say that participating online is detrimental. However, I stand by my contention that participating online is not the most effective use of your time if you want to become a better programmer. Programming is. It is a more effective use of time than, say, watching TV (which a fair number of average devs would do), but the information density you learn from grappling with a real problem and trying to solve it with software far exceeds the information density available in blogs and Hacker News comments.