IT日記

Webエンジニアの徒然草

手を動かしてプログラミングするのは単なる暇人

プログラミングの習熟において、教本を読むだけでなく実際に手を動かしてソースコードを書くことが奨励されるのが一般的だ。他人が開発したライブラリ等に関しても、ただその利用マニュアルを読むだけでなく、それらを利用した何らかのプロトタイプを実際に作ることが良しとされる。

こういった風潮は果たして正しいのだろうか。一概にそうとは言えなく、時に弊害があるように思える。

ITエンジニアの仕事は課題の解決であり、その手段としてソフトウェアがあるだけだ。以前論じたように、出来合いの部品を組み合わせて一つにする性質が強く、自作する、つまり自分でコーディングすることは効率を阻害しかねない。

自作したソフトウェアは基本的に自分達で維持・管理するしかない。一定のメンテナンスコストが発生し続ける、一種の負債としての側面を持つのだ。このことは、前回紹介したYAGNIの精神にも現れている。

学習用に作ったものなど作り捨ててしまえばそれで済むかも知れないが、過度なコーディングは、実際には実戦では要求されない、為にする訓練ではないかという議論も成り立つ。

まあ、さすがにこれはかなりの暴論であり、自分で手を動かすことに一定の効用があることは個人的な感覚からして否定はできない。しかし、数多あるオープンソースなどを逐一試してみるには人生はあまりに短いのも確かだ。

新たなライブラリなど、今この瞬間も世界中のエンジニアの手によって開発されている。しかしそれらは玉石混交であり、多くは日の目を見ない。既存の利用実績の豊富なノウハウ・ツールや同時期に出現した競合に代替えされることも多く、時には開発者自身にも見切りをつけられ、打ち捨てられたガラクタに成り果てる。

使いものになるか定かでないオモチャをいちいち試していては切りがない。にも関わらず、そんな非効率なお遊びを無批判に良しとするのは大いに疑問である。

時間という万人に等しく有限なリソースを、他人より上手く投資した者だけが競争に勝てるのだ。これは何も、ITエンジニアの訓練に限った話ではない。

愚者は経験に学び、賢者は歴史に学ぶ。

発表されたライブラリやフレームワーク付随の公式文献にとどまらず、それに対する同業者のレビューや使用事例を紹介したメディアへ目を通すなども有意な取り組みであろう。そもそもどういった媒体から新製品の情報を得られるかも把握しておく必要がある。

自分で手を動かすことはブルーカラーの労働集約的な性質を孕む。どう作るかではなく、何ができて何を作るのか。重要なのはシステムの設計である。真に利益を得るためには、末端の作業ではなく、より上位の意思決定が求められるはずだ。

我々は巨人の肩に乗る必要があるのだ。

 

あなたの知らない超絶技巧プログラミングの世界

あなたの知らない超絶技巧プログラミングの世界