
The Wetware Crisis: TEPES (2008) - mpweiher
http://brucefwebster.com/2008/01/10/the-wetware-crisis-tepes/
======
aidenn0
While it is true that it's hard to find very talented people, it seems to me
that we only require very talented (as opposed to say "above average") people
because of defects in pedagogy and engineering.

Another way of saying this

1: the number of software problems that I believe inherently require someone
in the top 1% raw brain power is much lower than we think.

2: One major reason why #1 is true is that we are bad a teaching people to
program

3: Another reason why #1 is true is that we are bad at managing the complexity
of our systems.

So while the short term solution to #1 may be to only hire the best of the
best, I think the long term solution is to address #2 and #3. I will further
assert that there is probably a lot of low-hanging fruit for #2 and #3 though
#3 has definitely improved a lot over my career.

I am not at all an expert on pedagogy, but I have definitely noticed learning
programmers being completely baffled by things that I can teach them in an
hour or two (it's obvious that having experienced software engineers tutor
learning programmers is not a reasonable solution, and it's a completely non-
interesting result that 1-on-1 tutoring is more effective than classroom
learning) so I have some reason to think there may be improvements made there;
even my 1-on-1 tutoring has greatly improved with help from my sister who is a
very skilled instructor in a non-programming related field.

~~~
eximius
> it's obvious that having experienced software engineers tutor learning
> programmers is not a reasonable solution, and it's a completely non-
> interesting result that 1-on-1 tutoring is more effective than classroom
> learning

For the record, it's not obvious. Many people have suggested an apprenticeship
system for software engineers would be an improvement.

I'm not sure it's the system I'd choose, but it isn't obviously bad to me.

~~~
mercer
I believe programming is one of those things where 1) a lot of
knowledge/ability can be transferred in a tutoring setting, and 2) the worth
of this is high (considering the cost/benefit of good programmers).

While I find it hard to properly explain this, my experience is that this is
not as 'obvious' for many kinds of jobs. Off the cuff I'd say it has something
to do with the relatively insular/individualistic nature of programming
(although I'd say this applies even to larger entities like a company), as
well as the general 'craftsman' feeling I get from how my job actually feels.

Perhaps tooling also plays a big role. I'd say a sizeable chunk of my
improvement when it comes to doing my job fast and well consists of using the
right tools. When I sit down with other programmers, I'm often amazed by how
much time they waste (and I used to waste) using suboptimal 'tooling'. These
are things that are often difficult to learn from tutorials or classes.

Regardless, if I were to have junior programmers under my wing, I'd probably
try to make sure there's some degree of tutoring going on, not just for the
benefit of the juniors, but because I think it can really make a huge
difference in their value to me.

------
amelius
“The best minds of my generation are thinking about how to make people click
ads.”

–Jeff Hammerbacher

