SlideShare a Scribd company logo
1 of 85
accu 2013
                                                         bristol, april




becoming                                             a
better programmer




  PETE GOODLIFFE pete@goodliffe.net @petegoodliffe
Becoming a Better Programmer (2013)
@petegoodliffe
pete@goodliffe.net
goodliffe.blogspot.com
www.goodliffe.net




      PE TE G OODL
      PROGRAMME
                   IFFE
               R / AUTHOR / COLUMN IST / TEACHER ★ CON SCIENTIOUS CODER
Becoming a Better Programmer (2013)
you
this
We all want to be better programmers, right?

This entertaining session will help you to work out
                       how.

With the help of a number of special guests, we will
 provide a series of practical, simple methods to
become a better programmer. We'll gain some real
        insights from respected developers.

There will be plenty of hand-waving and jumping, a
         little philosophy, and some twists.

         Be the best programmer you can!
We all want to be better programmers, right?

This entertaining session will help you to work out
                       how.

With the help of a number of special guests, we will
 provide a series of practical, simple methods to
become a better programmer. We'll gain some real
        insights from respected developers.

There will be plenty of hand-waving and jumping, a
         little philosophy, and some twists.

         Be the best programmer you can!
the plan
people &             wrap up
  intro
(set the scene)              stuff               (what have we
                                                   learnt?)
                           (exploring themes)




            you are here
                                                       you leave
                                                    entertained and
                                                       educated
Becoming a Better Programmer (2013)
becoming a
better programmer
?
what does it mean?
 better than what?
 how do we do it?
does it matter?
yes
yes
yes!
why?
Becoming a Better Programmer (2013)
but why be better?
financial
build // rework // repurpose // maintain
professionalism / craft
personal pride
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)
what does better look like?
better than what?
you are now // programmers around you // industry average
super awesome




                you?


liability
super awesome




                you?


liability
super awesome
            skill b
skill a
                           skill c




                                you?
liability
skills          design
attitudes      communication
   technologies
                inter-personal

                      politics
   techniques
Becoming a Better Programmer (2013)
a long learning process
useful models
FOUR
     THE
           LEVELS
            OF
            ★

INCOMPETENCE
four levels of (in)competence


                     compe     tence
   Unc onscious in
                                   ten  ce
                            om  pe
                    us inc
          Co ns cio                             ce
                                       p eten
                                  co m                       en ce
                          c io us                       p et
                    Co ns                          c om
                                             io us
                                        n sc
                                   Un co
THE


DREYFUS
MODEL SKILLS
     OF
ACQUISITION
Becoming a Better Programmer (2013)
expert
    proficient
   competent
advanced beginner
     novice
expert              // authority, interlinked with other skills, intuition



proficient           // corrects previous errors, learn from others, interprets maxims
                       has TACIT knowledge


competent           // mental model, plan routes, solves unknown problems



advanced beginner   // breaks from rules, gets stuck, can get answers, can’t filter



novice              // rule-centric
super awesome




    liability



where are you aiming?
         (competent is good)
comparisons are dangerous
who do you want to be?
         (today)
Becoming a Better Programmer (2013)
how do you get better?
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)
10,000
10,000               expe
                             rt




8,000     s ho w
                   s p ot
                            entia
                                 l

 4,000   also-
               ran
10,000
 = 10 years
 * 3 hours
10,000 hours of what?
Becoming a Better Programmer (2013)
be mindful that you
  want to improve
determine what’s important to you?

          work-required skills
   skills for your personal pleasure
?


know where you are now
?




know where you want to be
work out how you’ll get there
people &                   wrap up
  intro
(set the scene)     stuff                     (what have we
                                                learnt?)
                  (exploring themes)




                                you are now here
Becoming a Better Programmer (2013)
ALL★


                    U?
                         CAST
Steve Love                    Chris Oldwood
Frances Buontempo           Anthony Williams
Didier Verna                     Matt Turner
Phil Nash                Anna-Jayne Metcalfe
Seb Rose                            Greg Law
AS YOU LISTEN...


            U?


                    does this apply to me
    which is most appropriate to a novice?
which is most appropriate to a competent?
matt turner
 become a manager!
     @mt_inside
steve love
  automation
  @IAmSteveLove
didier verna
the music of programming
       @didierverna
frances “dr love” buontempo
          good feedback
           @fbuontempo
phil nash
the art of balancing forces
        @phil_nash
seb rose
developing using examples
    deliberate practice
  talking to your testers
         @sebrose
greg law
realism // the motorbike rider
  <strangely behind the times>
chris oldwood
  the social programmer
      @chrisoldwood
anthony williams
    do things mindfully
        @a_williams
anna-jayne metcalfe
     if it ain’t broken do fix it
            @annajayne
U

  anyone else?
things and stuff and stuff and things
       @audience//participation
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)
Becoming a Better Programmer (2013)
QA
                  ★★★




                    &
                  ★★★


Pete Goodliffe @petegoodliffe pete@goodliffe.net
@petegoodliffe
pete@goodliffe.net
goodliffe.blogspot.com
www.goodliffe.net
BUMPH DULL, but important                            ★

THIS DOCUMENT WAS CREATED BY PETE GOODLIFFE
    IT IS COPYRIGHT // © 2013 PETE GOODLIFFE
>> ALL RIGHTS RESERVED
>> ALL THOUGHTS ARE OWNED
>> IMAGE CREDITS FOLLOW
THANK YOU FOR READING // I HOPE IT WAS USEFUL

                                      Version 1.0 2013-03-05
IMAGE CREDITS                                                                       ★
ENGAGED http://stockarch.com/images/abstract/concept/engaged-toilet-2776
ANNOYED http://www.sxc.hu/photo/1327383
CAR http://www.sxc.hu/photo/1351165
EXIT http://www.sxc.hu/photo/9237
TEETH http://www.morguefile.com/archive/display/46415
LABCOAT http://www.flickr.com/photos/cannongod/3749758602/sizes/z/in/photostream/
PEN http://www.sxc.hu/photo/1380083
BUS http://www.sxc.hu/photo/1363811
DILBERT http://www.dilbert.com/strips/comic/2013-03-21/ (used without permission)
GUAGE http://www.sxc.hu/photo/1382510
TWIST http://www.sxc.hu/photo/1026751
SCIENTIST http://commons.wikimedia.org/wiki/File:Scientist.jpg
HIPSTER http://hidari-pnk.deviantart.com/art/HIPSTER-347873661
POINTY-HAIRED BOSS http://en.wikipedia.org/wiki/File:Pointy-Haired_Boss.jpg
THE FONZ http://thegoodgreatsby.com/2011/04/19/happy-birthday-apollo-fonzarelli/
WINE http://www.sxc.hu/photo/1337577
CHEESE http://www.sxc.hu/photo/750248
EWE http://www.sxc.hu/photo/1174028
the dreyfus model     ★


       expert
      proficient
     competent
  advanced beginner
       novice
novice
have no k nowledge (yet)
      want results
          (fast)

   hav e no experience
        need rules
     can ’t judge rules
a dvanced beginner
        s ome experience
          some learngieng
             explicit knowled


 can break free fro  m rules a little

       will g et quickly stuck
     know where t  o get answers

  c an't focus out ir relevant details
competent
       menta l model made
       associa tions formed

 und erstand relative importance of
               aspects

  can  approach unkno  wn problems          thi
                                         go s is
                                            od
                                                pla a
        ethodical routes into problems     to
                                              be ce
plans m
proficient
       be yond competency

      understand big picture

frustrated by n  ovice simplifications

     can corr  ect previous errors
       & re flect on experiences
                maxims

       focus on important issues

             tacit knowledge
expert
  the pinnacle
th ere are very few
   have authority
   interlink skills
  can  teach others
    have intuition
  natura lly see an answer

More Related Content

What's hot

Design Thinking by Mark Uraine
Design Thinking by Mark UraineDesign Thinking by Mark Uraine
Design Thinking by Mark UraineMark Uraine
 
Debunking The Old Career Rules
Debunking The Old Career RulesDebunking The Old Career Rules
Debunking The Old Career RulesJerilyn Wagner
 
Findings from UX London
Findings from UX LondonFindings from UX London
Findings from UX LondonNeil Dawson
 
Anyone can be a ux designer: Not everyone IS one.
Anyone can be a ux designer: Not everyone IS one.Anyone can be a ux designer: Not everyone IS one.
Anyone can be a ux designer: Not everyone IS one.Dave Malouf
 
Big Ideas, Focused Action, Problem Solved
Big Ideas, Focused Action, Problem SolvedBig Ideas, Focused Action, Problem Solved
Big Ideas, Focused Action, Problem SolvedTamara Christensen
 
Creativity and Problem Solving
Creativity and Problem SolvingCreativity and Problem Solving
Creativity and Problem SolvingVincent McGregor
 
We’ve done all this research, now what?
We’ve done all this research, now what?We’ve done all this research, now what?
We’ve done all this research, now what?Steve Portigal
 
Collected Wisdom
Collected WisdomCollected Wisdom
Collected WisdomNitin Bhide
 
Championing Contextual Research in Your Organization
Championing Contextual Research in Your OrganizationChampioning Contextual Research in Your Organization
Championing Contextual Research in Your OrganizationSteve Portigal
 
The Power of Retrospection
The Power of RetrospectionThe Power of Retrospection
The Power of RetrospectionNaresh Jain
 
16 from 16: THE BEST BOOKS OF 2016 SUMMARISED
16 from 16: THE BEST BOOKS OF 2016 SUMMARISED16 from 16: THE BEST BOOKS OF 2016 SUMMARISED
16 from 16: THE BEST BOOKS OF 2016 SUMMARISEDKevin Duncan
 
Virtual Teams and Liberating Structures Blended Session at #SFAddis
Virtual Teams and Liberating Structures Blended Session at #SFAddisVirtual Teams and Liberating Structures Blended Session at #SFAddis
Virtual Teams and Liberating Structures Blended Session at #SFAddisNancy Wright White
 
Innovate! - How to Walk Backwards
Innovate! - How to Walk BackwardsInnovate! - How to Walk Backwards
Innovate! - How to Walk Backwardsjpalley
 
sdsdsdsfdsfsfsdfsd
sdsdsdsfdsfsfsdfsdsdsdsdsfdsfsfsdfsd
sdsdsdsfdsfsfsdfsdAvain Raj
 
13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED
13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED
13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZEDKevin Duncan
 
PBL Breakout - deeper dive on PBL workflows
PBL Breakout - deeper dive on PBL workflowsPBL Breakout - deeper dive on PBL workflows
PBL Breakout - deeper dive on PBL workflowsJon Corippo
 
Lateral thinking for startups
Lateral thinking for startupsLateral thinking for startups
Lateral thinking for startupsNicola Fioravanti
 
The human side of design
The human side of designThe human side of design
The human side of designMax Soe
 

What's hot (20)

Optimized for what
Optimized for whatOptimized for what
Optimized for what
 
Design Thinking by Mark Uraine
Design Thinking by Mark UraineDesign Thinking by Mark Uraine
Design Thinking by Mark Uraine
 
Debunking The Old Career Rules
Debunking The Old Career RulesDebunking The Old Career Rules
Debunking The Old Career Rules
 
Findings from UX London
Findings from UX LondonFindings from UX London
Findings from UX London
 
Anyone can be a ux designer: Not everyone IS one.
Anyone can be a ux designer: Not everyone IS one.Anyone can be a ux designer: Not everyone IS one.
Anyone can be a ux designer: Not everyone IS one.
 
Big Ideas, Focused Action, Problem Solved
Big Ideas, Focused Action, Problem SolvedBig Ideas, Focused Action, Problem Solved
Big Ideas, Focused Action, Problem Solved
 
Creativity and Problem Solving
Creativity and Problem SolvingCreativity and Problem Solving
Creativity and Problem Solving
 
We’ve done all this research, now what?
We’ve done all this research, now what?We’ve done all this research, now what?
We’ve done all this research, now what?
 
Collected Wisdom
Collected WisdomCollected Wisdom
Collected Wisdom
 
Championing Contextual Research in Your Organization
Championing Contextual Research in Your OrganizationChampioning Contextual Research in Your Organization
Championing Contextual Research in Your Organization
 
The Power of Retrospection
The Power of RetrospectionThe Power of Retrospection
The Power of Retrospection
 
16 from 16: THE BEST BOOKS OF 2016 SUMMARISED
16 from 16: THE BEST BOOKS OF 2016 SUMMARISED16 from 16: THE BEST BOOKS OF 2016 SUMMARISED
16 from 16: THE BEST BOOKS OF 2016 SUMMARISED
 
Virtual Teams and Liberating Structures Blended Session at #SFAddis
Virtual Teams and Liberating Structures Blended Session at #SFAddisVirtual Teams and Liberating Structures Blended Session at #SFAddis
Virtual Teams and Liberating Structures Blended Session at #SFAddis
 
Design Remote: The Async Advantage
Design Remote: The Async AdvantageDesign Remote: The Async Advantage
Design Remote: The Async Advantage
 
Innovate! - How to Walk Backwards
Innovate! - How to Walk BackwardsInnovate! - How to Walk Backwards
Innovate! - How to Walk Backwards
 
sdsdsdsfdsfsfsdfsd
sdsdsdsfdsfsfsdfsdsdsdsdsfdsfsfsdfsd
sdsdsdsfdsfsfsdfsd
 
13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED
13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED
13 FROM 2013: THE BEST BOOKS OF 2013 SUMMARIZED
 
PBL Breakout - deeper dive on PBL workflows
PBL Breakout - deeper dive on PBL workflowsPBL Breakout - deeper dive on PBL workflows
PBL Breakout - deeper dive on PBL workflows
 
Lateral thinking for startups
Lateral thinking for startupsLateral thinking for startups
Lateral thinking for startups
 
The human side of design
The human side of designThe human side of design
The human side of design
 

Viewers also liked

Nine inspirational quotes from mark zuckerberg a boy genius
Nine inspirational quotes from mark zuckerberg  a boy geniusNine inspirational quotes from mark zuckerberg  a boy genius
Nine inspirational quotes from mark zuckerberg a boy geniusNews World India
 
12 Things Every Programmer Should Know
12 Things Every Programmer Should Know12 Things Every Programmer Should Know
12 Things Every Programmer Should KnowSamnang Chhun
 
Programming languages
Programming languagesProgramming languages
Programming languagesAkash Varaiya
 
Top Ten Internet Uses in Education
Top Ten Internet Uses in EducationTop Ten Internet Uses in Education
Top Ten Internet Uses in Educationdeand73
 
Presentation on generation of languages
Presentation on generation of languagesPresentation on generation of languages
Presentation on generation of languagesRicha Pant
 
Bangladesh final ppt
Bangladesh final pptBangladesh final ppt
Bangladesh final pptJosephite
 

Viewers also liked (6)

Nine inspirational quotes from mark zuckerberg a boy genius
Nine inspirational quotes from mark zuckerberg  a boy geniusNine inspirational quotes from mark zuckerberg  a boy genius
Nine inspirational quotes from mark zuckerberg a boy genius
 
12 Things Every Programmer Should Know
12 Things Every Programmer Should Know12 Things Every Programmer Should Know
12 Things Every Programmer Should Know
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
Top Ten Internet Uses in Education
Top Ten Internet Uses in EducationTop Ten Internet Uses in Education
Top Ten Internet Uses in Education
 
Presentation on generation of languages
Presentation on generation of languagesPresentation on generation of languages
Presentation on generation of languages
 
Bangladesh final ppt
Bangladesh final pptBangladesh final ppt
Bangladesh final ppt
 

Similar to Becoming a Better Programmer (2013)

The story of a UI trainer
The story of a UI trainerThe story of a UI trainer
The story of a UI trainerHarshal Patil
 
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation Design
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation DesignUnconventional wisdom: Putting the WHY Before the WHAT of Presentation Design
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation DesignSheila B. Robinson
 
Enhance My Skills, LLC
Enhance My Skills, LLCEnhance My Skills, LLC
Enhance My Skills, LLCdeniseljackson
 
Exploring Virtual Collaboration: Adapting Tools
Exploring Virtual Collaboration: Adapting ToolsExploring Virtual Collaboration: Adapting Tools
Exploring Virtual Collaboration: Adapting ToolsInnovation Agency
 
Digital Literacies Baselining ODHE
Digital Literacies Baselining ODHEDigital Literacies Baselining ODHE
Digital Literacies Baselining ODHEBex Lewis
 
Work with PFB Worldwide
Work with PFB Worldwide Work with PFB Worldwide
Work with PFB Worldwide Leadzpipe
 
The elements of product success for designers and developers
The elements of product success for designers and developersThe elements of product success for designers and developers
The elements of product success for designers and developersNick Myers
 
oscon_apprenticeship
oscon_apprenticeshiposcon_apprenticeship
oscon_apprenticeshipDave Hoover
 
Apprenticeships on Open Source
Apprenticeships on Open SourceApprenticeships on Open Source
Apprenticeships on Open SourceDave Hoover
 
Managing your tech career
Managing your tech careerManaging your tech career
Managing your tech careerGreg Jensen
 
Reussir son atelier collaboratif de l'organisation à l'animation
Reussir son atelier collaboratif de l'organisation à l'animationReussir son atelier collaboratif de l'organisation à l'animation
Reussir son atelier collaboratif de l'organisation à l'animationConcept Image
 
What Developers Need To Know About Visual Design
What Developers Need To Know About Visual DesignWhat Developers Need To Know About Visual Design
What Developers Need To Know About Visual DesignBen Hall
 
Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...
Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...
Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...Cammy Bean
 
Games based learning_in_the_corporate_world
Games based learning_in_the_corporate_worldGames based learning_in_the_corporate_world
Games based learning_in_the_corporate_worldKartic Vaidyanathan
 
Best practices for Accidental Instructional Designers @ Adobe Learning Summit...
Best practices for Accidental Instructional Designers @ Adobe Learning Summit...Best practices for Accidental Instructional Designers @ Adobe Learning Summit...
Best practices for Accidental Instructional Designers @ Adobe Learning Summit...Cammy Bean
 
Building a UX team
Building a UX teamBuilding a UX team
Building a UX teamNorthernUX
 

Similar to Becoming a Better Programmer (2013) (20)

The story of a UI trainer
The story of a UI trainerThe story of a UI trainer
The story of a UI trainer
 
How Adults Learn
How Adults LearnHow Adults Learn
How Adults Learn
 
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation Design
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation DesignUnconventional wisdom: Putting the WHY Before the WHAT of Presentation Design
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation Design
 
Enhance My Skills, LLC
Enhance My Skills, LLCEnhance My Skills, LLC
Enhance My Skills, LLC
 
Inclusivedesign101
Inclusivedesign101Inclusivedesign101
Inclusivedesign101
 
Exploring Virtual Collaboration: Adapting Tools
Exploring Virtual Collaboration: Adapting ToolsExploring Virtual Collaboration: Adapting Tools
Exploring Virtual Collaboration: Adapting Tools
 
Digital Literacies Baselining ODHE
Digital Literacies Baselining ODHEDigital Literacies Baselining ODHE
Digital Literacies Baselining ODHE
 
Work with PFB Worldwide
Work with PFB Worldwide Work with PFB Worldwide
Work with PFB Worldwide
 
The elements of product success for designers and developers
The elements of product success for designers and developersThe elements of product success for designers and developers
The elements of product success for designers and developers
 
Teaching in the Age of Screens
Teaching in the Age of ScreensTeaching in the Age of Screens
Teaching in the Age of Screens
 
oscon_apprenticeship
oscon_apprenticeshiposcon_apprenticeship
oscon_apprenticeship
 
Apprenticeships on Open Source
Apprenticeships on Open SourceApprenticeships on Open Source
Apprenticeships on Open Source
 
Managing your tech career
Managing your tech careerManaging your tech career
Managing your tech career
 
Reussir son atelier collaboratif de l'organisation à l'animation
Reussir son atelier collaboratif de l'organisation à l'animationReussir son atelier collaboratif de l'organisation à l'animation
Reussir son atelier collaboratif de l'organisation à l'animation
 
What Developers Need To Know About Visual Design
What Developers Need To Know About Visual DesignWhat Developers Need To Know About Visual Design
What Developers Need To Know About Visual Design
 
Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...
Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...
Learning Solutions_Cammy Bean_Best Practices for Accidental Instructional Des...
 
Games based learning_in_the_corporate_world
Games based learning_in_the_corporate_worldGames based learning_in_the_corporate_world
Games based learning_in_the_corporate_world
 
vesion 1.1
vesion 1.1vesion 1.1
vesion 1.1
 
Best practices for Accidental Instructional Designers @ Adobe Learning Summit...
Best practices for Accidental Instructional Designers @ Adobe Learning Summit...Best practices for Accidental Instructional Designers @ Adobe Learning Summit...
Best practices for Accidental Instructional Designers @ Adobe Learning Summit...
 
Building a UX team
Building a UX teamBuilding a UX team
Building a UX team
 

More from Pete Goodliffe

Running Effective Worship Rehearsals
Running Effective Worship RehearsalsRunning Effective Worship Rehearsals
Running Effective Worship RehearsalsPete Goodliffe
 
Version Control Done Right
Version Control Done RightVersion Control Done Right
Version Control Done RightPete Goodliffe
 
C++: The Cathedral and the Bizarre
C++: The Cathedral and the BizarreC++: The Cathedral and the Bizarre
C++: The Cathedral and the BizarrePete Goodliffe
 
iOS Development (BCS Newcastle)
iOS Development (BCS Newcastle)iOS Development (BCS Newcastle)
iOS Development (BCS Newcastle)Pete Goodliffe
 
Three Objectionable Things
Three Objectionable ThingsThree Objectionable Things
Three Objectionable ThingsPete Goodliffe
 
Coping with Complexity
Coping with ComplexityCoping with Complexity
Coping with ComplexityPete Goodliffe
 
iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)Pete Goodliffe
 
Stood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking upStood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking upPete Goodliffe
 
iPhone development: A brief introduction
iPhone development: A brief introductioniPhone development: A brief introduction
iPhone development: A brief introductionPete Goodliffe
 
Legacy Code: Learning To Live With It
Legacy Code: Learning To Live With ItLegacy Code: Learning To Live With It
Legacy Code: Learning To Live With ItPete Goodliffe
 

More from Pete Goodliffe (15)

Words in Code
Words in CodeWords in Code
Words in Code
 
Running Effective Worship Rehearsals
Running Effective Worship RehearsalsRunning Effective Worship Rehearsals
Running Effective Worship Rehearsals
 
Design Sins
Design SinsDesign Sins
Design Sins
 
Advanced iOS
Advanced iOSAdvanced iOS
Advanced iOS
 
Version Control Done Right
Version Control Done RightVersion Control Done Right
Version Control Done Right
 
Getting Into Git
Getting Into GitGetting Into Git
Getting Into Git
 
C++: The Cathedral and the Bizarre
C++: The Cathedral and the BizarreC++: The Cathedral and the Bizarre
C++: The Cathedral and the Bizarre
 
iOS Development (BCS Newcastle)
iOS Development (BCS Newcastle)iOS Development (BCS Newcastle)
iOS Development (BCS Newcastle)
 
Three Objectionable Things
Three Objectionable ThingsThree Objectionable Things
Three Objectionable Things
 
Coping with Complexity
Coping with ComplexityCoping with Complexity
Coping with Complexity
 
Manyfestos
ManyfestosManyfestos
Manyfestos
 
iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)iOS Development (BCS Edinburgh 2011-03-09)
iOS Development (BCS Edinburgh 2011-03-09)
 
Stood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking upStood at the bottom of a mountain looking up
Stood at the bottom of a mountain looking up
 
iPhone development: A brief introduction
iPhone development: A brief introductioniPhone development: A brief introduction
iPhone development: A brief introduction
 
Legacy Code: Learning To Live With It
Legacy Code: Learning To Live With ItLegacy Code: Learning To Live With It
Legacy Code: Learning To Live With It
 

Recently uploaded

IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 

Recently uploaded (20)

IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 

Becoming a Better Programmer (2013)

  • 1. accu 2013 bristol, april becoming a better programmer PETE GOODLIFFE pete@goodliffe.net @petegoodliffe
  • 3. @petegoodliffe pete@goodliffe.net goodliffe.blogspot.com www.goodliffe.net PE TE G OODL PROGRAMME IFFE R / AUTHOR / COLUMN IST / TEACHER ★ CON SCIENTIOUS CODER
  • 5. you
  • 7. We all want to be better programmers, right? This entertaining session will help you to work out how. With the help of a number of special guests, we will provide a series of practical, simple methods to become a better programmer. We'll gain some real insights from respected developers. There will be plenty of hand-waving and jumping, a little philosophy, and some twists. Be the best programmer you can!
  • 8. We all want to be better programmers, right? This entertaining session will help you to work out how. With the help of a number of special guests, we will provide a series of practical, simple methods to become a better programmer. We'll gain some real insights from respected developers. There will be plenty of hand-waving and jumping, a little philosophy, and some twists. Be the best programmer you can!
  • 10. people & wrap up intro (set the scene) stuff (what have we learnt?) (exploring themes) you are here you leave entertained and educated
  • 13. ? what does it mean? better than what? how do we do it?
  • 15. yes
  • 16. yes
  • 17. yes!
  • 18. why?
  • 20. but why be better?
  • 21. financial build // rework // repurpose // maintain
  • 26. what does better look like?
  • 27. better than what? you are now // programmers around you // industry average
  • 28. super awesome you? liability
  • 29. super awesome you? liability
  • 30. super awesome skill b skill a skill c you? liability
  • 31. skills design attitudes communication technologies inter-personal politics techniques
  • 33. a long learning process
  • 35. FOUR THE LEVELS OF ★ INCOMPETENCE
  • 36. four levels of (in)competence compe tence Unc onscious in ten ce om pe us inc Co ns cio ce p eten co m en ce c io us p et Co ns c om io us n sc Un co
  • 37. THE DREYFUS MODEL SKILLS OF ACQUISITION
  • 39. expert proficient competent advanced beginner novice
  • 40. expert // authority, interlinked with other skills, intuition proficient // corrects previous errors, learn from others, interprets maxims has TACIT knowledge competent // mental model, plan routes, solves unknown problems advanced beginner // breaks from rules, gets stuck, can get answers, can’t filter novice // rule-centric
  • 41. super awesome liability where are you aiming? (competent is good)
  • 43. who do you want to be? (today)
  • 45. how do you get better?
  • 49. 10,000 expe rt 8,000 s ho w s p ot entia l 4,000 also- ran
  • 50. 10,000 = 10 years * 3 hours
  • 53. be mindful that you want to improve
  • 54. determine what’s important to you? work-required skills skills for your personal pleasure
  • 55. ? know where you are now
  • 56. ? know where you want to be
  • 57. work out how you’ll get there
  • 58. people & wrap up intro (set the scene) stuff (what have we learnt?) (exploring themes) you are now here
  • 60. ALL★ U? CAST Steve Love Chris Oldwood Frances Buontempo Anthony Williams Didier Verna Matt Turner Phil Nash Anna-Jayne Metcalfe Seb Rose Greg Law
  • 61. AS YOU LISTEN... U? does this apply to me which is most appropriate to a novice? which is most appropriate to a competent?
  • 62. matt turner become a manager! @mt_inside
  • 63. steve love automation @IAmSteveLove
  • 64. didier verna the music of programming @didierverna
  • 65. frances “dr love” buontempo good feedback @fbuontempo
  • 66. phil nash the art of balancing forces @phil_nash
  • 67. seb rose developing using examples deliberate practice talking to your testers @sebrose
  • 68. greg law realism // the motorbike rider <strangely behind the times>
  • 69. chris oldwood the social programmer @chrisoldwood
  • 70. anthony williams do things mindfully @a_williams
  • 71. anna-jayne metcalfe if it ain’t broken do fix it @annajayne
  • 72. U anyone else? things and stuff and stuff and things @audience//participation
  • 76. QA ★★★ & ★★★ Pete Goodliffe @petegoodliffe pete@goodliffe.net
  • 78. BUMPH DULL, but important ★ THIS DOCUMENT WAS CREATED BY PETE GOODLIFFE IT IS COPYRIGHT // © 2013 PETE GOODLIFFE >> ALL RIGHTS RESERVED >> ALL THOUGHTS ARE OWNED >> IMAGE CREDITS FOLLOW THANK YOU FOR READING // I HOPE IT WAS USEFUL Version 1.0 2013-03-05
  • 79. IMAGE CREDITS ★ ENGAGED http://stockarch.com/images/abstract/concept/engaged-toilet-2776 ANNOYED http://www.sxc.hu/photo/1327383 CAR http://www.sxc.hu/photo/1351165 EXIT http://www.sxc.hu/photo/9237 TEETH http://www.morguefile.com/archive/display/46415 LABCOAT http://www.flickr.com/photos/cannongod/3749758602/sizes/z/in/photostream/ PEN http://www.sxc.hu/photo/1380083 BUS http://www.sxc.hu/photo/1363811 DILBERT http://www.dilbert.com/strips/comic/2013-03-21/ (used without permission) GUAGE http://www.sxc.hu/photo/1382510 TWIST http://www.sxc.hu/photo/1026751 SCIENTIST http://commons.wikimedia.org/wiki/File:Scientist.jpg HIPSTER http://hidari-pnk.deviantart.com/art/HIPSTER-347873661 POINTY-HAIRED BOSS http://en.wikipedia.org/wiki/File:Pointy-Haired_Boss.jpg THE FONZ http://thegoodgreatsby.com/2011/04/19/happy-birthday-apollo-fonzarelli/ WINE http://www.sxc.hu/photo/1337577 CHEESE http://www.sxc.hu/photo/750248 EWE http://www.sxc.hu/photo/1174028
  • 80. the dreyfus model ★ expert proficient competent advanced beginner novice
  • 81. novice have no k nowledge (yet) want results (fast) hav e no experience need rules can ’t judge rules
  • 82. a dvanced beginner s ome experience some learngieng explicit knowled can break free fro m rules a little will g et quickly stuck know where t o get answers c an't focus out ir relevant details
  • 83. competent menta l model made associa tions formed und erstand relative importance of aspects can approach unkno wn problems thi go s is od pla a ethodical routes into problems to be ce plans m
  • 84. proficient be yond competency understand big picture frustrated by n ovice simplifications can corr ect previous errors & re flect on experiences maxims focus on important issues tacit knowledge
  • 85. expert the pinnacle th ere are very few have authority interlink skills can teach others have intuition natura lly see an answer