

The Silent Majority of Experts - the_mat
http://prog21.dadgum.com/143.html

======
netcan
There's some sort of point about experts in general which I am not sure
exactly how to articulate but I think is relevant. I'm going to try to klutz
through it anyway.

There are lots of fields where fundamental theories are relatively weak or
have poor predictive powers. Macroeconomics, climatology, nutrition etc.
Basically, we don't have real Knowledge. We have a bunch of data and a bunch
of theories. Some of the theories that aren't very general or aren't very
applicable to real life scenarios _are_ predictive but relatively useless. We
know that certain nutrients have some importance. We know that restricting
caloric intake leads to weight loss. We know that money supply, inflation and
other things are linked together in various ways. The theories don't answer
the questions we want then to with any kind of certainty. Still, we sometimes
need to make decisions and some knowledge is better than none so we go and
find experts anyway. There _are_ people who are experts. They're experts in
the study and they are aware of our knowledge in the field such as it is. But
they don't have real answers because there just aren't useful answers to be
had at this point. All of medicine was like this until pretty recently.

When Darwin published "The Origin of Species" evolutionary biology came to
being as a different kind of field. One where the knowledge was real and the
theory predictive. The theory was fundamental and strong. Darwin could make
claims & predictions with a lot of confidence. Subsequent biologists could
keep making predictions and when new discoveries (like genetics) were made,
they were found to be consistent with the predictions of evolutionary biology.
In fact, if they hadn't been, a careful researcher would probably assume that
the mistake was in their own conclusions, not in Darwins. So if Chimpanzees
are closer to humans than to Gorillas, we share common acceptors not shared
with Gorillas and the distinction between Humans and Apes (if we want to keep
Apes as a category) is morphological (which is allowed by Darwin) rather than
one of proximity on a family tree.

Darwin was careful. He didn't publish until he was sure. If he didn't been
sure we wouldn't have published. There are lots of Darwins in every one of the
former type of field. They haven't discovered real Knowledge that can tell
them what to do in an economic recession or what people should eat so they
shut their mouth and keep looking. They are still experts but their expert
opinion is "I dunno." That doesn't register as expertise so we go on to find
someone that will explain about Aggregate demand, antinflamatory diets,
carbohydrates or something like that.

Development methodologies, executive compensation, distributed companies etc.
are in the category of things that we don't have real "scientific" knowledge
about. Most business-ey knowledge is like that.

Now it sounds like I'm bashing people who talk about this stuff and I don't
mean to be (hence my disclaimer at the start). I'm just pointing out that our
knowledge in different fields is different. Joel Spolsky is very insightful in
his essays about the Software industry, for example. But there are certain
people that are comfortable with anecdote and generalities and assertions that
may turn out to be untrue. There are certain people (like Darwin) who are not.
If we're talking about development methodologies, the people we here from are
self selected. They are comfortable making grand statements, manifestos and
such even though they may be wrong.

That's still useful and certainly interesting, but there is a big category of
people we aren't hearing from and they are relevant to the discussion.

~~~
drewcrawford
This comment is sufficiently interesting that I want to grab a coffee with you
and talk about it IRL, but you don't have any contact information in your
profile so I don't know where in the world you are.

The next time you roll through Austin make sure to look me up.

~~~
netcan
Dublin Ireland, If you're over digging up ancestors, give me a shout.

And thanks for the compliment :)

------
gwern
But without any way of correcting for this silent majority, or any sort of
predictable systematic tendency, so what? We don't know everything? There's a
lot of things we don't know, and on most topics we hear from only a small
fraction of people, both expert and otherwise. Why is this worth pointing out?

(The point of knowing about things like publication biases in science is that
they _are_ systematic: once you know about publication bias, you know that
estimates are on net, higher than they should be, and this is something you
can apply to evaluating science that you read.)

~~~
nostrademons
But the non-expert bias online _is_ systematic. Time spent participating
online is time _not_ spent honing your craft, and so there should be a strong
inverse correlation between posting frequency and expertise.

There are real, pragmatic ways to correct for this bias and get more useful
information out of online forums, too. For example:

1.) Look for people who have a solid, independently-verifiable track record
who are now just starting ventures that need publicity. For example, Marc
Andreesen had an absolutely awesome weblog in the ~1 year prior to founding
Andreesen-Horowitz, but now his comments are largely limited to snarky one-
liners and occasionally insightful one-paragraphers. Why? There's no incentive
for him to spread his knowledge around the general public; his firm already
has enough of a reputation to draw the top potential founders. The
entrepreneurs he funds get his advice, but everybody else has to make due with
occasional soundbites.

2.) Look for people who post only brief, offhand comments, but then follow up
on those comments and do the research yourself. Many "silent experts" may have
time in between compile breaks to throw in a throwaway comment or correction,
but they don't have time to write a long missive. However, if you follow-up
yourself and do a bit of Googling, you can take their clues and learn what
they were talking about. This is how I found out about Haskell, it's how I
found out about writing scalable event-driven servers, and it's how I found
out about writing multi-language systems where a scripting language is
embedded inside a larger program.

3.) Look for people who can see & acknowledge both sides of an issue.
Practical experience teaches you about trade-offs, it teaches you about
alternatives, and it teaches you that there are often multiple solutions and
oftentimes you need to give up some desirable properties to get others. Blog
posts by Internet Fanboyz teach you that there is One True Way Of Doing
Everything that will solve all your problems, because that is the only way
they've ever encountered.

4.) Similarly, look for people who stay out of flamewars. Folks with real jobs
who care about their craft don't have time for that shit, because becoming an
expert takes _a lot_ of time. So the folks who _do_ have time for that shit
are generally either folks without jobs or folks who blow off their jobs to
score points on the Internet.

5.) And perhaps most effectively - work directly with an expert. Start
contributing to open-source and understand why the maintainers make the
choices they do. Take a job at a well-respected company. Work with the gruff
neckbeard at your employer. When experienced programmers have to clean up the
messes you make, they have a very strong vested interest in not letting you
make any messes.

~~~
edanm
"Time spent participating online is time not spent honing your craft, and so
there should be a strong inverse correlation between posting frequency and
expertise."

Anecdotally, this is absolutely wrong. I can think of almost no one who
participates online, who isn't better than most people who don't participate
online.

Maybe it's an issue of averages, and at the edges this is true - that the
average "superstar" spends less time online, but that the average "OK" person
does spend time online.

But I can certainly say, the silent majority of programmers, the ones who
don't take part in anything except just focusing on their work, are almost
always worse. I've seen this time and time and time again.

~~~
barrkel
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.

~~~
edanm
"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.

~~~
eitally
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.

------
gaius
We see this in the diving community too, there are a bunch of forums where
people have prolific arguments, usually about which agency or brand is best,
stuff that has been done to death and barely matters anyway. Whereas if you
get off the Internet and go to dive sites you will find a ton of friendly
people who have a thousand dives and are happy to share real knowledge, who
never bother to go on the forums.

------
jbarrow
One place in which this problem was particularly apparent was (is? I haven't
kept up with it for a while) the PHP community. PHP gets a bad rap as a
terrible language, but a large part of this was the ease of beginning the
learning process with PHP; download [X|W|M]AMPP, spin up an Apache instance,
and get just dive in. What this led to was a lot of sub-par instruction
material from people who didn't have a solid grounding in design principles,
or "tutorials" created from people who had little experience.

Despite this, there were clearly experts who could "finely craft" PHP
applications. Although Facebook may not be the best example, it is the first
one that comes to mind.

~~~
girvo
I've worked on huge web applications that were super maintainable and fun to
work on, solving pretty interesting problems for multi-billion dollar
companies... In PHP. I sometimes want to defend the language, but it does have
some terrible parts to it, and a lot of the people that use it aren't software
engineers. But a lot of them are, and so I just choose to work with them
instead of complaining about it all!

On top of that, the latest developments in the language and community have
seen some big changes for the better around tooling, best practices, and the
like. So I'm firmly of the belief that with the RFC, PSR and
Composer/Packagist trio, as well as things like HHVM, we will see things begin
to change for the better on this front in the future. Call me Mr Optimistic ;)

------
agumonkey
That's why I tried to stop caring about the [current] web and embraced the
future by reading mailing list or irc channels of actual projects. Going close
to where things actually happens, raw.

------
midas007
It's true. I'd label it "indirect knowledge hoarding." But the excuses/reasons
are usu. most people are busy or don't feel they'd make good teachers.

There has to be an incentive / prioritization by the person to do something
about it. Also, some people don't even think they're experienced enough.

Maybe useful knowledge transfer via teaching or at least reviewing teaching
material.

------
mojoe
The point that resonated the most with me here was that people need to be
given big opportunities to fail without prejudgement, otherwise they'll never
build their skillset significantly. Obviously nobody is ever hired in a
vacuum, but the takeaway for me was:

remember to judge others on their past behaviors, and nothing else.

------
jackgavigan
As the adage says, empty vessels make the most noise.

Or: Those who can, do. Those who can't, talk about it.

------
mattmanser
This seems wrong to me, and fairly obviously wrong.

If you take a group X, a certain percentage Y hang out in newsgroups and blog.
He himself was part of that Y for Forth.

Why would the percentage Y be significantly different for any given language?

The number of bloggers/newsgroup users is like a survey, it's not complete,
but it's a very good indicator of how popular a language is. The popularity of
a language increases its ease of use by a considerable factor (libraries,
help, documentation, etc.).

Hence Forth being a language no-one uses today, which actually contradicts his
point, rather than illustrating it as he seems to think. Elizabeth Rather was
right, there were people doing interesting things with Forth, but there
weren't many.

And for most of us, that's an important thing to consider when using any tool.

That there is a huge number of bloggers looking down their nose at Perl & C++
simply shows there's something wrong with both those languages. It doesn't
mean that they're not still useful though, nor does it mean something else
solved the problem until a lot of 'I used Go/Rust/Haskell/Whatever to make
non-trivial program' posts appear.

~~~
dap
> If you take a group X, a certain percentage Y hang out in newsgroups and
> blog. He himself was part of that Y for Forth. Why would the percentage Y be
> significantly different for any given language?

There are lots of reasons I can imagine: people trying out newer languages
have more reason to talk publicly about what they're doing, since they usually
have a vested interest in the growth of that language. Organizations with
tight rules on secrecy are often risk-averse in general and less likely to try
out new languages. So new languages wind up with users that are more open, and
they appear even more active. (I don't know if this is true -- it's just a
guess. But your assertion that the percentages would likely be uniform across
languages feels unlikely to me.)

I'm not sure the argument is that the percentage who _hang out_ in newsgroups
and blog is different, anyway, but rather that looking at newsgroup activity
and blogs specifically selects _out_ many of the actual experts. This has
absolutely been my experience, and one of the most damaging assumptions I see
is that surveying blogs and twitter feeds is enough to get a complete
understanding of how people use a piece of software and what they think of it.

------
programminggeek
Everything popular is wrong.

