Download - Coding In Public
![Page 1: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/1.jpg)
Coding In Public
Alan Stevens
or If You’re Gonna’ Suck, Do It With Gusto!
![Page 2: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/2.jpg)
WHO IS ALAN STEVENS?
• Microsoft Most Valuable Professional• ASP Insider• Occasional Blogger
http://netcave.org• An Enthusiast NOT an expert!
![Page 3: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/3.jpg)
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
![Page 4: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/4.jpg)
DevLink
August 13-15, 2009 Nashville, TNwww.devlink.net
![Page 5: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/5.jpg)
I am a failed educator.
![Page 6: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/6.jpg)
“I never stopped trying to become qualified for the job.”
Darwin Smith, CEO of Kimberly Clark
![Page 7: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/7.jpg)
Dreyfus Stages of Skill Acquisition
1. Novice2. Advanced Beginner3. Competent4. Proficient5. Expert
![Page 8: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/8.jpg)
Novice
• Rigid adherence to taught rules or plans• Little situational perception• No discretionary judgment
![Page 9: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/9.jpg)
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
![Page 10: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/10.jpg)
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
![Page 11: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/11.jpg)
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
![Page 12: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/12.jpg)
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
![Page 13: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/13.jpg)
Where We Stand
Novice
Advanced Beginner
Competent
Proficient
Expert
Source: Hackos & Stevens, 1997 via the Pragmatic Programmers
![Page 14: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/14.jpg)
"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
![Page 15: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/15.jpg)
You can write COBOL in any language.
![Page 16: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/16.jpg)
Everybody works, but not everybody improves.
WHY?
![Page 17: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/17.jpg)
The Mastery Curve
![Page 18: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/18.jpg)
The Dabbler
![Page 19: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/19.jpg)
The Obsessive
![Page 20: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/20.jpg)
The “Hacker”
![Page 21: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/21.jpg)
After moving up a level, things always get worse.
![Page 22: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/22.jpg)
Zones of ComfortComfort ZoneLearning ZonePanic Zone
![Page 23: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/23.jpg)
Comfort Zone
People stay hereMinds often closed to learning
Very little change
![Page 24: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/24.jpg)
Learning Zone
Lots of UncertaintyFeels uncomfortable
and challengingLots of learning opportunities
![Page 25: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/25.jpg)
Panic Zone
People close upThey freeze
They don’t learnVery little focus on change and improvement –
it’s all about survival
![Page 26: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/26.jpg)
The Fast Horse?
![Page 27: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/27.jpg)
What is expertise?
• Performance consistently superior to peers• Produces concrete results• Can be replicated
![Page 28: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/28.jpg)
Recipe For Greatness
1.Intensive practice2.Devoted teachers3.Enthusiastic support
![Page 29: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/29.jpg)
Deliberate Practice is Designed
![Page 30: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/30.jpg)
Deliberate practice
focuses on tasks beyond your current
level of competence and comfort.
![Page 31: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/31.jpg)
It is only by working at what you can’t do that you become an expert
![Page 32: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/32.jpg)
Be honest about areas for improvement
![Page 33: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/33.jpg)
Practice without attention to reflection and form will not yield the same results.
![Page 34: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/34.jpg)
Deliberate practice is not “fun”, but it is rewarding.
![Page 35: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/35.jpg)
Flow requires challenge or boredom results.
![Page 36: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/36.jpg)
“If you practice with your fingers, no amount is enough. If you practice with your head, two hours is plenty.”
Violin Professor Leopold Auer
![Page 37: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/37.jpg)
10,000 hours to mastery
• 4-6-10• 4 hours/day• 6 days/week• For 10 years!
![Page 38: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/38.jpg)
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
![Page 39: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/39.jpg)
Provide a supportive environment
![Page 40: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/40.jpg)
Be willing to be a mentor
![Page 41: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/41.jpg)
Be willing to receive constructive,
unsentimental feedback
![Page 42: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/42.jpg)
Remember the Kobayashi Maru
![Page 43: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/43.jpg)
![Page 44: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/44.jpg)
Simulations and Case Studies
• Code Kata• Code Dojo• Bitslingers• “Code Sparring”
![Page 45: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/45.jpg)
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
![Page 46: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/46.jpg)
![Page 47: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/47.jpg)
![Page 48: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/48.jpg)
![Page 49: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/49.jpg)
Papers & Articles
• Expertise and Skilled Performance• The Making of an Expert• What It Takes to be Great
![Page 50: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/50.jpg)
In order to become an expert, you must become eccentric.
![Page 51: Coding In Public](https://reader031.vdocument.in/reader031/viewer/2022013100/54bdf2204a795981428b4629/html5/thumbnails/51.jpg)
Those who know do not speak;Those who speak do not know.
Tao Te Ching, Chapter 56