accu 2013
                                                         bristol, april




becoming                                             a
better programmer




  PETE GOODLIFFE pete@goodliffe.net @petegoodliffe
@petegoodliffe
pete@goodliffe.net
goodliffe.blogspot.com
www.goodliffe.net




      PE TE G OODL
      PROGRAMME
                   IFFE
               R / AUTHOR / COLUMN IST / TEACHER ★ CON SCIENTIOUS CODER
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
?
what does it mean?
 better than what?
 how do we do it?
does it matter?
yes
yes
yes!
why?
but why be better?
financial
build // rework // repurpose // maintain
professionalism / craft
personal pride
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
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
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)
how do you get better?
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?
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
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
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

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.
  • 6.
  • 7.
    We all wantto 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 wantto 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!
  • 9.
  • 10.
    people & wrap up intro (set the scene) stuff (what have we learnt?) (exploring themes) you are here you leave entertained and educated
  • 12.
  • 13.
    ? what does itmean? better than what? how do we do it?
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 20.
    but why bebetter?
  • 21.
    financial build // rework// repurpose // maintain
  • 22.
  • 23.
  • 26.
    what does betterlook like?
  • 27.
    better than what? youare 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.
  • 34.
  • 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.
  • 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)
  • 42.
  • 43.
    who do youwant to be? (today)
  • 45.
    how do youget better?
  • 48.
  • 49.
    10,000 expe rt 8,000 s ho w s p ot entia l 4,000 also- ran
  • 50.
    10,000 = 10years * 3 hours
  • 51.
  • 53.
    be mindful thatyou want to improve
  • 54.
    determine what’s importantto you? work-required skills skills for your personal pleasure
  • 55.
  • 56.
    ? know where youwant to be
  • 57.
    work out howyou’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 becomea manager! @mt_inside
  • 63.
    steve love automation @IAmSteveLove
  • 64.
    didier verna the musicof programming @didierverna
  • 65.
    frances “dr love”buontempo good feedback @fbuontempo
  • 66.
    phil nash the artof balancing forces @phil_nash
  • 67.
    seb rose developing usingexamples 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 anyoneelse? things and stuff and stuff and things @audience//participation
  • 76.
    QA ★★★ & ★★★ Pete Goodliffe @petegoodliffe pete@goodliffe.net
  • 77.
  • 78.
    BUMPH DULL, butimportant ★ 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 knowledge (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 thepinnacle th ere are very few have authority interlink skills can teach others have intuition natura lly see an answer