Highly successful programmers are:
You must have an insatiable thirst for knowledge since you’re constantly consuming information. Given languages, stacks, and technologies are constantly changing, if you don’t improve, then you’ll fall behind. Learning how things work—even if you don’t use it—will give you depth and breadth in making decisions. Depending on the codebase you inherit, you may have to deal with legacy systems or greenfield projects. Either way, you’ll have to learn how things work. Hence, if you dislike learning or can’t handle the fast pace of learning, then perhaps coding isn’t the right thing for you.
Programmers spend a good amount of time troubleshooting their code. Thus, those who use the scientific method will have a better time getting their programs to run. So what does this entail? Well, you’ll need to form hypotheses and test them. You must also have patience since the act of debugging can be an agonizing experience. If you give up easily and aren’t unwilling to persevere until you find a solution, then programming may not be for you.
Good programmers are disciplined. Why? Because programming can be very complex—especially if you’re building large or enterprise applications. Building an application is like eating an elephant—it’s a daunting task where you can only take one bite at a time. As a result, you need to be disciplined in prioritizing what you should work on. You’ll have to break things down to their core requirements and plan out the work from there. This means having strong project management skills. If you aren’t willing to stick with one milestone until completion, then maybe it’s time to reconsider professions.
Do you agree or disagree with the traits listed above? What other traits do you think makes a programmer successful?