『オープンソースマガジン』2006.1号
「ハッカー養成塾!」寄稿文

本稿は、ソフトバンククリエイティブ社から出版されている雑誌『オープンソースマガジン』内のコーナー、「ハッカー養成塾!」に寄稿した原稿です。私が文字数を誤って計算していたため、出版物では大半を削ることになってしまいました。本稿では、そのオリジナルを掲載しています。

講師履歴書
名前 武藤 健志
所属 Debian Projectオフィシャルメンバー
(株)トップスタジオ ネットワークシステム/編集担当リーダー
アクセス ブログ http://kmuto.jp/d/
プロフィール 千葉大学文学部卒。ソフトウェア開発会社でのプログラマを経た後、現職にて技術書籍の編集に従事。オープンソースの分野では、Debian Projectを中心に開発者や翻訳者として活動。著書に『Debian GNU/Linux徹底入門第3版 Sarge対応』(翔泳社)など。

■告白

実のところ、私は自分をハッカーだと思ったことは一度もない。周り中すごいハッカーたちに囲まれていると、ハッカーを自認するのはあまりにおこがましいのだ(笑)。自分をあえて形容するなら「“ハッカー”と“一般人”のつなげ役」かなと思っている。ということで、今回はその立場で見たハッカー観についてしばし語ってみよう。

■ハッカー的生い立ち

私がコンピュータを使い始めたのは小学3年生のときで、親にPASOPIA 7*というマイコンを買ってもらったのが始まりだ。最初のうちは既製のゲームで遊んだり、グラフィックキーで絵を描いてたり*していたのだけれども、そういったことに飽きてBASICでプログラミングを始めた。付属の教本がよく出来ていて、小学生の自分にも理解しやすい平易な言葉で書かれていた。そのうちに『ベーマガ』*を読んで掲載されているコードを入力したり、ほかのマシン用のコードを移植したり。オープンソースという言葉はなかったけど、当時のマイコン雑誌はコードすべてが掲載されていて、読者が各自で改良したり移植したりする過程で勉強していく、という気風があった。とても応募できるようなレベルではなかったけど、自作のゲームもいくつか作り始めるようになった。メジャーなマイコンのX1やPC-8801には毎月楽しそうなゲームの発売が発表されるのに、マイナーなPASOPIA 7にはゲームが全然出なかったから(笑)。とは言え、そういう羨望感・飢餓感がプログラミングへの関心につながっているわけで、人生どう転ぶかわからない。

今はそういったプログラミングへのきっかけを、幼少時代に得るのは難しいよね。ゲームというと、専用機で動く、お金も人もすごく投入されているのばかりじゃない。ゲームを作ろう!的なソフトウェアもあるし、無償で使えるプログラミング言語もいろいろあるけれど、たとえばそれで『Final Fantasy』はおろか、普通に売り物になるようなものはなかなか作れないでしょ。比較対象が最初から雲の上の世界なので、「へへん、これなら僕でも作れるぞ」とはいかなくなってしまっている。

大学に入って、UNIXを使うようになった。ちょうどLANを管理していた院生が海外に行くことになり、後任に立候補してそれから3年間務めることになった。理学部・工学部ならもっとコンピュータの使い手ばかりで出る幕はなかったろうから、文学部*という場でそういう体験をできたことはとても貴重だったね。管理対象は、授業や実験で使われるSunOS*のサーバ数台を中心に、各研究室のMacOSやNeXT、PC-9801など。終盤はPCブームの時期と重なっていて、Windows 3.1やSlackware Linuxも触っていた。WWWの黎明期でもあり、Webコンテンツ作成者としては日本でも比較的早い部類に属すると思う。

卒業後は、ソフトウェア開発会社でプログラマとして働いた。Windowsアプリケーション開発や、Solarisの保守管理、Webアプリケーション開発が主だったかな。そうこうするうちに3年が経って、(理由はほかにもいろいろあるけれども)自分の職業プログラマとしての能力に限界を感じてきた。大学の卒業間際にJavaの本*を共著で書いたことをきっかけに、就職後も本業のかたわら監修や雑誌記事の執筆などをしてるうちに書籍を作る側の世界に興味を持つようになっていたので、今の編集プロダクション会社に転職。現在の仕事は、Java・Linux・オープンソース関連の書籍の編集が中心で、あとは社内ネットワークの管理、翻訳書籍の技術監修、ときには執筆や内外のプログラム開発などもしている。

■ハッカー、オープンソース、Debian

大学時代には、パソコン通信でフリーウェアをダウンロードして使ったり、『UNIX USER』*を読みながらFTPでソフトを取ってきてビルドしてインストールして……ということはしてたけど、当時は文化的な面よりも「無償で便利なソフト」という程度の認識しかなかった。

ハッカーとの関わりの端緒は、ソフトウェア開発会社での同僚に、著名なハッカーのあさだたくやさんがいたことかな。彼はlynx*開発メンバー、japanニュースグループ*創立者としても有名。彼にいろいろ教えてもらって、彼のハッカー友人たちの宴席に参加したりもしていた。

本格的にオープンソースやハッカーと関わるようになったのは、Debian*を使うようになってからになる。『UNIX USER』の連載記事*を読んで、常用のOSをSlackwareからDebianに乗り換えた。メーリングリストで答える側に回るようになって、そのうちIRC(インターネットチャット)でDebianやPJE*といった界隈の人たちとおしゃべりする関係に。

最大の転機は、1999年の「東京Linuxサミット*」だね。ここで初めて、IRCで話していた人々と顔合わせして(会う前はすごく緊張した!)、彼らハッカーたちとより親しくなった。刺激され、自分の中でも何か変化が訪れたと思う。以降はDebian JP*の会員になって理事まで務めてみたり、日本Linux協会のほうでも理事や各種委員会メンバーとして活動するようになったり*

Debian JPでの活動が高じて、ディストリビューション開発の活動は本家にマージしようという決定を機に、本家であるDebian Projectのメンバーになった。国際電話で担当者がメンバーを審査していた時代で、多分日本では(もしかしたら世界全体でも)最後の合格者。この後、担当者がやる気を失ってしばらく新規メンバーを受け付けない暗黒時代が続いたので、幸運だった。このときにDebian Projectに入っていなかったら、今ごろはVine Linuxの開発に携わっていたかもしれないね。こちらにも友人が多いし。

Debian Projectメンバーの活動としては、印刷システムのパッケージメンテナをしている。ほかにはインストーラの開発、特にCJK*関連。英語圏の人だと、こちらに特有の文字化け事情はわからないからね。最近開発をさぼっているので、そろそろ再開しないといけない(笑)。それから、英語から日本語への翻訳作業。最近の継続的な翻訳はインストーラ周りの箇所だけで、それ以外はほかの人たちが頑張ってくださっているのでお任せしている。前回のリリースのときには、リリースの障害となるパッケージのバグ取りや品質向上、armなどマイナーアーキテクチャ向けのビルド支援なども行った。独創的なプログラミングよりも、バグの発見や解決方法の提案、QA(品質保証)といった分野が私の性に合っているみたいだ。

翻訳が特に顕著なのだけど、私の役割は「興味を持っているけれども、中に入るのをためらっている人」の背中を押すことだと思っている。まずは私が自分でやってみて、どのように作業すべきかのガイドを書いて、「ほら、簡単でしょ?」と。

■なんかいいことないかな

ハッカー・オープンソースの世界に飛び込んでからずいぶん経つけれども、1つ新しいことに挑戦するごとに世界が広がるという感覚がいつもある。特に、Debian Projectは世界有数のハッカー集団で、本当に世界各地の人々が集まっているから、とてもエキサイティングだ。インストーラ開発チームでの活動をきっかけにDebconf*に過去2回参加して、素晴らしい体験ができた。高校時代に英語は苦手科目だったし勉強嫌いだったんだけど、大いに後悔(笑)。Debian Projectで活動し始めてから、もっと話がわかるように、もっと意見が言えるように、と英語を真剣に勉強するようになった。目標があるとないとでは、勉強へのモチベーションが全然違うね。高校生くらいから世界的なオープンソースプロジェクトで活動すると、英語力は間違いなく上がると思う。

それから、すごいハッカーたちと親交していると、己れの技量のほどが相対的にわかるというのも利点だね。で、そういうすごいハッカーたちが「いやいや、あの人はもっとすごいよ」と尊敬するハッカーがまた存在する、という漫画の『ドラゴンボール』みたいな世界。井の中の蛙になって大恥をかかずに済むし、もっと知識を吸収して彼らに追い付けるよう努力しなくちゃ、と切磋琢磨する気になる。ここで「話が全然わからない、どうせ僕は駄目なんだ」と凹んでしまうようだと、ハッカーへの道は険しいと思う。プラス思考、重要*

■自由研究:ハッカーを観察してみよう

一般的な「ハッカー」のイメージは、“ネクラでオタクで一日中コンピュータの前に張り付いてるかアニメを観ている”というところじゃないかな(善玉だろうが悪玉だろうが扱いに大して差はなさそう)。

でも、私の知る限り、ハッカーたちは皆、多芸・多趣味だ。歌や演奏など音楽でもひとかどの才能を発揮したり、本格的な料理を作ったり、見事な文筆の腕を示したり、余暇には汗を流すスポーツマンだったり。数名は確かにアニメオタクだけど(笑)。

もちろん、皆プログラミングは大好きだし、ひとたび集中すれば1日中でもコンピュータの前に張り付いてハックにいそしむのは厭わないだろう*。でも、いつもそうしているというわけではなくて、ハックにかけている時間よりほかの趣味にかけている時間のほうが総じて長いんじゃないかな。

だから、仮に彼らハッカーを高給で雇って平日9時から8時間働かせてみても、期待ほど生産性は上がらないだろう(むしろ下がるんじゃないかな)。ハッカーに力が湧いてくるリズムは一定じゃないし、普通のオフィスでの仕事には、各種の報告書書きや割り込んでくる電話のベル、それにつまらないミーティングと、ハッカーの気力を削ぐに十分な要素が揃いすぎているしね。

ハッカーを企業内での生産にうまく結び付けるにはどうしたらよいだろうか。数年来のハッカーとの親交の過程で観察したところでは、ハッカーをうまく働くよう誘導するには、定常的な作業を半ば放任してさせつつ、ときどき彼らの関心を引くような(本当にやってもらいたい)仕事を投入するのがよいようだ。とりわけ、ハッカーがつまらない仕事をしているときに、解決したいプログラミングの難題をハッカーの身近な囮役に悪戦苦闘させるのが最適。ハッカーはダラダラした仕事が何より嫌いで、そんな作業をしているときは現実逃避する意欲が旺盛だ。そこで知的好奇心を刺激するものがあればがっちりと食らいつくこと間違いなし、というわけ(読者にこの傾向があるなら、ハッカーになる素質がある)。そして、ハッカーは、一般人が頑張って1人週あるいは12人月とかかるようなものを、わずか1日足らずで作り上げてしまう。しかもたいていの場合、その完成度は驚くほど高い。

とは言え、ハッカーの集中力は有限なので、気分が乗らないときにはどう時間を費しても無駄になる。ハッカーが多趣味なのは、ほかの分野で活動することで充電を図ろうとするからだろう。そして、その活動もまた彼らにとっては「ハック」の1つである。たとえば、私にとって料理や執筆というのは一種のハックだ。しばしば寝食を忘れてゲームに没入する友人はそれがハックと同根であると言い、ポール・グラハムはその著書*で「ハッキングと絵を描くことにはたくさんの共通点がある」と述べている。

■Win-Winな関係

さて、冒頭で私自身を「つなぎ役」と評したけれども、これは今の書籍編集者という本業とも関わりがある。発端は『CVS――バージョン管理システム――』(オーム社)になるだろうか。この本はもともとハッカーの友人から「この訳書を出せないかな」と頼まれて、付き合いのあるいろいろな出版社に売り込んでみたのだけど、当時はまだオープンソース系の書籍にはどこも気乗り薄で、なかなか取り上げてくれるところがなくて苦労した。最終的には、翻訳や編集を弊社で行い、技術をよく知るハッカーたちに監修をしてもらうという組み合わせで出版することができ、売れ行きも予想を大きく上回ることになった。

これ以降、オープンソース関連書籍は意外に手堅く売れるという雰囲気が業界にできてきて、いろいろな出版社から翻訳書の監修や執筆の相談を受けては友人のハッカーたちにお願いしたり、あるいは逆にハッカーたちが訳書を出してほしいと思っている書籍を伝えて出版にこぎ付けたり、という役回りが多くなった。出版社は技術に裏打ちされたしっかりした書籍を出せるし、ハッカーたちは興味のある本を日本語で読めるようになって印税も入るし、弊社は競合他社との差別化でアピールできるし、私は自分の関心領域の仕事ができてモチベーションも上がるし(笑)、とモデルとしては悪くないと思う。

一時期の深刻な出版不況では単に媚びるだけの「萌え」や「初心者向け入門」の書籍ばかりが席巻して苦しい時期もあったものの、最近は一段落して、再び『Code Reading』(毎日コミュニケーションズ)のような難度の高い技術書も売れるようになってきた。今後ともハッカーたちの技術に保証された良書を出版して皆さんの知識を高め、ハッカーを増やすお手伝いをしていきたい。

■ハッカーになるには

プログラミングのスキルを上げるには、まず良書や良いコードをたくさん読むことをお勧めする。Webページのつまみ食いやメーリングリストに質問することで当座の問題解決はできるかもしれないが、身銭を切って勉強しないとなかなか身に付かないのではないかと思う。あとはちょっとした作業が発生するたびにそれを解決するプログラムを作ってみる習慣を付けたり、ほかの人のプログラムを修正したり、開発系のオープンソースソフトウェアプロジェクトに参加して活動したりするようになれば、自ずとスキルは上がっていくだろう。

また、原因と結果の間をつなぐ「論理的思考」を養う*ことも重要だ。たとえばメーリングリストなどを見ていると、論理的思考ができない人はいつまで経っても初級者から脱却できず、レベルの低い質問ばかり繰り返す傾向がある。これではハッカーへのスタート地点にすら立てない。

最後に、コンピュータの世界だけでなく、広くいろいろなものに関心を持って、自分を高めることを心掛けてほしい。英語力もそうだし、日本で活動するなら日本語の表現力も持たないとね。

■次回は

次回の講師は、私の知る偉大なハッカーの1人であり、ウィットに富んだエッセイストとしても知られる高林哲さんにご登場願おう。Happy Hacking!


Copyright 2005 Kenshi Muto