coding in public
DESCRIPTION
TRANSCRIPT
Coding In Public
Alan Stevens
or If You’re Gonna’ Suck, Do It With Gusto!
WHO IS ALAN STEVENS?
• Microsoft Most Valuable Professional• ASP Insider• Occasional Blogger
http://netcave.org• An Enthusiast NOT an expert!
June 26th – 27th 2009
• Knoxville, TN• Regional Speakers / Open
Spaces• .NET, Java, Ruby, Erlang, more• Call for speakers – March 31– 3 & 6 hour sessions on Friday– 1 hour sessions on Saturday
• http://CodeStock.org• http://twitter.com/CodeStock
DevLink
August 13-15, 2009 Nashville, TNwww.devlink.net
I am a failed educator.
“I never stopped trying to become qualified for the job.”
Darwin Smith, CEO of Kimberly Clark
Dreyfus Stages of Skill Acquisition
1. Novice2. Advanced Beginner3. Competent4. Proficient5. Expert
Novice
• Rigid adherence to taught rules or plans• Little situational perception• No discretionary judgment
Advanced Beginner
• Guidelines for action based on attributes or aspects
• Situational perception is still limited• All attributes and aspects are treated
separately and given equal importance
Competent
• Sees action at least partially in terms of longer-term goals
• Conscious, deliberate planning• Standardized and routinized procedures• Plan guides performance as situation evolves
Proficient
• Sees situation holistically rather than in terms of aspects
• Sees what is most important in a situation• Perceives deviations from the normal pattern• Uses maxims, whose meanings vary according
to the situation, for guidance• Situational factors guide performance as
situation evolves
Expert
• No longer relies on rules, guidelines, or maxims
• Intuitive grasp of situations based on deep tacit understanding
• Intuitive recognition of appropriate decision or action
• Analytic approaches used only in novel situations or when problems occur
Where We Stand
Novice
Advanced Beginner
Competent
Proficient
Expert
Source: Hackos & Stevens, 1997 via the Pragmatic Programmers
"The vast majority of all users remain advanced beginners, performing the tasks they need and learning new tasks as the need arises, but never acquiring a more broad-based, conceptual understanding of the task environment"
Hackos & Stevens, 1997, p. 36
You can write COBOL in any language.
Everybody works, but not everybody improves.
WHY?
The Mastery Curve
The Dabbler
The Obsessive
The “Hacker”
After moving up a level, things always get worse.
Zones of ComfortComfort ZoneLearning ZonePanic Zone
Comfort Zone
People stay hereMinds often closed to learning
Very little change
Learning Zone
Lots of UncertaintyFeels uncomfortable
and challengingLots of learning opportunities
Panic Zone
People close upThey freeze
They don’t learnVery little focus on change and improvement –
it’s all about survival
The Fast Horse?
What is expertise?
• Performance consistently superior to peers• Produces concrete results• Can be replicated
Recipe For Greatness
1.Intensive practice2.Devoted teachers3.Enthusiastic support
Deliberate Practice is Designed
Deliberate practice
focuses on tasks beyond your current
level of competence and comfort.
It is only by working at what you can’t do that you become an expert
Be honest about areas for improvement
Practice without attention to reflection and form will not yield the same results.
Deliberate practice is not “fun”, but it is rewarding.
Flow requires challenge or boredom results.
“If you practice with your fingers, no amount is enough. If you practice with your head, two hours is plenty.”
Violin Professor Leopold Auer
10,000 hours to mastery
• 4-6-10• 4 hours/day• 6 days/week• For 10 years!
How can we encourage greatness(or at least improvement)?
• Be supportive of efforts to improve– Allow one another to suck (with gusto!)
• Be a mentor• Catalog simulations and case studies
Provide a supportive environment
Be willing to be a mentor
Be willing to receive constructive,
unsentimental feedback
Remember the Kobayashi Maru
Simulations and Case Studies
• Code Kata• Code Dojo• Bitslingers• “Code Sparring”
Greatness is not a function of circumstances. Greatness, as it turns out, is largely a matter of conscious choice.
Jim Collins in Good to Great
Papers & Articles
• Expertise and Skilled Performance• The Making of an Expert• What It Takes to be Great
In order to become an expert, you must become eccentric.
Those who know do not speak;Those who speak do not know.
Tao Te Ching, Chapter 56