今のご時世、インターネットがあるんだから、Google先生に聞けばなんでもわかるんだから、「技術書」なんていらないヨ。という考えの人が少なからずいるように感じる。
まあ「技術書」って安くないしね(だいたい\3,000~\5,000)。
けれど、「技術書」って必要な知識が一まとめに、まとまっているんだよね。
ネットだと、必要な知識をかき集めないといけないし、順序良く説明してくれるわけでもない。
だから、例えば「A」という知識について、かき集めても、断片的で一つの大きな「A」という知識を得ることは出来ない。
所詮、狭く浅くだ。
さて「達人プログラマー」という、タイトルがウソみたいな本を知ってるかな?
僕らの業界では有名な本だ。
この本、二種類ある。「黒い」本と、「緑白」の本だ。
読んで字の如く、「達人」プログラマーを目指すべく、心得や技術が書かれている。
僕は「黒」は読んでなくて、「緑白」を読んだ。
(「緑白」はスターターキットと呼ばれている。「達人になるための登竜門」的な意味合いだと思う)
「緑白」は、CVS/JUnit/自動化、という3部作。
(ちなみに海外ではそれぞれ1冊ずつ別々の本で、日本語版は1冊にまとまった)
CVSは今となっては古いバージョン管理ソフトとなったが、書かれている内容は、SubversionやGitにも通じる「心得や技術」が詰まっている。
プログラマーに限らず、管理者にも必要な内容だ。
マージ機能を駆使しつつ、リリース用のソースを、半自動で管理できるんだから。
JUnitは、「プログラマのプログラマによるプログラマのためのテスト」と言われているモノだ。
プログラミング言語ごとにちょっとずつ名前が変わるので、総称してxUnit系と呼ばれたりする。
今やプログラマーにとっては、必須スキルだ。
(余談だが、xUnitを書かない(書けない?)プログラマーが、淘汰される正しい時代に早くなってほしい。)
自動化は、様々な事に通じる考えだ。
そして、管理者にも必要な内容だ。
例えばWEBシステムなら、テスト環境でも本番環境でもサーバーへデプロイする必要があるが、これを毎回手でコンパイルしてコピーするのは
1. 馬鹿らしいと思わないかい?
2. 時間のムダだと思わないかい?
3. 手順を間違わない保証ができるかい?
という質問に対するベストな回答となる。
それはバッチファイルでも何でもよいから「1clickで作業を終わらせられる」ように「自動化」しようよ!!ってこと。
面倒な事、間違いそうな事は、何でも「1click」がポイント。
誰でも簡単に実行できて、間違いようがない。
これも「DRY - Don't Repeat Yourself」だ。
この本、今読むと若干古臭いんだけど、馬鹿にはできない。
何も考えずに何年も「技術者」名乗ってる(職場で教えられたことしか学ばない)人は、知らない事だらけで目からうろこだろう。
僕も当時、理解できなかった事が、今読みかえすと腑に落ちる。
そして、達人への道はまだまだつづく、と再認識する。
みんなの何かの糧になれば幸い。

