The other day I was asked that question again: “What does it take to be good at programming?” Normally I would analyse, think and
blurt out a list of crap list a set of qualities and but that day I just spontaneously replied: “Passion“.
Everyone can draw but with varying ability ranging from drawing a drawing a dog that looks like a cow to being able to paint like Picasso.
Programming is an art as well since it involves creating codes and algorithms to solve problems – an algorithm is just a set of instructions which if properly followed will solve a problem and I believe anyone can specify proper instructions for a task. So, if we can train people to list down their instructions for a problem properly, we can create programmers but being able to create good programmers is another story. Just as we can’t train people and make them become Van Gogh or Picasso, we can’t train people to make them great programmers.
Passion is an emotion of feeling very strongly about a subject. Passion is an intense emotion compelling feeling, enthusiasm, or desire for anything and often requiring action. Passion often applies to lively or eager interest in or admiration for a proposal, cause, or activity. – Wikipedia