こんばんは、ころすけ(@wg_koro)です。
プログラマーではない方から「長時間コード書いてると苦痛じゃない?」と聞かれることがあります。うーん、信じてもらえないことが多いのですが、これは全くもって苦痛じゃないのですよ。
ちょうどいい機会なので、自分はどんな気持ちでプログラムを延々と書き続けているか、書いてみようと思います。
パズルゲームは好きですか?
ぷよぷよ、テトリス、将棋、チェス、オセロ・・・このようなパズルゲームは好きですか?プログラムを書くというのは、「答えがまだ見つかっていないパズルを解く」感じに近いです。
理想の完成イメージ図があって、手元に様々な材料が転がっている。使える材料もあれば、使えない材料も大量にある。そんな状態から材料を吟味し、削って繋げて壊す。これを繰り返して組み立てていきます。
ちなみに、この組み立て作業に説明書はありません。
- これを繋げたらこっちはどうなるんだろう。でっぱっちゃうか?
- これを削らないと速度が落ちるなぁ。どうしたものか
- 組み立て方に無駄な部分が…。この部分、一回壊して別の方法で組み立ててみようかな
- こっちの技術使った方が見た目も速度もいいのか?
こんな感じで、ひたすら試行錯誤しながら作り上げていきます。これが結構楽しいw
もちろん、時間(納期)や性能(処理速度とか)などと戦わないといけないので、しんどいこともそれなりにあります。しかし基本は楽しんでやっています。一度没頭すると時間忘れますしねw
楽しめるようになるまでが結構長かった
今はそれなりに楽しんでプログラムを組むことができますが、昔は結構苦しんでました。
技術書を読みあさる。ひたすらコードを書いてみる。人のコードを読んでみる。それでも苦しい。
何というか・・・「どう書けばいいのか分からない・しっくりこない」状態が続いていたのです。一通りの処理は書けるけど自分の中で何も固まっていない。とにかく自分の書いたコードが気持ち悪い。書いたものに対して自信が持てない。「オブジェクト指向」も分かっていなかったですね、この頃は。
ところがある日、ストンと何かが自分の中に収まった。ピッタリはまった。
この瞬間から急激にコードに対する苦痛が無くなりました。自分が書いた内容を人に説明し、議論できるようになった。人が書いたコードの意味が分かるようになった。
それまでバラバラだった知識が、自分の中で急激に組み立てられて固まりました。
この時から仕事でも楽しめるようになりました。
何事も心から理解しないとダメ
「わかったよ、プロシュート兄ィ!!
兄貴の覚悟が!『言葉』でなく『心』で理解できた!」
(ジョジョの奇妙な冒険 53巻 ベッシの言葉)
武道もそうなのですが、「言葉」でなく「心(体)」で理解することが大事ですね。物事をちゃんと「理解した」時、その時に初めて「自分のもの」になる気がします。
まぁえらそうなことを書きましたが、コーディングも設計もまだまだ修行中です。今後もガシガシ精進!