考える時間とコード書く時間
他の人がどうかは知らないんだけど、僕はコード書く前に考える時間を長くとることが多い。目を瞑ったり、天井眺めたり、あるいは散歩しながら2時間、3時間延々と考え続ける。どんなアーキテクチャにしようかとか、どの言語で書こうかとか、モジュール名どうしようかとか、いろいろ。
そうしてるとそのうちちょっとずつコーディングするもののイメージが明確になってきて、とりあえずコードを書いてみる。実際に書いてみると、ここはこういう風にしたら上手くいかないなとか、変更に弱そうだな、とか、書く前に考えてただけじゃ気づかなかったことがいろいろ出てくる。で、また考える。3時間、4時間考える。
というサイクルでコーディングを進めることが多いんだけど、この方法がいいよおすすめだよという話ではなくて、僕は書いてる時間よりも考えてる時間の方が好きだという話。
上に書いたようなやりかたが効率的で生産性が高いとかいうつもりは毛頭なくて、Macから離れて考えてる時間がすごく好きで楽しいから僕はきっと無駄に時間浪費してるんだろうなと思う。
考えてる時にノートとかホワイトボード使ったりはあまりしない。10分前の未熟な考えに今の思考が囚われる気がするから。
けど、仕事でコード書くときとかはとくに、この考えるプロセスをスキップすることが多い。そんなに長く考えるまでもなく形にスべきゴールが明らかで選択の余地が少ないからかなと思うけど、そういう日が何週間も続くとなんか心が濁ってくる。
考えるだけでコード書かずに終わるってことは滅多にないから、こっちで心が濁るかは知らない。
僕は立派なプロダクトをプログラミングによって作ることが目的なんじゃなくて、どんなコードを書こうかみたいなことに思いを巡らせるのが目的なんだなと、なんとなく思った。