LearningLearning
researchresearch
for hackersfor hackers
(hacker school w2015)(hacker school w2015)
school
hacking
ProductivelyProductively
LostLost
ure
doin
it
rite
CC-BY-SA from http://www.flickr.com/photos/ykjc9/4143179870
This talk's big ideas
1. A member of the hacking
community is a hacker.
2. Design learning like code.
3. The Chipotle Coding Menu
4. How learning works (we think)
1
A HackerA Hacker
is someoneis someone
that otherthat other
hackershackers
call a hacker.call a hacker.
Community ofCommunity of
practice.practice.
domaindomain
communitycommunity
practicepractice
In a cognitiveIn a cognitive
apprenticeship within aapprenticeship within a
community of practice...community of practice...
zone ofzone of
proximal developmentproximal development
legitimate peripherallegitimate peripheral
participationparticipation
Zone of proximal
development:
learning to bike
Zone of proximal
development:
learning to bike
1. watching
2. somebody pushes you
3.wheeeeeeeeeeeeeeeee
eeeeeee
Zone of proximal
development:
learning to program
Zone of proximal
development:
learning to program
1. watching
2. pairing, code review, etc
3.wheeeeeeeeeeeeeeeee
eeeeeee
MYTHS:
not skilled enougnot skilled enoug
not technical enougnot technical enoug
(perhaps later b(perhaps later b
surely not nowsurely not now
CC-BY http://www.flickr.com/photos/pasukaru76/5060447506
Legitimate PeripheralLegitimate Peripheral
ParticipationParticipation
Legitimate PeripheralLegitimate Peripheral
ParticipationParticipation
these are the jobsthese are the jobs
you're looking foryou're looking for
these are the jobsthese are the jobs
you're looking foryou're looking for
LPP Task CriteriaLPP Task Criteria
1. mission critical (no)
2. we have no time (YES)
3. nobody really cares (no)
Situative
bit.ly/pycon-eduhistorybit.ly/pycon-eduhistory
bit.ly/pycon-eduparadigmsbit.ly/pycon-eduparadigms
2
Design yourDesign your
learninglearning
the way youthe way you
design yourdesign your
code.code.
Example 1: This project is a text
editor, mail and news reader,
debugger, project planner,
calendar, and natural language
processing demo for simulating a
human.
Example 2: This project is a
distributed version control system
designed to handle everything from
small to very large projects with
speed and efficiency.
Example: test-driven
development
(shamelessly stolen from
http://docs.python.org/2/library/doctest.html)
Example: test-driven
development
(shamelessly stolen from
http://docs.python.org/2/library/doctest.html)
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]"""
result = 1
factor = 2
while factor <= n:
factor += 1
return result
Example: test-driven
development
(shamelessly stolen from
http://docs.python.org/2/library/doctest.html)
Example: test-driven
development
(shamelessly stolen from
http://docs.python.org/2/library/doctest.html)
def factorial(n):
"""Return the factorial of n, an exact integer >= 0.
>>> [factorial(n) for n in range(6)]
[1, 1, 2, 6, 24, 120]"""
result = 1
factor = 2
while factor <= n:
factor += 1
return result
What should it do?What should it do?
How will I know
if it's done?
How will I know
if it's done?
Okay, let's do it.Okay, let's do it.
Example: test-driven
learning
bit.ly/test-driven-learning
Example: test-driven
learning
bit.ly/test-driven-learning
def learn_factorial(n):
"""Be able to implement a factorial function with doctests.
>>> is_blog_post_with_git_commit_done()
True"""
read_tutorial(fa)
pair_program(Mary)
push(code, github)
ask_for_help(Julia, blogging)
ContentContent
AssessmentAssessment
PedagogyPedagogy
Content you care about
Motivation (Deci, Ryan)
Content you care about
Motivation (Deci, Ryan)
1. amotivation
2. external regulation
3. identified regulation
4. intrinsic motivation
autonomy
relatedness
competence
(thanks to Jon Stolk, Rob Martello, Mark Somerville,
and the Olin College I2E2 crew)
(thanks to Jon Stolk, Rob Martello, Mark Somerville,
and the Olin College I2E2 crew)
CC-BY http://www.flickr.com/photos/katrzyna/69324073
assessmentassessmentassessmentassessment
Formative: cookingFormative: cooking
Summative: servingSummative: serving
3The ChipotleThe Chipotle
Coding MenuCoding Menu
RelationshipRelationship
Product Diagnostic Collaborative
Confrontational
ContentContent
[Test Driven Learning goal goes here]
TechniqueTechnique
Modeling
Scaffolding
Coaching
Yes-Anding
Rubber-Ducking
ExtrasExtras
Learning style?
Motivation type?
Skill level?
4
How learningHow learning
worksworks
(as far as we(as far as we
know)know)
CC-BY-SA by woodleywonderworks (http://www.flickr.com/photos/wwworks/2985216277/)
novice
CC-BY-SA by eschipul (http://www.flickr.com/photos/eschipul/278768722/)
expert
Dreyfus Model of
Skill Acquisition
Dreyfus Model of
Skill Acquisition
Novice – Competent – Proficient – Expert
clarityclarity constraintconstraint
freedomfreedom frustrationfrustration
clarityclarity constraintconstraint
freedomfreedom frustrationfrustration
CC-BY-SA by ginnerobot (http://www.flickr.com/photos/ginnerobot/4487647471/)
CC-BY by NatalieMaynor (http://www.flickr.com/photos/nataliemaynor/2539937014/)
Why?Why?
Because Piaget.
Piaget In One SlidePiaget In One Slide
assimilation: adding another module
accommodation: REFACTOR
EVERYTHING
assimilation
---------accommodation------------------------
assimilation
Piaget + Dreyfus =
Spiral learning
Piaget + Dreyfus =
Spiral learning
Learning Over Time
(Fullan)
Learning Over Time
(Fullan)
Cognitive
Interleave (related stuff)
Separate (in time)
Struggle (like a muscle)
Interleave (related stuff)
Separate (in time)
Struggle (like a muscle)
How to learn deeply
Build habits by reflecting.
Attribution theory
(Dweck)
Attribution theory
(Dweck)
Fixed vs Growth mindsets
aka
Nature vs Nurture
FAIL #1: Assumption
of privilege
FAIL #1: Assumption
of privilege
If it's hard, something's wrong
with me
vs
If it's hard, something's wrong
with it
(I can fix that!)
I (think I) can
Self-efficacy (Bandura)
I (think I) can
Self-efficacy (Bandura)
1. doing it
2. seeing people (like
me) do it
3. social persuasion
4. your own body
(Bandura also did social learning, which is a lot of fun
– look it up!)
(Bandura also did social learning, which is a lot of fun
– look it up!)
Daphne's QuestionsDaphne's Questions
● What are you trying to do and how will you
tell that it’s working?
● What does this part do? What happens
when you take it out?
● What does this function do? What would
you use it for somewhere else? Where is it
called?
● Why are you taking this approach?
● Why are you working on this?
http://blackfemalecoders.tumblr.com/post/6360111126
1/on-becoming-a-confident-hacker
http://blackfemalecoders.tumblr.com/post/6360111126
1/on-becoming-a-confident-hacker
ure
doin
it
rite
CC-BY-SA from http://www.flickr.com/photos/ykjc9/4143179870
ProductivelyProductively
LostLost

Hacker School talk - Learning for Hackers