This document outlines the characteristics of a good programmer. It discusses that good programmers are 28 times more productive and introduce 28 times fewer bugs than bad programmers. Good programmers spend 90% of their time thinking, researching, and experimenting to design the best solutions, while bad programmers spend that time debugging randomly. The key characteristics of a good programmer include humility, curiosity, ownership, attention to detail, quality focus, laziness, pragmatism, creativity, passion for learning, teamwork skills, and balancing work and personal life.
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 ?
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
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)
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.