Breaking

Thursday, 30 April 2015

Qualities of a Programmer

Every quality of a perfect programmer has a range depending on the specific problem and context. There is no absolutely perfect programmer for all the problems (at least on this planet). And the perfect programmer for particular problem should have,
TH-3042015




1. Intellect

                    Can understand the problem, translate and express ideas in clear and readable code,
has analytical and logical mind (range: building programs for narrow well defined requests to
conquering freaking complex problems in elegant way) 

2. Personality - 
                    Has right mixture of personal traits (detail-oriented vs. creative, flexible vs. disciplined, sociable vs. independent) 

3. Expertise - 
                    Knowledge and experience for solving client’s problems in the specific context
with chosen technologies (range: aspecialist in one technology to aveteran programmer with broad
experience in different domains and platforms)

4. Motivation - 
                   Cares about work,shows enthusiasm, interest and love for programming (range:
from working for money only to implementing interesting ideas in spare time without pay)

5. Maturity –
                    Knows and uses sound software development principles,practices and approaches as agile, design and architecture patterns,domain-driven design, unit testing,refactoring (range: from an
enthusiastic amateur to a black belt guru, who can invent new approaches on the go)
6. Pragmatism - 
                    Understands what is possible, loves simplicity and avoids over-engineering;
understands business goals, keeps touch with reality and focus on what should be done (range: from
a spontaneous artist to a self-driven pragmatic achiever)

7. Cooperation - 
                    Listens, accepts that other people could have better ideas, supports team goals without
hidden agenda, shares ideas and knowledge and coach others (range: from idea challenger to a
team coach)

8. Communication - 
                    Effectively communicates and exchanges ideas, supports knowledge and
decisions about the system with clear explanations, justifications and answers (range: from a quiet
introvert to a system evangelist)

9. Potential - 
                     Has professional goals,good learning skills, curiosity,adaptability and performs constant
self correction (range: from person who reached his limits to the future programming star)

10. Vision - 
                    Sees the big picture, understands context, trends and people, aligns actions with team
and company implicit goals,contributes into building shared vision for the software system
(range: from interested in programming only to entrepreneurial visionary)

No comments:

Post a Comment