One of my sessions at the ACCU 2011 developer conference.
CHECK OUT THE BOOK: https://gum.co/becomingbetter
>> SYNOPSIS
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!
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
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
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
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)
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
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
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)
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
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
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
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
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
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