画面を0から
二年、三年、五年と経験を積み、
開発スキルを身に付けたディベロッパー、
だがしかし、
0から画面を作ってみると...
...
あれ!?
できない。
画面を0から作ったことがほとんどない。
あったとしても、隣の画面の真似ごとをしてただけ。
考えて0から作ったことがない
レールのないところ歩いたことがない。
クラスやメソッド
クラスを作る。
どうやって?どういう単位で?
決められた中でしか作ったことがない。
その決めがないと何もアイディアが浮かばない。
「どこに何を実装するか?」って、
白いキャンパスの上で考えたことがあるかい?
...
メソッドを作る。
どうやって?どういう名前で?
どういう引数と戻り値で?
メソッドの修正はたくさんしてきたが、
メソッドを作ることはめったにない。
もしくは、隣のメソッドの真似ごとをしてただけ。
なぜ、その戻り値を思い付かない?
DB設計も!?
select文はさんざん書いてきた。
チューニングだってわかってる。
テーブルを作る。
何か変な形している。
変なテーブルも得意のSQLで
無理矢理カバーしてきただけ。
良いテーブルのかたち、
悪いテーブルのかたち、
考えたことがない。
あんなにテーブルさわってきたのに、なぜ?
気付いたら...
年を取って、頭も固くなっているようだ。
破片じゃないプログラミングが苦痛でしょうがない。
...
...
…
…
…
あれっ!?
破片のプログラミングしかできない。
乖離の立ち尽くし
もちろん、すべての人は破片。
すべてのことをできるひとはいない。
そんな0/1の話をしたいわけじゃない。
程度の話。
そして、その破片をわかっていれば問題ない。
わかっていれば、できないことがわかってるから、
どうすれば解決できるかわかるから。
破片プログラマーの最大の悲しみは、
破片であることを自覚せずに成長してしまうこと。
プログラミング経験年数と、
実はほとんどプログラミングをしてこなかった
という事実に乖離がある。
それに気付かず、
ステージが違うことに気付かず、立ち尽くしてしまう。
もしくは、足を引きずりながら突き進んでしまう。
破片とホールのバランス
小さなまるごとアプリを作る経験、
これって大切だと。
デザイン、HTML/CSS, JavaScript,
サーバーサイドプログラミング(Javaとか)、
SQL、DB設計、インフラ...
それぞれを少しずつ。
そんなに深くやらなくても、
それぞれの全体の中でのバランスがわかっていれば、
破片仕事をしながらでも全体を見る力が養われる。
...
まあ、そこまでおおげさでなくても、
小さなアプリの画面を作る。
小さいので全体が見通しやすい。
小さければ、既存コードに惑わされない。
その分、自分で考えて書かなければならない。
画面作りの基本を学ぶことに等しい。
...
もちろん、破片のお仕事も非常に大切。
破片は破片ならではのノウハウがあり、
鍛えられる部分がある。
盛大な筋トレをしているような感覚。
単純に
破片だけでは鍛えられないことがある
ということ。
そして、逆もまたしかりで、
破片をやったことないとそれはそれで、
バランス悪い。