HOW TO BE A GOOD
DEVELOPER
SOPHIA DAGLI
What do you see yourself
 In 25 years from now
 In 20 years from now
 In 10 years from now
 In 1 year from now
What is that you going to do ?
 Write Code
 Read Code
 Write Code for reading
 Make money for the code you write
Good Vs Bad Programmer
 A good programmer can be 28+ times
more productive than a bad
programmer.
 A bad programmer will introduce 28+
times more bugs than a good
programmer.
How much does the cost compare for
a bad programmer Vs a bad
programmer ??
Good Vs Bad Programmer
 A programmer spends about 10–20%
of his time writing code, and most
programmers write about 10–12 lines
of code per day that goes into the final
product, regardless of their skill level.
 Why ?
Good Vs Bad Programmer
 Good programmers spend much of
the other 90% thinking, researching,
and experimenting to find the best
design.
 Bad programmers spend much of that
90% debugging code by randomly
making changes and seeing if
they work.
Good Vs Bad Programmer
 Good programmers need minimal
support from their mentors & both get
more time to do more from their time
at work
 Bad Programmer sap the time &
energy of their mentors, if they refused
to learn.
 Whom do you want to work with ?
What do you need to be a good
programmer ??
CHARACTERISTICS OF A
GOOD PROGRAMMER
Humility
Humility
 They don’t mind admitting that they
don’t know something.
 They know that there is nothing wrong
in saying “I don’t know”
 Nor do they harshly judge another
team mate who says that.
Humility
 They share their code with others and
welcome feedback.
 Work hard to swallow their pride and
overcome their fear and shyness of
letting other people review their work.
 they enjoy company of programmers
who are smarter than them
“if you’re not doing a few things where
you’re failing a little, you’re probably not
trying hard enough. I say if everyone
likes you, you probably aren’t doing
anything interesting.”
Curiosity
 They don’t accept things as they are.
 Acts like a compiler !! Scrutinizes each
and every line
 Will ask why why why ?
◦ To himself
◦ To his boss
◦ To his client !!
Ownership
 Looks for the Big-picture perception of
a software.
 Looks at the business oriented
approach to the software.
Attention to Details
 Attention to detail
 Feel very very uncomfortable on
seeing poor code or existing bugs &
would want to fix them.
 Cringe every time they are forced to
put in a patch fix for the benefit of time
and will always go back and put a
better fix whenever they can
 Doesnt ignore a teeny weeny bug
“ Computers are good at following
instructions, but not at reading your
mind. ” - Donald Knuth
Quality
 Writes Clean code
◦ Little or minimal documentation
◦ Clear function / variable names
◦ Small functions
◦ Smart looking code.
Any fool can write code that a computer
can understand. Good programmers
write code that humans can
understand. ~ Martin Fowler
Lazy
Lazy
 They hate doing manual tasks and
therefore invent creative ways to
automate mundane jobs.
 Hate typing (so find innovative ways to
write lesser code).
 Seeks simplicity (Doesn’t like to wack
his brains too much)
“ First, solve the problem. Then, write
the code. ”
Pragmatic
Pragmatic
 Able to make a value judgement about
what is really important
 Values practical outcomes
 Understands priorities. Will ask about
the priority.
 Believes in getting the job done
 Avoids gold plating
creative
 Programming is an ART !
 Sees ways to do things that others
don’t see, comes up with better ways
of doing things, goes beyond.
A student always
 Have a passion for learning
 See learning as an investment
 Spend a lot of time upgrading their
skills and improving their knowledge.
 Learns new language, doesn’t get
scared of any new coding language
(The basics are right).
 Loves getting to learn new languages
A student always
 Spend on books & read them too.
 Read, browse, blog, network, join
forums, attend conferences.
 Get into the trenches try out new
things whenever they can.
 Are tool junkies
Loves working in a team
 Listens to his team members
 Pays respect to his team members
 Gets continuous feedback from his
team members
Works hard and parties
harder
 Manages time effectively for personal
and professional growth.
 Doesn’t bother colleagues
unnecessarily for tea, smoke & loo
breaks.
 Finishes work on time – so never has
to leave late.

Good Qualities of a developer

  • 1.
    HOW TO BEA GOOD DEVELOPER SOPHIA DAGLI
  • 2.
    What do yousee yourself  In 25 years from now  In 20 years from now  In 10 years from now  In 1 year from now
  • 3.
    What is thatyou going to do ?  Write Code  Read Code  Write Code for reading  Make money for the code you write
  • 4.
    Good Vs BadProgrammer  A good programmer can be 28+ times more productive than a bad programmer.  A bad programmer will introduce 28+ times more bugs than a good programmer. How much does the cost compare for a bad programmer Vs a bad programmer ??
  • 5.
    Good Vs BadProgrammer  A programmer spends about 10–20% of his time writing code, and most programmers write about 10–12 lines of code per day that goes into the final product, regardless of their skill level.  Why ?
  • 6.
    Good Vs BadProgrammer  Good programmers spend much of the other 90% thinking, researching, and experimenting to find the best design.  Bad programmers spend much of that 90% debugging code by randomly making changes and seeing if they work.
  • 7.
    Good Vs BadProgrammer  Good programmers need minimal support from their mentors & both get more time to do more from their time at work  Bad Programmer sap the time & energy of their mentors, if they refused to learn.  Whom do you want to work with ?
  • 8.
    What do youneed to be a good programmer ??
  • 9.
  • 10.
  • 11.
    Humility  They don’tmind admitting that they don’t know something.  They know that there is nothing wrong in saying “I don’t know”  Nor do they harshly judge another team mate who says that.
  • 12.
    Humility  They sharetheir code with others and welcome feedback.  Work hard to swallow their pride and overcome their fear and shyness of letting other people review their work.  they enjoy company of programmers who are smarter than them
  • 13.
    “if you’re notdoing a few things where you’re failing a little, you’re probably not trying hard enough. I say if everyone likes you, you probably aren’t doing anything interesting.”
  • 15.
    Curiosity  They don’taccept things as they are.  Acts like a compiler !! Scrutinizes each and every line  Will ask why why why ? ◦ To himself ◦ To his boss ◦ To his client !!
  • 17.
    Ownership  Looks forthe Big-picture perception of a software.  Looks at the business oriented approach to the software.
  • 19.
    Attention to Details Attention to detail  Feel very very uncomfortable on seeing poor code or existing bugs & would want to fix them.  Cringe every time they are forced to put in a patch fix for the benefit of time and will always go back and put a better fix whenever they can  Doesnt ignore a teeny weeny bug
  • 20.
    “ Computers aregood at following instructions, but not at reading your mind. ” - Donald Knuth
  • 22.
    Quality  Writes Cleancode ◦ Little or minimal documentation ◦ Clear function / variable names ◦ Small functions ◦ Smart looking code.
  • 23.
    Any fool canwrite code that a computer can understand. Good programmers write code that humans can understand. ~ Martin Fowler
  • 24.
  • 25.
    Lazy  They hatedoing manual tasks and therefore invent creative ways to automate mundane jobs.  Hate typing (so find innovative ways to write lesser code).  Seeks simplicity (Doesn’t like to wack his brains too much)
  • 26.
    “ First, solvethe problem. Then, write the code. ”
  • 27.
  • 28.
    Pragmatic  Able tomake a value judgement about what is really important  Values practical outcomes  Understands priorities. Will ask about the priority.  Believes in getting the job done  Avoids gold plating
  • 30.
    creative  Programming isan ART !  Sees ways to do things that others don’t see, comes up with better ways of doing things, goes beyond.
  • 32.
    A student always Have a passion for learning  See learning as an investment  Spend a lot of time upgrading their skills and improving their knowledge.  Learns new language, doesn’t get scared of any new coding language (The basics are right).  Loves getting to learn new languages
  • 33.
    A student always Spend on books & read them too.  Read, browse, blog, network, join forums, attend conferences.  Get into the trenches try out new things whenever they can.  Are tool junkies
  • 35.
    Loves working ina team  Listens to his team members  Pays respect to his team members  Gets continuous feedback from his team members
  • 37.
    Works hard andparties harder  Manages time effectively for personal and professional growth.  Doesn’t bother colleagues unnecessarily for tea, smoke & loo breaks.  Finishes work on time – so never has to leave late.