プログラムとはそもそも何なのか、ということなんですけれども。私は大雑把に、プログラミングとは「名前を付けること」と「構造を作ること」の組み合わせでできていると考えています。漢字で言うと、命名と構成でも言いましょうか。
ですから「良い構造を作れること」と「的確な名前を付けられること」。これらがプログラマーに必要な2つの能力だと考えています。