SlideShare a Scribd company logo
1 of 37
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.

More Related Content

Similar to Good Qualities of a developer

UX class presentation
UX class presentationUX class presentation
UX class presentation
Theo V
 

Similar to Good Qualities of a developer (20)

10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
 
Good developers vs bad developers
Good developers vs bad developersGood developers vs bad developers
Good developers vs bad developers
 
How to Write UX Specs That Make Developers Swoon
How to Write UX Specs That Make Developers SwoonHow to Write UX Specs That Make Developers Swoon
How to Write UX Specs That Make Developers Swoon
 
The passionate programmer
The passionate programmerThe passionate programmer
The passionate programmer
 
What every developer can learn from startups
What every developer can learn from startupsWhat every developer can learn from startups
What every developer can learn from startups
 
Software as a craft (February, 2018)
Software as a craft (February, 2018)Software as a craft (February, 2018)
Software as a craft (February, 2018)
 
proper care and feeding for your junior developer
proper care and feeding for your junior developerproper care and feeding for your junior developer
proper care and feeding for your junior developer
 
Presentation for JSPM's RSCOE
Presentation for JSPM's RSCOEPresentation for JSPM's RSCOE
Presentation for JSPM's RSCOE
 
How to hire a hacker
How to hire a hackerHow to hire a hacker
How to hire a hacker
 
MagmaRails - Passionate Programmer
MagmaRails - Passionate ProgrammerMagmaRails - Passionate Programmer
MagmaRails - Passionate Programmer
 
We design orientation class
We design orientation classWe design orientation class
We design orientation class
 
I Want 2 Do Project Tell Me Wat 2 Do
I Want 2 Do Project Tell Me Wat 2 DoI Want 2 Do Project Tell Me Wat 2 Do
I Want 2 Do Project Tell Me Wat 2 Do
 
Pairing w developers_stpconpics
Pairing w developers_stpconpicsPairing w developers_stpconpics
Pairing w developers_stpconpics
 
Pair Programming
Pair ProgrammingPair Programming
Pair Programming
 
UX class presentation
UX class presentationUX class presentation
UX class presentation
 
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...
 
A Ruby Conference Overview (by a Non-Ruby Programmer)
A Ruby Conference Overview (by a Non-Ruby Programmer)A Ruby Conference Overview (by a Non-Ruby Programmer)
A Ruby Conference Overview (by a Non-Ruby Programmer)
 
Introducing Pair Programming
Introducing Pair ProgrammingIntroducing Pair Programming
Introducing Pair Programming
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
 
Lessons Learned About Software Development
Lessons Learned About Software DevelopmentLessons Learned About Software Development
Lessons Learned About Software Development
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Good Qualities of a developer

  • 1. HOW TO BE A GOOD DEVELOPER SOPHIA DAGLI
  • 2. 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
  • 3. What is that you going to do ?  Write Code  Read Code  Write Code for reading  Make money for the code you write
  • 4. 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 ??
  • 5. 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 ?
  • 6. 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.
  • 7. 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 ?
  • 8. What do you need to be a good programmer ??
  • 11. 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.
  • 12. 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
  • 13. “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.”
  • 14.
  • 15. 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 !!
  • 16.
  • 17. Ownership  Looks for the Big-picture perception of a software.  Looks at the business oriented approach to the software.
  • 18.
  • 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 are good at following instructions, but not at reading your mind. ” - Donald Knuth
  • 21.
  • 22. Quality  Writes Clean code ◦ Little or minimal documentation ◦ Clear function / variable names ◦ Small functions ◦ Smart looking code.
  • 23. Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~ Martin Fowler
  • 24. Lazy
  • 25. 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)
  • 26. “ First, solve the problem. Then, write the code. ”
  • 28. 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
  • 29.
  • 30. 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.
  • 31.
  • 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
  • 34.
  • 35. Loves working in a team  Listens to his team members  Pays respect to his team members  Gets continuous feedback from his team members
  • 36.
  • 37. 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.