みんないつからプログラマーになるのか
私の肌感覚的には、
趣味や学校で十分にプログラミングスキルを磨いてからプログラマーになった人は少数派なようだ。
のちにプログラマーになる多数派の人たちはどのようにプログラミングスキルを身につけるのだろうか。
いろんなプログラマーに出会ってリサーチした結果、
社会人になってプログラマーになる人の多くは、配属された職場で、勤務時間内に半強制的に、プログラミングを体得していっている。
このことから、プログラミングスキル習得はいつから始めても身につくものだということが言える。
しかし、プログラマーの腕の違いはある。
腕の違いは、
経験値×向上心
で決まるようだ。
学生の頃からプログラムに親しんでいても、キレイではない(つまり読みにくい)コードを書く人がいる。
コードが読みにくと何が悪いのか。
この問いに対して、大きな声で「百害あって一利なし」というか、小さな声で「動けばいいじゃない」というかで腕の違いが分かる。
言うまでもなく前者は品質の高いコードを書ける腕利きプログラマーであり、
後者は中途半端で市場価値が低いプログラマーだ。
実はプログラマーの報酬で、前者と後者で大きな差がある。
だったらなぜ後者の人は前者を目指さないのか。
前者と後者で根本的に思想が違うのが原因の1つだ。
同じ世界に生きているが、まったく別の種だといえる。
プログラミングを心底楽しむ気持ちをもっている種は腕利きプログラマーになりやすい。このタイプにとってプログラミングへのこだわりは底なしだ。
一方で、読み書きそろばん程度にプログラミングを位置づけている人は別の種だ。こだわりがない。
何の世界でも一流になるには強いこだわりが必要だ。
プログラマーの腕の違いは
経験値×向上心
であることは間違いないのだが
(経験値)×(向上心^2)
の方がより正確かもしれない
※向上心は2乗で効く
さらにさらに・・・、
経験値も分解できる。
職場での経験はある範囲のテクノロジーに限定され、同じ作業の繰り返しという面が多い。
プログラマーとはエンジニアであり、テクノロジーの使い手であるので、幅広いテクノロジースキルを吸収し続けることが必要だ。
その意味では、勤務時間での経験だけでは足りない(運動不足)のは明らかであり、エンジニアとして不勉強(栄養不足)である。
自己研鑽の量が良質な経験値となる。
したがって、経験値は以下のように分解できる。
経験値=(勤務時間労働)+(勤務時間以外の自己研鑽^2)
まとめると、
プログラマーレベル={(勤務時間労働)+(勤務時間以外の自己研鑽^2)}×(向上心^2)
これはプログラマーに限らないかもしれない。
好きでやっている人には勝てない理由がここにあるとも言える。