SlideShare a Scribd company logo
1 of 133
BECOMING         A




BETTER
PROGRAMMER
PETE GOODLIFFE       ACCU 2011, Oxford, UK
@petegoodliffe
pete@goodliffe.net
goodliffe.blogspot.com
www.goodliffe.net




     PETE
      PROG
          GOOD LIFFE
           RAMMER / AUTHOR / C OLUMNIST / TEACHER   CO NSCIENTIOUS CODER
I WRITE



   STUFF                           (you might like to read it )



PETE
PRO
     GOOD LIFFE
    GRAMMER / AUTHOR / COLUMNIST TEACHER   CO NSCIENTIOUS CODER
SYNOPSIS // MY PROMISE TO YOU
             You're a programmer. You spend your life
             programming. (You dull person, you!) Don't
             you want to do it as well as you
             possibly can? This entertaining talk will
             provide a number of practical, simple methods
             to become a better programmer.
             There will be plenty of hand-waving and
             jumping, a little philosophy, and much wisdom
             from our excellent programmer forebears.


             > Be the best programmer you can!
SYNOPSIS // OUR ROUTE
                               start




                            BECOMING A
                        BETTER PROGRAMMER




     what is a “good”       this is a       how to learn from
      programmer?        continual cycle          them




                             look at good
                            programmers

                                                       the end
                                               applause, flowers, etc
SYNOPSIS // THE PROBLEM




                90 minutes!
SYNOPSIS // THE PROBLEM
CASE STUDY #1
SYNOPSIS // OUR ROUTE


             ...go!
WHAT IS


A GOOD
PROGRAMMER    ?
Better than iwhat?
             ndu
      are now                             stry
                                                 aver
you                                                   age
                programm
                           ers aroun
                                       d you
no, no
no, no, no, no

   no
the
“ideal programmer”
super awesome




               you?


liability
super awesome
            skill a
                      skill b



                                   skill c




                                             you?
liability
CASE STUDY #2
2 useful models
THE



FOUR
           LEVELS
              OF


INCOMPETENCE
4 Levels of (In)Competence

                  us inc ompe    tence
       Unc onscio
                                      ten  ce
                             com  pe
                     ous  in
              Cons ci                             ce
                                          p et en
                                    co m                       en ce
                            c io us                       p et
                       Cons                          c om
                                                ou s
                                           ns ci
                                       nc o
                                     U
THE


DREYFUS
MODEL SKILLS
     OF
ACQUISITION
the dreyfus model
the dreyfus model
       expert
      proficient
     competent
  advanced beginner
       novice
novice
have no knowledge (yet)
      want results
         (fast)

   have no experience
        need rules
     c an’t judge rules
ad vanced b eginner
        som e experience
         some learning
            explicit knowledge


 can break free from rules a little
       will get quickly stuck
    know where   to get answers

  can't focus out irre levant details
co mpetent
       men tal model made
       assoc iations formed

unde rstand relative i mportance of
              aspects

  can approach unk  nown problems           thi
                                         go s is
                                            od
                                                pla a
          hodical routes into problems     to
                                              be ce
plans met
p roficient
       beyond competency
      un derstand big picture

frustrated by nov  ice simplifications

     can corre  ct previous errors
       & ref lect on experiences
                maxims

       focus on important issues
             tacit knowledge
expert
  the pinnacle
the re are very few
  have authority
   interlink skills
  c an teach others
    have intuition
  naturally see an answer
where are you?
  how far up the mountain?
how high do you
  want to go?
IT’S

ALL ABOUT
EFFORT
10,000
10,000               expe
                             rt




8,000     s ho w
                   s p ot
                            entia
                                 l

 4,000   also-
               ran
10,000        expe
                     rt



 = 10 years
 * 3 hours
“
Effort is one of the things
that gives meaning to life.
Effort means you care about
something, that something is
important to you and you are
willing to work for it.

                               ”   Carol Dweck
                               Social Pyschologist
                       Self-theories: Their role in
                      motivation, personality and
                              development (1999)
what is a “good”
 programmer?
what is a “good”
         programmer?me
                ductive                  ets
                                             d   ead
         pr   o        knows a l                     line
                                  ot                     s
               conscientio
    joins so               us
                                           an code
             cieties             rite s cle      good designer
                               w
                                      constan
                                               tly lear
                 lot                                    ning
       r eads a         improves code
good                                                      ce
     comm                                h... expe   rien
            unica
                   tor             , bla
                              blah “knows
                       bl ah,                ” certa
what is a “good”
         programmer?me
                ductive                  ets
                                             d   ead
              o
        who’s m
         pr            knows a l
                                  ot                 line
                                                         s
                e
               conscientio
                           usasuring           ode
    joins so
             cieties
                               w rite s clean c  ?
                                                 good designer
                                      constan
                                               tly lear
                 lot                                    ning
       r eads a         improves code
good
     comm                                h...          nce
            unica                h , bl a
                                              exp  erie
                   tor
                       blah , bla
Becoming a Better Programmer
who cares?
  like, really, who cares?
does it matter?
hell, yeah!
IT’S

ALL ABOUT
ATTITUDE
attitude
attitude
  Responsibility
Continuous learning
      Hunger
     Curiosity
     Humility
    Self-belief
choose to
               care
choose not
  to care
OVER TO YOU #1

  do you want to be a
  better programmer?
OVER TO YOU #1

  do you want to be a
  better programmer?
CASE STUDY #3
OVER TO YOU #2

 what is your weakest area
  as a programmer right
           now?
OVER TO YOU #2

 what is your weakest area
  as a programmer right
           now?
OVER TO YOU #2b

 what’s the worst and best code
      you’ve ever written?
OVER TO YOU #2b

 what’s the worst and best code
      you’ve ever written?
OVER TO YOU #2c
  are you a better programmer
         than you were
              last month
               last year
             last decade
           last job/project
OVER TO YOU #2c
  are you a better programmer
         than you were
              last month
               last year
             last decade
           last job/project
THIS IS NOT A
SUBLIMINAL
MESSAGE
start




                       BECOMING A
                   BETTER PROGRAMMER




what is a “good”       this is a       how to learn from
 programmer?        continual cycle          them




                        look at good
                       programmers

                                                  the end
                                          applause, flowers, etc
start




                       BECOMING A
                   BETTER PROGRAMMER




what is a “good”       this is a       how to learn from
 programmer?        continual cycle          them




                        look at good
                       programmers

                                                  the end
                                          applause, flowers, etc
THE



WISDOM     OF
G R E(“great”)C O D E R S
      AT
we need
some experts!
THE CAST #1


              THE CAST #2
THE CAST #3
we need
some topics!
OF

LEARNING
BOB MARTIN
  Re ad! Learn! Never   stop learning.
  Lea rn many languag    es. Learn many
  disc  iplines. Practice TDD and never
   let it go.                  w-with-robert-c-martin-co
                                              tervie
                                                        -a uthor-of-the-agile-manifes
                                                                                     to/

    http://www.azull o.com/blog/think-agile/in
BJARNE STRO
  Know your fu
                                                                     USTRUP
               ndamentals
      machine arc                     (algorithms,
                     hitecture, sy                             data structu
programmin                                   stems) and k                       res,
           g languages                                               now several
                                 to the point
                                                       where you ca
                                                                             n use
               http://www                            them idioma
                          .wired.com/
                                      thisdayintec
                                                  h/2010/10/1
                                                                          tically.
                                                              014cplusplu
                                                                    s-released/a
                                                                                ll/1
If you are looking to get better at
some  thing, you're not going to get very
 far wit hout either pract ice or feedback.
                                                     p.html
                        t.co m/2011/02/harvesting-cro
http://asemantic.blogspo




                              KEVLIN HENNEY
OVER TO YOU #3

     are you continually
          learning?
                 how?
OVER TO YOU #3

     are you continually
          learning?
                 how?
OF


J O Y
CASE STUDY #4
JAMES G
                                          OSLING
    To be re      To be se
             ally goo      lf motiva
                      d, you ha      ted.
           in love w            ve to be
 http://u
         smanah
                     ith what
                mad.wor
                        d
                               you do.
             linus-tor press.com/200
                      valds-da          6
                               ve-thom /08/02/great-p
                                      as-david            r
                                               -heinem ogrammers-ans
                                                      eier-pet
                                                               er-norvi wersinterview-w
                                                                       g-james
                                                                               -gosling ith-steve-yegge
                                                                                       -guido-v
                                                                                                an-tim-b -
                                                                                                        ray
DAVE THOMAS
Durin g my secondary s   chooling I took a
    cla ss in a local tech nical college on
   com   puters. It got me  totally hooked:
                 I fell in love with programming                                                      s-torvalds-dave-thomas-
                                                                      inte rview-with-steve-yegge-linu
                                             reat-programmers-answers                                     ng-guido-van-tim-bray
http://usmanahmad.wordpress.com/2006/08/02/g                  david-heinemeie  r-peter-norvig-james-gosli
DAVE THOMAS
                                Passion                                  terv iew-with-steve-yegge-linu
                                                                                                       s-torvalds-dave-thomas-
                                                at-programmers-answersin                                      uido-van-tim-bray
                        ress.com/2006/08/02/gre                david-heinemeier-p eter-norvig-james-gosling-g
http://usmanahmad.wordp
DONALD
        Despite
                    being a
                                founder
                                             KNUTH
         decades                            member
   compute            , Knuth h                          of one o
               rs today             as not lo                         f the boo
                             surprise           st his se                         m fields
                                          s me, th           nse of w                           of the pa
http://w                                             ere wasn            onder: “                         st
         ww.fbbv
                                                                    't a sing       Everythi
                 a.es/TLF
                                                                               le thing          ng abou
                          U/tlfu/i
                                   ng/micr                     have pre                   that I co       t
                                          osites/p
                                                   remios/
                                                           frontera        dicted 3                   uld
                                                                   s/galard           0 years
                                                                            onados/
                                                                                    2010/in        ago.”
                                                                                            for
                                                                                           macion.
                                                                                                   jsp
DONALD
                          KNUTH
   You're b
            ound to
  unhappy           be
            if you
 optimize
          everythi
(referen
        ce unava
                   ng.
                ilable)
THIS IS NOT A
SUBLIMINAL
MESSAGE
OVER TO YOU #4


 do you have passion/joy?
     how does it affect your work?
OVER TO YOU #4


 do you have passion/joy?
     how does it affect your work?
OF

PRIDE     AND
           OF
TAKING CARE
PETE GOODL
      What’s the r         IF   eal differenc
                                                     FE
    stems from                                e? Good prog
                               your attitud                   ramming
   professiona                              e. It lies in k
                             l approach a                   nowing the
  the best sof                             nd always w
                            tware you ca                  anting to wr
 the software                              n, despite th               ite
                              factory.                     e pressures
Code Craft, N
              o Starch Pre
                           ss
                                                                        of
BOB MARTIN
  The o nly way t o go fast
  is to go well.              ry Programmer Should Kno
                                                      w
   Speed Kills, 97 Things Eve
Whe n you write c ode, write the
best code you can.
Never suc  cumb to the
tempta  tion to rush.                                     obert-c-martin-co-author-
                                                                                   of-
                                                  w-with-r
 http://www.azullo.com /blog/think-agile/intervie
 the-agile-manifesto/




                                          BOB MARTIN
DONALD
          Why did
                            I choose            KNUTH
                                              the word
         somethi
                         ng artifi                             ‘art’ for
       by Natur                          cial, dev                       the title
                        e, but it                        ised by h                 ? “Art m
     is to cre                          also mea                      uman be                eans
                     ate som                              ns a wor              ings rath
   has styl                           ething o                        k of bea             er than
                   e and el                          f beauty                  uty. Wha
 program                           egance a                       : that a c             t I want
                 s should                           nd comm                  omputer
http://w
         ww.fbbv                    also be w                     unicates             program
                 a.es/TLF
                          U/tlfu/i                    ell writt              well. Goo
                                   ng/micr
                                          osites/p
                                                   remios/        en.”                  d
                                                          fronte
                                                   ras/gala
                                                            rd   onados/
                                                                         2010/infor
                                                                                   macion.
                                                                                          jsp
DAVE THOMAS
     [Good progr ammers]
 c are about w hat they do.                                                                    egge-linus-torvalds-dave-
                                                             rs-ans wersinterview-with-steve-y
                                      /08/02/great-programme            r-peter-norvig-james-gosli
                                                                                                   ng-guido-van-tim-bray
http://usmanah mad.wordpress.com/2006           thomas-david-heinemeie
Huma  ns are allergic to  change. They
  love to say, “We'  ve always done it
 t his way.” I try to f ight that. That's
   w hy I have a clock   on my wall that
              runs coun    ter-clockwise.
                                    1987, No. 167
                                            pril,
                    OCLC Newsletter, March/A




GRAC E HOPPER
CASE STUDY #5
OVER TO YOU #5

     do you take pride in
         your work?
     when has this been evident?
OVER TO YOU #5

     do you take pride in
         your work?
     when has this been evident?
OF

SIMPLICITY
sir C.A.
          There ar
                 e two wa                 R. HOAR
     obviousl
                One way
                             ys of con
                            is to ma
                                        structin Eg a softw
              y no def                ke it so                     are desi
                        iciencie               simple t                      gn:
                 it so com        s, and th                    hat ther
     deficien                plicated        e other w                   e are
              cies. The                 that the            ay is to
                          first me                re are no            make
     demand                         thod is f                      obvious
              s the sa                        ar more
     inspirat           me skill                            difficult
              ion as th           , devotio                             . It
laws wh                  e discov           n, insigh
        ich unde                    ery of th             t, and ev
                  rlie the                    e simple                en
                            complex                          physical
                                       phenom
                                                 ena of n
                                                 The Emp
                                                                 ature.
                                                         eror’s O
                                                               ld Clothe
                                                                        s
DENNIS RITCHIE
          UN IX is basically a s imple operating
        system  , but you have to  be a genius to
                      understand t  he simplicity.
                                                 be           tml#ixzz17iofPO
                              otes/authors/d/dennis_ritchie.h
http:/ /www.brainyquote.com/qu
B RIAN KER NIGHAN
    Controlling complexity is the essence
               of compute r programming.
                                  ith P.J. Plaugher)
                                                19 (w
                     Software Tools (1976), p. 3
S implicity is p  rerequisite
f or reliability.                                  )
                         ths that might hurt? (1975
EWD498 How do we tell tru




      E DSGER DIJSKSTRA
sir C.A.
                                       R. HOAR
         At first I
                    hoped th
                but I soo at such a tech
                                              E
                           n realize             nically u
               software              d it was              nsound p
    determi                can be im            doomed               roject w
              nation. T               plement            to succe               ould col
                          here is n              ed, sold,         ss. Almo              lapse
                                    othing a               and even           st anyth
But ther                                       mere sc                used giv         ing in
          e is one                  against             ientist c                en enoug
reliabili          quality t                  the flood           an say t                 h
         ty. The p            hat cann                                     hat will
                   rice of r             ot be pu of a hundred m                     stand
                              eliabilit            rchased                illion do
                      It is a pr        y is the             in this w              llars.
                                 ice whic pursuit of the ay - and that
                                           h the ve               utmost s             is
                                                    ry rich f               implicity
                                                              ind most                 .
                                                                        hard to p
                                                                                   ay.
                                                                                   ?
OVER TO YOU #6

       do you strive for
         simplicity?
     when has this been evident?
OVER TO YOU #6

       do you strive for
         simplicity?
     when has this been evident?
OF

BEAUTY
DONALD
          Why did
        devised
                      I choose
                    by huma
                                    the word
                                                        KNUTH
                                                 ‘art’ for
       beauty.                   n beings                     the title
                   What I w                    rather th                 ? “Art m
     has styl                   ant is to                   an by Na                 eans som
                e and el                     create s                   ture, but               ething a
    well wri                egance a                    omethin                      it also m           rtificial,
              tten”, he                   nd comm                    g of bea
  between                    explains                  unicates                 uty: that eans a work of
               science                    . “There                   well. Goo              a compu
 enough                     and art                   is this s                   d progra           ter prog
           to expla                    is that s                  tatemen                   ms shou            ram
http://w                in it to a                  cience is                 t that I l             ld also b
         ww.fbbv
                 a.es/TLF             compute                     somethi                ike: the              e
                          U/tlfu/i                r, and ar                   ng that             differen
                                   ng/micr
                                          osites/p             t is ever                we unde            ce
                                                   remios/
                                                           frontera       ything e               rstand w
                                                                   s/galard
                                                                            onados
                                                                                      lse”.                ell
                                                                            /2010/i
                                                                                   nformac
                                                                                          ion.jsp
LINUS T ORVALDSI call “taste”.
                                               It’s a thing
                                ork with not by how p   roficient they are:
I tend to  judge the people I w                       ut more by how they
   some  people can churn ou   t a _lot_ of code, b
                              ode, and then obviou   sly by what their own
   rea ct to other people’s c                            ose. That tells me
            looks_ like, and wha  t approaches they ch
   code _                                               e thing is, a person
     whe  ther they have “good    taste” or not, and th
                                is not very good at ju  dging other peoples
  withou  t “good taste” often                              onderfully good.
               ut his own code ofte n ends up not being w
      code, b                                     -pro grammers-answersinterview
                                                                                 -with-steve-yegge-linus-to
                                                                                                            rvalds-dave-thomas-david-hein
                                                                                                                                         em eier-peter-norvig-james-go
                                                                                                                                                                      sling-guido-van-tim-
                                                                                                                                                                                     bray/
                          ss.com/2006/08/02/great
http://usmanahmad.wordpre
CASE STUDY #6
OVER TO YOU #7

  have you a sense for the
        aesthetic?
     when has this been evident?
OVER TO YOU #7

  have you a sense for the
        aesthetic?
     when has this been evident?
OF
COMMUNICATION
(YADA, YADA, YADA, YADA)
LINUS T ORVALDS
                           eful, especially in an open source
One thi ng that is very us
                             bility to commun  icate well what
   proje ct, is simply the a                     it. The ability
 you want   to do, and how y  ou are going to do
                           why_ you do som     ething a certain
  to e xplain to others _                      has that ability.
 way is  very important, a  nd not everybody                                                                                      id-heinemeier-peter-norvig
                                                                                                                                                               -james-gosling-guido-van-
                                                                                                                                                                                         tim-
                                                                                                   -linus-torvalds-dave-thomas-dav                                                     bray/
                                                                        interview-with-steve-yegge
                         ress.com/2006/08/02/g reat-programmers-answers
 http://usmanahmad.wordp
BILL GATES
      And, in fact,
                              the greatest
     who's both g                                     missing skil
                            ood at under                                     l is somebod
    and has goo                                     standing the                          y
                          d relationsh                                       engineering
  engineers, a                                   ips with the
                          nd bridges t                                  hard-core
 customers a                                    hat to worki
                         nd the mark                                   ng with the
http://www
           .microsoft.c                        eting and th
                        om/presspa
                                  ss/exec/bil                        ings like tha
                                              lg/speeches
                                                          /2005/07-18
                                                                      FacultySum
                                                                                      t.
                                                                       mit.aspx
Bes ides a mathemati  cal inclination, an
e xceptionally good mastery of one's
native  tongue is the mo st vital asset of
 a competen  t programmer.
                                          975)
 How do we tell truths that might hurt? (1




       E DSGER DIJSKSTRA
BJARNE STRO
                                                                          USTRUP
            Learn to com
      effectively in     municate
                     speech and i
                                  n
http://www
          .wired.com/     writing.
                     thisdayintec
                                 h/2010/10/1
                                            014cplusplus
                                                           -released/al
                                                                       l/1
OVER TO YOU #8

        how well do you
        communicate?
   with team, managers, customers...
OVER TO YOU #8

        how well do you
        communicate?
   with team, managers, customers...
OF


OTHER
INTERESTS
RO SS UM
   DO VAN                             o be
GUI                 lw ay su sef ul t
                                        any
            It ’s a          ted  in m
                     inte res             gs.
                                ent  thin
                         differ                                             -answe
                                                                                          view-w
                                                                                                 ith-s
                                                                                                            egge-l
                                                                                                                   in
                                                                                                      teve-y ido-van-tim-
                                                                                   rsinter -james-gosli
                                                                                            ig
                                                                                                          ng-gu
                                                                                                                            alds-
                                                                                                                     us-torv ay/
                                                                                                                             br


                                                                  o grammers r-peter-norv
                                                           reat-pr        meie
                                                    8 /02/g -david-heine
                                               006/0         as
                                      ss. com/2 dave-thom
                         ad.w   ordpre
              /usm anahm
        http:/
BJARNE STRO
    Know some n
                      on-computer
                                               field of stud
                                                                      USTRUP
               biology, hist                                          y well — mat
      communicat                      ory, optics, w                                h,
                       e effectively                           hatever. Lea
                                                in speech an                    rn to
       Spend an un                                                     d in writing.
difficult topi           reasonable a
               c to really m                      mount of tim
                                     aster it. Try                      e on some
            that might m                                    to do someth
                                   ake a differe                               ing
                http://www
                           .wired.com/                    nce in the wo
                                       thisdayintec
                                                   h/2010/10/1
                                                               014cpl
                                                                              rld.
                                                               usplus-relea
                                                                           s   ed/all/1
DAVE THOMAS o have
                            elation between              people wh
 I have seen a strong corr                      mming skills. I
 some m  usic in their back ground and progra
                              spect that some   of the areas of
   have no  idea why, but I su
                           eone musical also make them good
the bra in that make som                       re development.
                                     at softwa                                                                                                               -james-gosling-guido-van-tim-bra
                                                                                                                                                                                             y
                                                                                                                                  id-heinemeier-peter-norvig
                                                                                                    nus- torvalds-dave-thomas-dav
                                                                        terview-with-steve-yegge-li
                          ss.com/2006/08/02/gre at-programmers-answersin
                        re
http://usmanahmad.wordp
CASE STUDY #7
OVER TO YOU #9

 do you cultivate “outside”
         interests?
      do they affect your code?
OVER TO YOU #9

 do you cultivate “outside”
         interests?
      do they affect your code?
OF

HUMILITY
The  competent progr    ammer is fully
awa  re of the strictly limited size of his
 own  skull; therefore he  approaches the
 progra mming task in fu   ll humility, and
  am ong other things   he avoids clever
  tricks li ke the plague.
                         grammer
 EWD340 — The Humble Pro




         EDGAR DIJSKSTRA
Learning to admit that I         Realising I wasn’t a very good one
can be wrong                                                  Richard Harris

Astrid Byro
                              Realise that you are fallible.  Realise
Never being afraid to ask              that you have more to learn.
for help.                                                   Hubert Matthews
Seb Rose
                               Don't be so foolish as to believe that
Having to swallow my pride              you know (any/every)thing
and be told I'm wrong                                        Matthew Wilson

Steve Love
                             The hard balance between believing in
                             myself and not appearing too arrogant
                                                            Jason McGuiness
OVER TO YOU #10
            are you?
         (honestly?!)
OVER TO YOU #10
            are you?
         (honestly?!)
OF


OTHER
PEOPLE
LEARNING
                              FROM THEM

Talking to people/listening     "Dan Marsden" an ex-colleague of mine
Frances Love                                                 Andrew Burrows


Finding, engaging with and       Being privileged enough to work with,
learning from real peers,                and have access to via email,
and realising that those       newsgroups and other communications,
are not necessarily one's         the best and brightest people in our
work colleagues.                                           profession.
Jason McGuiness                                                  Steve Love
DEALING
                           WITH THEM
People may have hidden             Work with smart people who
agendas. You need to try                   are different to you
to understand their                                   Andrew Burrows


true motivations/
priorities
Astrid Byro
Becoming a Better Programmer Survey
                                                                                                                                             16



                                                                                                                                            12



                                                                                                                                        8



                                                                                                                                    4
Specific techniques and disciplines
                          ACCU
                                Problem approach
                                               Humility
                                                      Learn from mistakes
                                                                         People
                                                                                  A book
                                                                                           Design                               0
                                                                                                    Testing
                                                                                                              Other
                                                                                                                      Passion
THE


QUESTION
      THAT
P E TE IS ASKING
THE
WHAT   IS

MOST   SINGLE
 IMPORTANT THING     THAT
                       HAS
MADE

                 ?
         A
         BETTER
 YOU    PROGRAMMER
...and...
M y definition o f an expert in
    any field is  a person who
 k nows enough    about what's
reall y going on to  be scared.
                                             1983
                  Computer Language, March




P.J. PLAUGER
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 // © 2011 PETE GOODLIFFE
>> ALL RIGHTS RESERVED
>> ALL THOUGHTS ARE OWNED
>> PHOTOS AND IMAGES ARE MOSTLY
    SOURCED FROM THE WEB
THANK YOU FOR READING // I HOPE IT WAS USEFUL
                                      Version 1.0 2011-04-04
Becoming a Better Programmer

More Related Content

Viewers also liked

Certificate of Academic Recognition - Outstanding performance in Pascal progr...
Certificate of Academic Recognition - Outstanding performance in Pascal progr...Certificate of Academic Recognition - Outstanding performance in Pascal progr...
Certificate of Academic Recognition - Outstanding performance in Pascal progr...arman o
 
Google+ Authorship Publisher Webinar - Search Influence
Google+ Authorship Publisher Webinar - Search InfluenceGoogle+ Authorship Publisher Webinar - Search Influence
Google+ Authorship Publisher Webinar - Search InfluenceSearch Influence
 
Introduction to jQuery Mobile
Introduction to jQuery MobileIntroduction to jQuery Mobile
Introduction to jQuery MobileTroy Miles
 
SEO Strategy and The Hummingbird Effect
SEO Strategy and The Hummingbird EffectSEO Strategy and The Hummingbird Effect
SEO Strategy and The Hummingbird EffectRobin Leonard
 
Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013
Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013
Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013Mark Traphagen
 
The science of landing pages
The science of landing pagesThe science of landing pages
The science of landing pagesUnbounce
 
Vers des langues de programmation ?
Vers des langues de programmation ?Vers des langues de programmation ?
Vers des langues de programmation ?Nicolas Dubois
 
Programming paradigms c1
Programming paradigms c1Programming paradigms c1
Programming paradigms c1Omar Al-Sabek
 
Introduction to XML, XHTML and CSS
Introduction to XML, XHTML and CSSIntroduction to XML, XHTML and CSS
Introduction to XML, XHTML and CSSJussi Pohjolainen
 
Building a Successful Career as a Software Developer
Building a Successful Career as a Software DeveloperBuilding a Successful Career as a Software Developer
Building a Successful Career as a Software Developernolanzak
 
Les langages de programmation
Les langages de programmationLes langages de programmation
Les langages de programmationPierre Tran
 
The Language & Structure of Angel & Venture Deals
The Language & Structure of Angel & Venture DealsThe Language & Structure of Angel & Venture Deals
The Language & Structure of Angel & Venture DealsKieran McCarthy
 
Aktuelle Webtechnologien - HTML5, CSS3 und mehr
Aktuelle Webtechnologien - HTML5, CSS3 und mehrAktuelle Webtechnologien - HTML5, CSS3 und mehr
Aktuelle Webtechnologien - HTML5, CSS3 und mehrYves Hoppe
 
Metaphors of Code
Metaphors of CodeMetaphors of Code
Metaphors of CodeTomi Dufva
 
Les langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésLes langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésmercury_wood
 

Viewers also liked (18)

Certificate of Academic Recognition - Outstanding performance in Pascal progr...
Certificate of Academic Recognition - Outstanding performance in Pascal progr...Certificate of Academic Recognition - Outstanding performance in Pascal progr...
Certificate of Academic Recognition - Outstanding performance in Pascal progr...
 
Google+ Authorship Publisher Webinar - Search Influence
Google+ Authorship Publisher Webinar - Search InfluenceGoogle+ Authorship Publisher Webinar - Search Influence
Google+ Authorship Publisher Webinar - Search Influence
 
Introduction to jQuery Mobile
Introduction to jQuery MobileIntroduction to jQuery Mobile
Introduction to jQuery Mobile
 
SEO Strategy and The Hummingbird Effect
SEO Strategy and The Hummingbird EffectSEO Strategy and The Hummingbird Effect
SEO Strategy and The Hummingbird Effect
 
Css3
Css3Css3
Css3
 
Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013
Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013
Google+ Profile PageRank: The Real AuthorRank? - SMX Advanced 2013
 
The science of landing pages
The science of landing pagesThe science of landing pages
The science of landing pages
 
Vers des langues de programmation ?
Vers des langues de programmation ?Vers des langues de programmation ?
Vers des langues de programmation ?
 
Programming paradigms c1
Programming paradigms c1Programming paradigms c1
Programming paradigms c1
 
Introduction to XML, XHTML and CSS
Introduction to XML, XHTML and CSSIntroduction to XML, XHTML and CSS
Introduction to XML, XHTML and CSS
 
Building a Successful Career as a Software Developer
Building a Successful Career as a Software DeveloperBuilding a Successful Career as a Software Developer
Building a Successful Career as a Software Developer
 
OpenGL 4.4 Reference Card
OpenGL 4.4 Reference CardOpenGL 4.4 Reference Card
OpenGL 4.4 Reference Card
 
Les langages de programmation
Les langages de programmationLes langages de programmation
Les langages de programmation
 
The Language & Structure of Angel & Venture Deals
The Language & Structure of Angel & Venture DealsThe Language & Structure of Angel & Venture Deals
The Language & Structure of Angel & Venture Deals
 
Aktuelle Webtechnologien - HTML5, CSS3 und mehr
Aktuelle Webtechnologien - HTML5, CSS3 und mehrAktuelle Webtechnologien - HTML5, CSS3 und mehr
Aktuelle Webtechnologien - HTML5, CSS3 und mehr
 
Tables And SQL basics
Tables And SQL basicsTables And SQL basics
Tables And SQL basics
 
Metaphors of Code
Metaphors of CodeMetaphors of Code
Metaphors of Code
 
Les langages de programmation sont trop compliqués
Les langages de programmation sont trop compliquésLes langages de programmation sont trop compliqués
Les langages de programmation sont trop compliqués
 

More from Pete Goodliffe

Becoming a Better Programmer
Becoming a Better ProgrammerBecoming a Better Programmer
Becoming a Better ProgrammerPete 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 (16)

Becoming a Better Programmer
Becoming a Better ProgrammerBecoming a Better Programmer
Becoming a Better Programmer
 
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
 
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
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
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
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
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
 
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
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
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
 
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
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
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
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum ComputingGDSC PJATK
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 

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
 
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...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
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
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
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
 
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
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
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
 
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
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
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
 
Introduction to Quantum Computing
Introduction to Quantum ComputingIntroduction to Quantum Computing
Introduction to Quantum Computing
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 

Becoming a Better Programmer

  • 1. BECOMING A BETTER PROGRAMMER PETE GOODLIFFE ACCU 2011, Oxford, UK
  • 2. @petegoodliffe pete@goodliffe.net goodliffe.blogspot.com www.goodliffe.net PETE PROG GOOD LIFFE RAMMER / AUTHOR / C OLUMNIST / TEACHER CO NSCIENTIOUS CODER
  • 3. I WRITE STUFF (you might like to read it ) PETE PRO GOOD LIFFE GRAMMER / AUTHOR / COLUMNIST TEACHER CO NSCIENTIOUS CODER
  • 4. SYNOPSIS // MY PROMISE TO YOU You're a programmer. You spend your life programming. (You dull person, you!) Don't you want to do it as well as you possibly can? This entertaining talk will provide a number of practical, simple methods to become a better programmer. There will be plenty of hand-waving and jumping, a little philosophy, and much wisdom from our excellent programmer forebears. > Be the best programmer you can!
  • 5. SYNOPSIS // OUR ROUTE start BECOMING A BETTER PROGRAMMER what is a “good” this is a how to learn from programmer? continual cycle them look at good programmers the end applause, flowers, etc
  • 6. SYNOPSIS // THE PROBLEM 90 minutes!
  • 7. SYNOPSIS // THE PROBLEM
  • 9. SYNOPSIS // OUR ROUTE ...go!
  • 11. Better than iwhat? ndu are now stry aver you age programm ers aroun d you
  • 12. no, no no, no, no, no no
  • 14. super awesome you? liability
  • 15. super awesome skill a skill b skill c you? liability
  • 18. THE FOUR LEVELS OF INCOMPETENCE
  • 19. 4 Levels of (In)Competence us inc ompe tence Unc onscio ten ce com pe ous in Cons ci ce p et en co m en ce c io us p et Cons c om ou s ns ci nc o U
  • 20. THE DREYFUS MODEL SKILLS OF ACQUISITION
  • 22. the dreyfus model expert proficient competent advanced beginner novice
  • 23. novice have no knowledge (yet) want results (fast) have no experience need rules c an’t judge rules
  • 24. ad vanced b eginner som e experience some learning explicit knowledge can break free from rules a little will get quickly stuck know where to get answers can't focus out irre levant details
  • 25. co mpetent men tal model made assoc iations formed unde rstand relative i mportance of aspects can approach unk nown problems thi go s is od pla a hodical routes into problems to be ce plans met
  • 26. p roficient beyond competency un derstand big picture frustrated by nov ice simplifications can corre ct previous errors & ref lect on experiences maxims focus on important issues tacit knowledge
  • 27. expert the pinnacle the re are very few have authority interlink skills c an teach others have intuition naturally see an answer
  • 28. where are you? how far up the mountain?
  • 29. how high do you want to go?
  • 32. 10,000 expe rt 8,000 s ho w s p ot entia l 4,000 also- ran
  • 33. 10,000 expe rt = 10 years * 3 hours
  • 34. “ Effort is one of the things that gives meaning to life. Effort means you care about something, that something is important to you and you are willing to work for it. ” Carol Dweck Social Pyschologist Self-theories: Their role in motivation, personality and development (1999)
  • 35. what is a “good” programmer?
  • 36. what is a “good” programmer?me ductive ets d ead pr o knows a l line ot s conscientio joins so us an code cieties rite s cle good designer w constan tly lear lot ning r eads a improves code good ce comm h... expe rien unica tor , bla blah “knows bl ah, ” certa
  • 37. what is a “good” programmer?me ductive ets d ead o who’s m pr knows a l ot line s e conscientio usasuring ode joins so cieties w rite s clean c ? good designer constan tly lear lot ning r eads a improves code good comm h... nce unica h , bl a exp erie tor blah , bla
  • 39. who cares? like, really, who cares?
  • 44. attitude Responsibility Continuous learning Hunger Curiosity Humility Self-belief
  • 45. choose to care choose not to care
  • 46. OVER TO YOU #1 do you want to be a better programmer?
  • 47. OVER TO YOU #1 do you want to be a better programmer?
  • 49. OVER TO YOU #2 what is your weakest area as a programmer right now?
  • 50. OVER TO YOU #2 what is your weakest area as a programmer right now?
  • 51. OVER TO YOU #2b what’s the worst and best code you’ve ever written?
  • 52. OVER TO YOU #2b what’s the worst and best code you’ve ever written?
  • 53. OVER TO YOU #2c are you a better programmer than you were last month last year last decade last job/project
  • 54. OVER TO YOU #2c are you a better programmer than you were last month last year last decade last job/project
  • 55. THIS IS NOT A SUBLIMINAL MESSAGE
  • 56. start BECOMING A BETTER PROGRAMMER what is a “good” this is a how to learn from programmer? continual cycle them look at good programmers the end applause, flowers, etc
  • 57. start BECOMING A BETTER PROGRAMMER what is a “good” this is a how to learn from programmer? continual cycle them look at good programmers the end applause, flowers, etc
  • 58. THE WISDOM OF G R E(“great”)C O D E R S AT
  • 60. THE CAST #1 THE CAST #2
  • 64. BOB MARTIN Re ad! Learn! Never stop learning. Lea rn many languag es. Learn many disc iplines. Practice TDD and never let it go. w-with-robert-c-martin-co tervie -a uthor-of-the-agile-manifes to/ http://www.azull o.com/blog/think-agile/in
  • 65. BJARNE STRO Know your fu USTRUP ndamentals machine arc (algorithms, hitecture, sy data structu programmin stems) and k res, g languages now several to the point where you ca n use http://www them idioma .wired.com/ thisdayintec h/2010/10/1 tically. 014cplusplu s-released/a ll/1
  • 66. If you are looking to get better at some thing, you're not going to get very far wit hout either pract ice or feedback. p.html t.co m/2011/02/harvesting-cro http://asemantic.blogspo KEVLIN HENNEY
  • 67. OVER TO YOU #3 are you continually learning? how?
  • 68. OVER TO YOU #3 are you continually learning? how?
  • 71. JAMES G OSLING To be re To be se ally goo lf motiva d, you ha ted. in love w ve to be http://u smanah ith what mad.wor d you do. linus-tor press.com/200 valds-da 6 ve-thom /08/02/great-p as-david r -heinem ogrammers-ans eier-pet er-norvi wersinterview-w g-james -gosling ith-steve-yegge -guido-v an-tim-b - ray
  • 72. DAVE THOMAS Durin g my secondary s chooling I took a cla ss in a local tech nical college on com puters. It got me totally hooked: I fell in love with programming s-torvalds-dave-thomas- inte rview-with-steve-yegge-linu reat-programmers-answers ng-guido-van-tim-bray http://usmanahmad.wordpress.com/2006/08/02/g david-heinemeie r-peter-norvig-james-gosli
  • 73. DAVE THOMAS Passion terv iew-with-steve-yegge-linu s-torvalds-dave-thomas- at-programmers-answersin uido-van-tim-bray ress.com/2006/08/02/gre david-heinemeier-p eter-norvig-james-gosling-g http://usmanahmad.wordp
  • 74. DONALD Despite being a founder KNUTH decades member compute , Knuth h of one o rs today as not lo f the boo surprise st his se m fields s me, th nse of w of the pa http://w ere wasn onder: “ st ww.fbbv 't a sing Everythi a.es/TLF le thing ng abou U/tlfu/i ng/micr have pre that I co t osites/p remios/ frontera dicted 3 uld s/galard 0 years onados/ 2010/in ago.” for macion. jsp
  • 75. DONALD KNUTH You're b ound to unhappy be if you optimize everythi (referen ce unava ng. ilable)
  • 76. THIS IS NOT A SUBLIMINAL MESSAGE
  • 77. OVER TO YOU #4 do you have passion/joy? how does it affect your work?
  • 78. OVER TO YOU #4 do you have passion/joy? how does it affect your work?
  • 79. OF PRIDE AND OF TAKING CARE
  • 80. PETE GOODL What’s the r IF eal differenc FE stems from e? Good prog your attitud ramming professiona e. It lies in k l approach a nowing the the best sof nd always w tware you ca anting to wr the software n, despite th ite factory. e pressures Code Craft, N o Starch Pre ss of
  • 81. BOB MARTIN The o nly way t o go fast is to go well. ry Programmer Should Kno w Speed Kills, 97 Things Eve
  • 82. Whe n you write c ode, write the best code you can. Never suc cumb to the tempta tion to rush. obert-c-martin-co-author- of- w-with-r http://www.azullo.com /blog/think-agile/intervie the-agile-manifesto/ BOB MARTIN
  • 83. DONALD Why did I choose KNUTH the word somethi ng artifi ‘art’ for by Natur cial, dev the title e, but it ised by h ? “Art m is to cre also mea uman be eans ate som ns a wor ings rath has styl ething o k of bea er than e and el f beauty uty. Wha program egance a : that a c t I want s should nd comm omputer http://w ww.fbbv also be w unicates program a.es/TLF U/tlfu/i ell writt well. Goo ng/micr osites/p remios/ en.” d fronte ras/gala rd onados/ 2010/infor macion. jsp
  • 84. DAVE THOMAS [Good progr ammers] c are about w hat they do. egge-linus-torvalds-dave- rs-ans wersinterview-with-steve-y /08/02/great-programme r-peter-norvig-james-gosli ng-guido-van-tim-bray http://usmanah mad.wordpress.com/2006 thomas-david-heinemeie
  • 85. Huma ns are allergic to change. They love to say, “We' ve always done it t his way.” I try to f ight that. That's w hy I have a clock on my wall that runs coun ter-clockwise. 1987, No. 167 pril, OCLC Newsletter, March/A GRAC E HOPPER
  • 87. OVER TO YOU #5 do you take pride in your work? when has this been evident?
  • 88. OVER TO YOU #5 do you take pride in your work? when has this been evident?
  • 90. sir C.A. There ar e two wa R. HOAR obviousl One way ys of con is to ma structin Eg a softw y no def ke it so are desi iciencie simple t gn: it so com s, and th hat ther deficien plicated e other w e are cies. The that the ay is to first me re are no make demand thod is f obvious s the sa ar more inspirat me skill difficult ion as th , devotio . It laws wh e discov n, insigh ich unde ery of th t, and ev rlie the e simple en complex physical phenom ena of n The Emp ature. eror’s O ld Clothe s
  • 91. DENNIS RITCHIE UN IX is basically a s imple operating system , but you have to be a genius to understand t he simplicity. be tml#ixzz17iofPO otes/authors/d/dennis_ritchie.h http:/ /www.brainyquote.com/qu
  • 92. B RIAN KER NIGHAN Controlling complexity is the essence of compute r programming. ith P.J. Plaugher) 19 (w Software Tools (1976), p. 3
  • 93. S implicity is p rerequisite f or reliability. ) ths that might hurt? (1975 EWD498 How do we tell tru E DSGER DIJSKSTRA
  • 94. sir C.A. R. HOAR At first I hoped th but I soo at such a tech E n realize nically u software d it was nsound p determi can be im doomed roject w nation. T plement to succe ould col here is n ed, sold, ss. Almo lapse othing a and even st anyth But ther mere sc used giv ing in e is one against ientist c en enoug reliabili quality t the flood an say t h ty. The p hat cann hat will rice of r ot be pu of a hundred m stand eliabilit rchased illion do It is a pr y is the in this w llars. ice whic pursuit of the ay - and that h the ve utmost s is ry rich f implicity ind most . hard to p ay. ?
  • 95. OVER TO YOU #6 do you strive for simplicity? when has this been evident?
  • 96. OVER TO YOU #6 do you strive for simplicity? when has this been evident?
  • 98. DONALD Why did devised I choose by huma the word KNUTH ‘art’ for beauty. n beings the title What I w rather th ? “Art m has styl ant is to an by Na eans som e and el create s ture, but ething a well wri egance a omethin it also m rtificial, tten”, he nd comm g of bea between explains unicates uty: that eans a work of science . “There well. Goo a compu enough and art is this s d progra ter prog to expla is that s tatemen ms shou ram http://w in it to a cience is t that I l ld also b ww.fbbv a.es/TLF compute somethi ike: the e U/tlfu/i r, and ar ng that differen ng/micr osites/p t is ever we unde ce remios/ frontera ything e rstand w s/galard onados lse”. ell /2010/i nformac ion.jsp
  • 99. LINUS T ORVALDSI call “taste”. It’s a thing ork with not by how p roficient they are: I tend to judge the people I w ut more by how they some people can churn ou t a _lot_ of code, b ode, and then obviou sly by what their own rea ct to other people’s c ose. That tells me looks_ like, and wha t approaches they ch code _ e thing is, a person whe ther they have “good taste” or not, and th is not very good at ju dging other peoples withou t “good taste” often onderfully good. ut his own code ofte n ends up not being w code, b -pro grammers-answersinterview -with-steve-yegge-linus-to rvalds-dave-thomas-david-hein em eier-peter-norvig-james-go sling-guido-van-tim- bray/ ss.com/2006/08/02/great http://usmanahmad.wordpre
  • 101. OVER TO YOU #7 have you a sense for the aesthetic? when has this been evident?
  • 102. OVER TO YOU #7 have you a sense for the aesthetic? when has this been evident?
  • 104. LINUS T ORVALDS eful, especially in an open source One thi ng that is very us bility to commun icate well what proje ct, is simply the a it. The ability you want to do, and how y ou are going to do why_ you do som ething a certain to e xplain to others _ has that ability. way is very important, a nd not everybody id-heinemeier-peter-norvig -james-gosling-guido-van- tim- -linus-torvalds-dave-thomas-dav bray/ interview-with-steve-yegge ress.com/2006/08/02/g reat-programmers-answers http://usmanahmad.wordp
  • 105. BILL GATES And, in fact, the greatest who's both g missing skil ood at under l is somebod and has goo standing the y d relationsh engineering engineers, a ips with the nd bridges t hard-core customers a hat to worki nd the mark ng with the http://www .microsoft.c eting and th om/presspa ss/exec/bil ings like tha lg/speeches /2005/07-18 FacultySum t. mit.aspx
  • 106. Bes ides a mathemati cal inclination, an e xceptionally good mastery of one's native tongue is the mo st vital asset of a competen t programmer. 975) How do we tell truths that might hurt? (1 E DSGER DIJSKSTRA
  • 107. BJARNE STRO USTRUP Learn to com effectively in municate speech and i n http://www .wired.com/ writing. thisdayintec h/2010/10/1 014cplusplus -released/al l/1
  • 108. OVER TO YOU #8 how well do you communicate? with team, managers, customers...
  • 109. OVER TO YOU #8 how well do you communicate? with team, managers, customers...
  • 111. RO SS UM DO VAN o be GUI lw ay su sef ul t any It ’s a ted in m inte res gs. ent thin differ -answe view-w ith-s egge-l in teve-y ido-van-tim- rsinter -james-gosli ig ng-gu alds- us-torv ay/ br o grammers r-peter-norv reat-pr meie 8 /02/g -david-heine 006/0 as ss. com/2 dave-thom ad.w ordpre /usm anahm http:/
  • 112. BJARNE STRO Know some n on-computer field of stud USTRUP biology, hist y well — mat communicat ory, optics, w h, e effectively hatever. Lea in speech an rn to Spend an un d in writing. difficult topi reasonable a c to really m mount of tim aster it. Try e on some that might m to do someth ake a differe ing http://www .wired.com/ nce in the wo thisdayintec h/2010/10/1 014cpl rld. usplus-relea s ed/all/1
  • 113. DAVE THOMAS o have elation between people wh I have seen a strong corr mming skills. I some m usic in their back ground and progra spect that some of the areas of have no idea why, but I su eone musical also make them good the bra in that make som re development. at softwa -james-gosling-guido-van-tim-bra y id-heinemeier-peter-norvig nus- torvalds-dave-thomas-dav terview-with-steve-yegge-li ss.com/2006/08/02/gre at-programmers-answersin re http://usmanahmad.wordp
  • 115. OVER TO YOU #9 do you cultivate “outside” interests? do they affect your code?
  • 116. OVER TO YOU #9 do you cultivate “outside” interests? do they affect your code?
  • 118. The competent progr ammer is fully awa re of the strictly limited size of his own skull; therefore he approaches the progra mming task in fu ll humility, and am ong other things he avoids clever tricks li ke the plague. grammer EWD340 — The Humble Pro EDGAR DIJSKSTRA
  • 119. Learning to admit that I Realising I wasn’t a very good one can be wrong Richard Harris Astrid Byro Realise that you are fallible.  Realise Never being afraid to ask that you have more to learn. for help. Hubert Matthews Seb Rose Don't be so foolish as to believe that Having to swallow my pride you know (any/every)thing and be told I'm wrong Matthew Wilson Steve Love The hard balance between believing in myself and not appearing too arrogant Jason McGuiness
  • 120. OVER TO YOU #10 are you? (honestly?!)
  • 121. OVER TO YOU #10 are you? (honestly?!)
  • 123. LEARNING FROM THEM Talking to people/listening "Dan Marsden" an ex-colleague of mine Frances Love Andrew Burrows Finding, engaging with and Being privileged enough to work with, learning from real peers, and have access to via email, and realising that those newsgroups and other communications, are not necessarily one's the best and brightest people in our work colleagues. profession. Jason McGuiness Steve Love
  • 124. DEALING WITH THEM People may have hidden Work with smart people who agendas. You need to try are different to you to understand their Andrew Burrows true motivations/ priorities Astrid Byro
  • 125. Becoming a Better Programmer Survey 16 12 8 4 Specific techniques and disciplines ACCU Problem approach Humility Learn from mistakes People A book Design 0 Testing Other Passion
  • 126. THE QUESTION THAT P E TE IS ASKING
  • 127. THE WHAT IS MOST SINGLE IMPORTANT THING THAT HAS MADE ? A BETTER YOU PROGRAMMER
  • 129. M y definition o f an expert in any field is a person who k nows enough about what's reall y going on to be scared. 1983 Computer Language, March P.J. PLAUGER
  • 130. QA & Pete Goodliffe @petegoodliffe pete@goodliffe.net
  • 132. BUMPH DULL, but important THIS DOCUMENT WAS CREATED BY PETE GOODLIFFE IT IS COPYRIGHT // © 2011 PETE GOODLIFFE >> ALL RIGHTS RESERVED >> ALL THOUGHTS ARE OWNED >> PHOTOS AND IMAGES ARE MOSTLY SOURCED FROM THE WEB THANK YOU FOR READING // I HOPE IT WAS USEFUL Version 1.0 2011-04-04