talk-about-programmer-career

Regarding how to become an excellent programmer, this has recently become the focus of our attention again. Below are the traits that I think we need most:

  • Good at solving problems.
  • Diligent and lazy at the same time.
  • Able to understand other people's code.
  • Passionate about programming.
  • Love learning for the sake of learning.
  • Good at mathematics.
  • Have good communication skills.
  • Strong debating skills.
  • Extremely optimistic.
  • Extremely pessimistic.

 

1. Good at solving problems-- I hope everyone can realize this. Most excellent programmers can find solutions that others cannot discover.

2. Diligent and lazy-- This point surprises many people. The reason programmers like to question things is often because they are "too lazy" to take detours. Driven by this mindset, they will tirelessly simplify problems and tasks. In other words, they are eager to get the job done, but they want the process to be as efficient as possible.

3. Able to understand other people's code-- This is crucial. Many excellent programmers are blocked at the door of promotion to "greatness" because of this point. It doesn't really matter how good your rewriting ability is--but you need to collaborate with others on existing projects, learn from open-source code when starting new projects, and learn good techniques from existing codebases, all of which require the ability to understand other people's code.

4. Passionate about programming-- You must love programming. In most cases, passion is the driving force behind greatness.

5. Love learning for the sake of learning-- Learning is like sailing against the current; if you don't advance, you fall behind. This is a never-ending endeavor.

6. Good at mathematics-- At minimum, you need a good grasp of calculus. That said, if you don't know at least basic algebra and trigonometry, you basically cannot become a great programmer.

7. Have good communication skills-- This means they can clearly express their thoughts in their own field. I have met many great programmers who, although they cannot communicate well about other topics, once it comes to their field, they can talk at length, clearly explain problems, and propose solutions.

8. Strong debating skills-- Same reason as point 7.

9. Extremely optimistic-- Great programmers, after only a brief moment of consideration, can immediately determine that they can complete the task.

10. Extremely pessimistic-- Great programmers, when lacking the necessary information to make a correct judgment, will stubbornly insist that they cannot do the job.

 

The following are supplementary (not necessary for all great programmers):

1. Especially organized.

2. Good at managing people and programming projects.

3. Able to write good design documents.

4. Able to estimate time.

5. Read technical books widely.

6. Able to transfer programming skills to other areas of programming, drawing inferences from one instance.

7. Write code correctly on the first try.

8. Possess skills in other fields.

Source: http://www.codeceo.com/article/10-attributes-of-a-great-programmer.html