
Knowing 'How' - sahillavingia
http://37signals.com/svn/posts/2968-knowing-how
======
demallien
I think one of the problems that we have in learning 'how' is that it is very
easy to explain why you have chosen a particular solution, but it is not easy
to go through and explain why you _did not_ choose the near infinite number of
other solutions that were available for the task. It is this negative
knowledge that is so hard to communicate.

When I am training up junior programmers, I spend a lot of time explaining to
them why I have chosen certain patterns in the code that they should use.
Nevertheless, they invariably come back with 'yes, but why don't we do it this
other way?" and then I have to explain to them the problems that that solution
will lead to.

~~~
run4yourlives
Sorry, I'm a little confused at this statement. That's not a problem with the
approach, in fact it's exactly why such an approach should be preferred.

If anything you seem to be saying that you find being a mentor a p.i.t.a,
which is perfectly valid but not really a part of this conversation.

~~~
demallien
Nah, you've just misunderstood me - sorry if I wasn't very clear :) I agree
that being able to address an individual's concerns is very important, and I
certainly don't consider mentoring a pita. The original post just expressed
the idea that you can't teach everything through lectures and so forth, and I
was trying to provide a reason why that is so.

------
kenjackson
This article makes a false argument. It somehow seems to categorize
programming as being different than other disciplines, and argues that
programming needs "knowledge how". But this is really the case for virtually
everything. What isn't best learned by practice? That's how you best learn
math, plumbing, mowing the grass, writing, reading, circuit design, cooking,
research, shooting free throws, etc...

In fact, everyone here knows about the popular 10,000 hours of deliberate
practice rule. No one achieves competency through Matrix like osmosis -- not
even programmers.

And I think what the author is missing when he/she goes to these conferences
is that a conference session is a jumping off point. It's a place say, "I
didn't realize you could animate that with that technique." And then you go
home and try it and practice it. It's not about mastery at the conference, but
awareness of something worth pursuing more.

~~~
mileszs
I think you're modifying the argument yourself. I saw, at no point, where the
author argued that programming, design, etc. are _different_ from other
disciplines. It simply states that the author believes they are better learned
by doing than by reading (to over-simplify it). I don't see where the author
condemns any other method. I actually don't see any point at which you and the
author are in disagreement.

~~~
kenjackson
He says, "I’ve long argued that UI design, programming, and product strategy
should be learned apprentice-style with your hands and through experience, not
through school and pedagogy."

There's a clear implication that there are other things that should be learned
using some contrasting mechanism. And furthermore, the author, like many
others, misses completely that school isn't meant to be OTJ training. If it
were, more than half of your units wouldn't be 17th century female
philosophers from Rwanda. To the extent that you directly study programming in
school, it is almost all hands-on.

I am in agreement with the general thrust that people learn from experience.
My point is that he opens this up with a somewhat false argument that in
school you read things in a book and then you're done. That's not the case
even at the worst schools (well maybe the worst). And then goes on to suggest
that programming, UI design, and product strategy (whatever that is) is some
how different. Here my point was that virtually every vocation in the world
shares the trait that you need to practice the vocation. That's why there's
actual cars in autoshops.

What a structured vocational education tries to do is to move you from topic
to topic so that you cover the ground of a professional. This avoids the
problem where as an apprentice you become really good at fixing this one
particular bug, because that's the main job your mentor gets called out to do.
Of course, you can move to a system where there are required skills you must
exibit over your apprenticeship, but now you're just moving to structured
education in a new cloth.

~~~
ThomPete
That is unfortunately how many people learn. I have had my share of design
graduates coming to a job interview claiming that they are really best at the
conceptual stage. I have later found out that actually even design schools
have been focusing on that area.

We are left with a whole new breed of people who are craftsmen but being
taught to like they are academics.

------
dot-dot-dot
I tend to agree with this and don't buy the idea that college is necessary to
give you a broad overview of a discipline. Sure, if you learn only one method
of doing something, you are not exposing yourself to other ways. But whats to
stop you from finding out about these other ways. This information is easier
then ever to find. Surely the time for hand-me down curation (academia style)
is approaching its end.

------
huy
"When I go to conferences about design I see a lot of declarative knowledge."

It's because he went to design CONFERENCE, not design WORKSHOP. The nature of
conference speech is so much different from workshop.

~~~
rsinger9
The only differences between conference sessions and workshops are a) length
and b) number of people in the room. How you use an hour in front of a room of
people is up to you. Conference sessions don't have to be limited to bullets
on a slide or purely declarative knowledge.

~~~
davidw
I'd hate to plod through some example that I could work through better on my
own time.

At conferences I want to be exposed to new ideas that I can then go look up on
my own. Just to pick an example at random, as someone who has never used
Haskell, I'd much rather hear about "so, what the hell is a monad, really",
rather than, say, someone sitting there showing me how to write hello world in
Haskell.

------
riledhel
The author has a point, but the post itself is pretty light and the discussion
here seems to reflect that.

