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