Friday, October 07, 2016
Making Badass Developers - Kathy Sierra (Serious Pony) keynote
ok more than one alright so imagine that you're at a party
oh they're just imagine that you're at a party with a bunch of web developers and
a few normal people and somebody says this and by the way these monitors down
here aren't working so forgive me for looking at what's happening
so somebody says that and then they say that and then they say this which you've
all heard right how hard can it be
so imagine what you are thinking at this party and you've all heard this so it
goes okay well then what do you have to know and this is where it gets
interesting because of course every single person at this event whether
there are web developer or not has an opinion about this
so they all start talking and they all start giving their ideas about what you
really have to know when you absolutely cannot call yourself a web developer if
you don't have these things whatever it is but they're all starting to argue
about it because they don't all agree and i'm not making fun of node by the
way just a little bit
um so
they're starts to be this argument among even this very small group of people
so if we can't agree on what you have to know that we will ask the experts
because who else is going to tell us and so this is what they say
you absolutely cannot call yourself a developer if you don't at least know all
of those things right now so um you have to be a rock star as every ad will tell
you you have to be a ninja you have to be hacker have to be a hacker ninja
and the internet is wrong spoiler alert sound so if you ask 10,000 people you
get 10,000 different opinions on what you have to know to be a web developer
at any given time
so this should be comforting because it means there is no one answer at all but
the people who say these things especially the people on Hacker News
they know they are firm in their commitment but they don't actually know
they just think they do so what do you have to know that is the wrong question
so a better question is you know you are going to have to learn stuff so how fast
can you do that how much and how fast can you do that and still survive
well it starts here there are three kinds of developers human
there is of course the unicorn and there's a humanoid
and the problem is humanoids have consistently available always up
cognitive resources perfect memory etc etc humans their cognitive resources are
so scarce and precious and limited
I could talk about unicorns because you don't exist so you are
you've been mistaken for a humanoid everything every almost every ninety
nine point nine percent because someone's going to go not all open
source documentation treats me like this
um everything treats you like a humanoid probably your boss your employer's your
clients school
everything you've ever done every book that's helped you learn to program
including potentially mind have treated you like a humanoid and not a human
so a little refresher on cognitive resources because that's the perspective
that we're going to use because it is the only he you have to actually
learning really quickly and really well
so most of you are probably familiar with this but just a little refresher
so this was one of the experiments that really started at all
so imagine that I split the room and this half of the room
I give you an a little memory test and it only has two digits
you just have to memorize two digits pretty easy this whole side of the room
seven digits not seven numbers just seven digits pretty easy so I give you
got test give you that test then you're all done and the researcher says can you
come down the hall
you know for further processing the experiment is over but of course it's
never over and then they say oh by the way would you like a snack and you're
offered a fruit or cake so I think you probably all know what happens
this side of the room you guys chose a lot more cake
these are the really slim fruit eater so the difference was just five extra
digits
that's how much it took so again at first they thought well it's just about
the glucose in the brain which has something to do with that but really
what they learned is that it's all one tank cognitive processing for solving
problems for thinking doing the hard stuff and willpower all the same tank
one pool of resources
burn one you burn the other and it works with dogs -
so for example this is actually my dog it they did this experiment with
different breeds of dogs take a dog and have it sit just sit obediently just to
sit doesn't do anything but sit take another dog and it has to go in the
crate for 10 minutes at the end of ten minutes
they release the dogs to play one of those treat puzzles which they had
cruelly rig so it actually couldn't ever be solved by the dog and then they
waited to see how long the dogs would work on that puzzle
so the dogs that had to sit in the crate worked on that puzzle twice as long as
the dogs that just had to sit obediently so think about that if you have a dog
right
your dog just sitting there is burning through self control cognitive resources
and then can't think and we're sitting in the crate required no use of
cognitive resources the dog was able to get in self-control the dog was able to
use them all to solve the puzzle
so think about this if you are doing anything in your own products or
services or anything that you make for other people think
am i doing things that are unnecessarily burning people's cognitive resources and
by doing things that will make them too
mousse cake and often we are and so this is a problem
so the goal is to reduce cognitive leaks all the time and to always remember it
is one tank and it is so scarce and so easily depleted
so again here's how it works right even if you're doing something that you like
to do even if you're doing something it's not about doing something that you
hate about actually just using your brain to think so but if this happens
right
then you have less ability to resist the drive-through on the way home and it
works in Reverse
you've all had kind of your boss say that you can just do that today right
now
what you're thinking is something like this but what you actually say is sure
no problem
now if you say sure no problem instead of what you really think you just burned
a lot more cognitive resources which is why when you think about it it really
makes no sense for people to hold all the kinds of meetings they hold because
every meeting that you attend most of the time is bleeding your cognitive
resources dry so when you go back and try to work right you can't function
so you you tell the client sure no problem when you're thinking gosh if you
can only die in a fire
then you can't play chess that night this is how it works and there are a
gazillion studies that support this
it's all one tank but it's not just these big things right there is death by
a cognate of a thousand cognitive micro leaks all the tiny little things
those could be tiny little things in an interface just tiny little things that
you have to deal with
so here's an example anyone have an apple TV remote
right anyone here not lost it in the cushions
so this thing is so tiny right so this is what people end up doing
they do it so much that this is what I entered as the search string people
taping their apple remote to bigger things because that's what I had to do
and there are so many there's even a Kickstarter right so it's not about the
lost time looking for the remote
it's the it's the tiny little cognitive resources all the time and so people try
to find these solutions so that they don't have to waste cognitive resources
on them but those things add up to a huge pool
so think about all the little things they matter so what we know is that
where there is high expertise
there is a great deal of cognitive resource management for efficiency when
learning and efficiency and effectiveness when actually doing the
thing so that's why we're going to look at is how to get way better way faster
from a cognitive resources perspective because without that nothing you do will
matter
so this is the framework we're going to look at right mention you have three
boards with post-it notes
one is for the things that you can't do but we'll need to the next is for things
that you can do with effort
these are the things that are burning cognitive resources and then the last is
for things that have moved into the automatic mastered possibly unconscious
stage
so the goal is to always be moving things across that board but they're a
bunch of problems we're gonna look real quick at these three main problems and
how to solve them
so the first one is you just don't get better when people don't make progress
the main reason usually comes down to this pile up on be
there's just too many things draining cognitive resources
now you just saw that experiment with the two in the 70 just five extra digits
overwhelmed your cognitive resources it takes so little and here you are trying
to learn so many things so the pileup on B is there too many cognitive resources
being drained to ever effectively nail something and get it over to the sea
pile so problem number two is the intermediate lose this is when someone
is making progress and then they just plateau something happens and they just
can't seem to get any better
the main reason for that is usually that something has made it to see but it's
not high quality or it's not supporting them or maybe it's outdated and now it's
holding them back and it once worked
whatever it is but now it may even be unconscious and if not unconscious
it's something that doesn't take any cognitive resources which was the point
so nobody wants to pull it back and refine it
so we'll look at that and problem number three is it just takes too long
we don't have that kind of time not when you know Laura and read it and stack
overflow and hacker news is telling us everything we need to learn
so we have to fix those things to fix pileup on be half-assed on see these are
actually relatively simple to fix especially pileup on be this would
change your life if you really started doing it like today
um the too slow we're going to look at that because that's the one where all
the magic happens
so pileup on be we need to fix that
because we have a bad balance too many things taking cognitive resources so you
can't just ever finally nail something and get it off the kind of resource
plate
so there are a couple of things you can do there's the obvious one but this is
not always easy to do especially when other people are driving what you're
supposed to be learning is you just keep more stuff on a you don't try to learn
it right you don't have to learn the whole API right now
you can do it in pieces but the main thing we can do
and this is what you know 50 years of research on expertise development has
told us split these things into small subtasks sub skills and take those small
sub skills to see and then suddenly you become a lot more effective and
efficient that's how you move through getting better now how do you know what
size of a subscale actually is going to help make that process happen so and
this is the thing to remember half the skills to half-ass kill the way that you
can tell this is one way you can tell there are many ways this is one way that
is a really simple way is if you can take a skill from you can't do it
- master like maybe ninety five percent of the time that you try you get it
right within
three sessions and each practice session it within one to three sessions and each
session is no more than 45 to 90 minutes if you can't if you haven't done if you
haven't nailed this thing you just got it in that amount of time
the thing is too big so you need a finer-grained feel so that you can just
keep moving them along that's how progress happens it but you can see it's
not what we normally try to do so here's a bigger problem that this helps fix the
scariest thing about practicing with a bunch of stuff on be a bunch of stuff
that you just keep working on it keep working on it
keep working on it haven't really nailed it you know you're getting better but
you're still crappy out it is that practice makes permanent so whatever you
practice the longer you practice being crappy at it or b or even just being a
beginner the better you get at staying a beginner or mediocre so it's really
important to take fewer things and very quickly passed through that stage and
jump up to intermediate as quickly as you can
now half ass feels on see this one on the biggest problem is that we don't
ever want to revisit those things and when they study very high expertise they
find people who are continually re checking the things they've already
automated and mastered to see does this needs to be refined does this still
serve me just that you know is this causing me to now hit a limit and I
can't go any further
so consider what those things are but think about what's on your see bored
right now and these can be big things little things you do things you know
right
um I'm just going to admit this I've never admitted this before but um I've
been programming almost 30 years and I just started using an ide two weeks ago
I have been well I considered sublime that was my big upgrade to an ID
I've been using text at the command line so I find IntelliJ yes and after about
two days I'm like I'm killing myself of how many cognitive resources i will
never recover
not doing this but it was just easier right i just did what I did
so programming paradigm right now we're in the ofp thing coding style semicolons
typing whatever it might be
how you hold a stylist for graphic designer all of those things could be
anything but think about bringing it back now that takes cognitive resources
to do it but this is the most effective use of your cognitive resources if you
want to keep getting better so but if it's too slow
how does this help you you can be doing everything right moving things across
the board but it's too slow and for you folks
it probably doesn't get more challenging for how fast you have to learn new
things been for you the people in this room
so how like I'm telling you something you don't know so we need to bypass be
where we can because you can go straight from can't do it to suddenly you just
magically can
how awesome is that and we can and we also want to speed up a to b to c so it
all starts here this is the most extreme example which i'm sure most of you are
familiar with but just for a refresher the most extreme example of something
that bypasses see where you go from I can't do it - I'm an absolute expert and
I have no idea i got there so chicken sexing determining the gender of the
baby chick
apparently there are certain kinds of chickens where that it is virtually
impossible to perceive it
now obviously it's not impossible for the brain but it's impossible for the
people who are actually trying to figure it out but people become really really
good at it
so in Japan they took a group of people and said these are the master chick
sexors we will have them teach other chicks Xers and so they tried and they
couldn't because either they didn't know what rules they were actually using or
how they were actually doing it or they were just guessing
so they couldn't teach people so instead they did something else and this is
where it all happens
this is the this is the template even though this is very simplified it scales
up two things much more complex they took the people who are going to learn
to be chicks Xers and they just here's the bend of chicks and they just pick up
a chick and say I don't know
female and the chicks exer expert would say
yes no yes no and the person was just doing it randomly just sorting them i
have no idea
yeah male female over time their responses were not random
they got better and better and better and better and given enough time became
experts without ever knowing how they suddenly got better so again that's the
most extreme example
another one was the world war two civilian plane spotters in England there
are people who got to be really good at a crucial skill which is knowing is that
incoming plane a bomber or is that one of our own
so again they tried to have those expert plane spotters teach others couldn't do
it they didn't actually know what rules they were using for every time they said
they had a set of rules
something about that there would be you know exceptions to those rules that made
it all fall apart so they did the same thing with the chicks Xers they just had
the person who wanted to learn next to the expert and they created new expert
plane spotters that way
brain to do things all the time of the best things the brain does have nothing
to do with us we don't get to have a say and this is what drives us crazy about
people who really do have a lot of expertise when you say things like how
did you know how do you do that how do you figure that out right they just they
don't know they just know and all of you have things that you have deep expertise
at where this is true for you
the problem is we often think we know even when we don't
so those were simple tasks right the chicken sexing and the plane spotting
well extremely difficult but very simple in terms of identification what about
more elaborate things because we're talking about development
so here's an experiment that was done with NASA and some people from UCLA
pretty spectacular
that's kind of shocking how few people actually really looked at this
they took these are the many pilots in here
so this is the six pack the instrument flight instruments they took non-pilots
not beginning pilots people who have never actually even thought about flying
a plane
and they put them through this training program lasted about two hours
very special training program very much like the chick sexing right
this is what happened they outscored the seasoned pilots with a thousand two
thousand hours of flight time no one pilots on after receipt and speed of
knowing what those instruments meant in terms of the plane so that's a really
dramatic
they didn't even have any teaching at all they went straight from a to c and
then they did it again with an aviation I'm a navigation task same thing
this is order of magnitude right now could they did they leave and fly plane
no but they had just learned to really crucial skills that I no longer have to
drain cognitive resources and oh yes there really awesome at it because it's
a really life-saving skill to so they just jumped way up the curve
so you can't learn everything that way but you can learn so many more things
than people believe so
it's not use this is actually called perceptual learning so that's the reason
it's not used is because for so long really the sixth easily is when a lot of
this 96 is a lot of this research started and its robust is they believed
that it was just about sensory perception they just thought it was
about what the eyes saw or heard that or even kinesthetic they didn't realize
that the brain was pattern matching also on deep underlying structures and
patterns and rules that it wasn't just about sensory perception
so why we're not using this is crazy
so our brains are great at pattern matching if we get out of the way but
they don't tell us that they're doing it which is why you have these experts who
have absolutely no idea how they do certain things and you know you you may
have encountered someone or you made yourself look at some code for just a
second
without really studying it and go that code smells bad right we use words like
that smells bad
you may not yet know why but you're certain it does so that's an example of
your brain has pattern man
touched in a way that you aren't even cognitively aware of yet although you
could dig into the code and find out why
now this is the answer to how to make it happen is high quality high quantity
examples and this is what we don't do it has to be very high quantity of all high
quality examples and we don't do that we see one example we see two examples we
see three examples in a book or a course they're on a website right to actually
get that order of magnitude jump it takes about 200 to 300 exposures in a
very compressed period of time that allows the brain to sort signal from
noise so that's where the magic happens and we can do this as a community and
I've been trying to look and it is really hard to find really good quality
examples in such high numbers but they can be very small right teaching a very
small subset or i should say teaching letting the brain figure out the pattern
but to sort signal from noise
the example set has to be huge otherwise the brain we see this the brain looks at
one example and thanks
well maybe that's important too and it mistakes surface details for the core
underlying pattern
so the answer is we have to care about each other's cognitive resources
so right now I just want you to look around at the people next to you right
now I'm gonna sit here until you do
can't leave to you look around people next to you and realize that they are
not humanoids
they're not unicorns they're humans and just visualize them bleeding competition
for resources and think about how you can help them and they can help you and
being at this event is really great way to do that and the next time somebody
says this to you write the only reasonable response is that's adorable
and I just want to honor that you are all humans and your your cognitive
resources are scarce and precious and thank you so much for spending some of
them on me thank you