失敗から学ぶ ~ 例えばわたしの場合 ~
【Intro】
失敗から何かを学ぶという経験は、けっこう多いですよね。わたしもいろいろな失敗しながら、いろいろなことを学んできました。今回は、わたし自身が経験した失敗の中から、一番印象に残っていて、比較的ウケがいいネタについて、お話しさせていただこうかなと思っています。ちょっと前にTwitterで軽くつぶやいた内容なので、すでにそちらでご覧になられた方にとっては新鮮味がないかもしれませんが、少々おつきあいいただければと思います。
【高校入学前夜~入学後】
ほとんどの方が経験しているであろう、高校受験。志望校を選ぶポイントは人それぞれだと思います。わたしは小学校の高学年のときからコンピュータに触れていたこともあり、将来はコンピュータ関係の仕事をしたいと考えていました。当時いろいろと調べてみたところ、コンピュータ関係について学習できる高校が2校ありました。一方は商業系、もう一方は工業系。どちらを受験するか非常に迷ったのですが、C言語を勉強したいという思いがあったのと、コンピュータ関係以外の授業内容をみたときに面白そうだという理由で、工業高校に進学することを選択しました。
わたしの中学校生活は、実に平凡そのものでした。可もなく不可もなく……というよりも、「不可」のパーセンテージが突出していたような気がします。授業態度はともかく、成績もたいしたことはなかったはずなのですが、推薦枠で受験させていただけることになりました。国語や英語はともかく、数学、理科、社会の勉強が大嫌いだったわたしにとっては、願ったり叶ったりでした。
いろいろな方々のご指導をいただいたこともあり、おかげさまで無事高校に入学することができました。入学後に工業高校特有の体育会系的ノリでいろいろと大変な目にあったのですが、それは今回の話題と関係ないので省略させていただきます。
【自己鍛錬の名目で好き勝手にやる毎日】
高校入学後、当初の目標に掲げていたとおりC言語の勉強を独学で始めました。当時は叔父からもらったPC-9801 VMが家にあったのですが、開発環境はありませんでした。高校の先生に相談してみたところ、エル・エス・アイ ジャパンさんのLSI C-86(試食版)というコンパイラの存在を教えていただいたので、それを使って勉強していきました。
同時期にC言語の入門書を買い、その本に書いてあるサンプルを打ち込みつつ、分からないところは聞きつつ、普段の授業よりも熱中して勉強していたことを覚えています。そういえば、C言語の学習中にリアルタイムキー判定がしたくなったことがありました。いろいろ調べたのですが要求通りの動作をする関数がなく、例によって先生に相談したところ、そのような動作をする機能をアセンブラで書いてもらった……なんてエピソードもありました。
C言語の学習を楽しく進めていたのですが、あるときその先生から「UNIX」というものの存在を教えてもらいました。正確にいうと、その先生が教えてくれたのは「FreeBSD」だったのですが、当時のわたしはそんなことを知っているはずもなく、単に「C言語の開発環境がただで手に入るなにかがある」といったレベルの理解だったような記憶があります。その後、いろいろと興味を持って調べてみたところ、どうやら「Linux」などというものがあるらしい……ということを知りました。
このとき「Linux」というワードに興味を持っていなければ、今わたしはこの仕事をやっていないことでしょう。……と、それはさておき。
その後、Linuxのインストールディスク(確かVine Linux)のついた雑誌を購入し、インストール方法の解説記事を読みながらいろいろと妄想していました(自宅のPC-9801VMにはインストールできないので)。そんなある日、学校のPCを1台勉強用に借りて、そのPCにLinuxをインストールするというチャンスを得ました。自宅で何度も読み返したインストール方法の解説記事を慎重に読みながら、そのPCにLinuxをインストールしていきました。今となってはそんな感動を味わうこともなくなりましたが、このインストールのさなかはまさに「ワクワクドキドキ」な気持ちでいっぱいでした。
インストールが無事終わり、プリインストールされたソフトウェアを適当に起動したり、Linux上でC言語の勉強をしたりしていました。当時のわたしは、「Linux使ってる俺、かっこいい!」などと痛いことを考えていたような気がします。
【そうだ、サーバを構築してみよう】
最初のうちはC言語のお勉強に精を出していたのですが、次第にLinux自体の知識が増えていくにつれ、プログラミング以外にもいろいろと楽しいことができるということが分かってきました。その中で特に興味を引かれたのが、「Webサーバの構築」でした。
当時、インターネットというものが普通に使われ始めていたので、世間一般でいうところの「ホームページ」というものの存在は認知していました。それがどうやって手元のPCに表示されているのか、興味を持ってはいたのですが、とことん調べるほどの情熱はなく、しばらくその疑問を忘れていました。……が、いつのまにかC言語と同じくらい興味を持っていたLinuxの勉強を進めていくうちに、その疑問が解決し、同時に「それを自分でもやってみたい」という新たな目標を生み出すことになりました。
せっかく手元にLinuxがあるのですから、やらない理由などありませんでした。確か、わたしが買ったLinuxの本には運がよいことにWebサーバの構築方法の解説も載っていたのです。……もっとも、起動方法やら必要最小限のコンフィグ設定個所といった簡単なモノでしたが。
まさかこれが後にあんな悲劇を引き起こすとは……。そのときは誰も想像すらしていませんでした。
【校内ネットワーク=ダウン】
結論から申し上げますと、わたしの知的好奇心のせいで、校内ネットワークがダウンしました。
当時のわたしは、Linuxだけに限らず、ネットワーク関係の知識は皆無にひとしかったのです。不幸なことに、「DNS」や「サーバは固定IPアドレスを振る」といった非常に危険なワードの存在は知っていました。そして、「どこをどう設定するのか」ということも、多少は分かっていました。しかし、大変残念なことに「それを設定するとどこにどんな影響が出るのか」という知識がすっぽりと抜けていたのです。
控えめにいうと「行動的な馬鹿は手に負えない」状態。わたしはWebサーバの構築という暴挙に出たのです。
具体的にわたしがやらかしたことをご紹介しましょう。……端的にいうと、「校内のルータ(GW)のIPアドレスを、手元のLinuxマシンに設定」という暴挙に出ました。賢明な読者の皆さまでしたら、これが何を引き起こすかお分かりになることでしょう。たちの悪いことに、「デフォルト設定のまま」DNSとDHCPのデーモンが起動していました。
なぜそんなIPアドレスをわざわざ選択してしまったのか……。当時のわたしは、このような思考パターンを持っていました。
- 「Webサーバを構築したい!」
- 「Webサーバを起動しよう! →無事起動できた!」
- 「なんかDNSとかいうのも必要らしい →なんかBindとかいうのが入ってるらしいぞ →取りあえず起動してみるか」
- 「DHCPとかのもあるけどなんだこれ? →よく知らんけど起動してみるか……」
- 「取りあえずLinuxにもWebブラウザが入ってる →これで127.0.0.1にアクセスすると見られるらしい →見れた! やった!」
いろいろと突っ込みどころ満載なのは自覚してますが、取りあえず「Webサーバを立ち上げる」という目標は達成しました。そう、それ自体はうまくいったのです。しばらく達成感に浸っていたのですが、突然内線電話のベルが鳴り響きました。そのときは、自分が非常にまずいことをやらかしていたという自覚がなかったので、気軽に受話器を持ち上げました。
【職員室に呼ばれて……】
受話器の向こうから聞こえてくる声は、いつもの先生の声でした。たしかに聞き慣れた声ではあったのですが、どことなくいつもと空気が違うような気がします。そう感じた理由の1つは、第一声が「おまえ、なんかした?」だったせいかもしれません。
繰り返しますが、悪いことをした自覚がないので「ええ、勉強がてらWebサーバを立ち上げましたよ~」などと言ったような気がしますが、その後間髪入れずに「取りあえず、そのLinuxマシンをシャットダウンして職員室に来て」とのお言葉を頂戴し、ようやくなにか自分はしでかしてしまったのだということを、理解しました。
マシンをシャットダウンしたわたしは、これから怒る悲劇を想像しつつ、職員室に向かうことになりました。
職員室についたとたん、わたしは当然ながら事情説明を求められました。自分が何かしでかしたらしいことは理解できたのですが、具体的に何をやらかしたのかが見えてきません。内心パニックになりつつ、自分のやったことを順番に説明していきました。
先生:「で、何してたの?」
わたし:「えっと、勉強のためにWebサーバの構築を……」
先生:「ひょっとして固定IPアドレスを設定した?」
わたし:「あ、はい。必要らしいので」
先生:「なんのIPアドレスを使ったの?」
わたし:「隣にあったWindowsマシンで、ipconfig /allって打って表示されたアドレスから適当に……」
先生:「ひょっとしてさ、デフォルトゲートウェイとか書いてるところのやつを使ったりした?」
わたし:「使ったかもしれません……」
先生:「ひょっとしてさ、DNSとかDHCPとかも一緒に起動したりした?」
わたし:「はい……」
先生:「あのね、そのせいで校内のLANがまともに動かなくなったんだよね……」
わたし:「……え?(汗)」
大まかな流れはこのような感じだったと思います。このやりとりをしている間、どうやら自分はとんでもないことをしでかしてしまったのだということを、はっきりと理解することになりました。
この話をしている間、わたしは怒られることはありませんでした。今やっていることをやめろといわれることもありませんでした。たしかに、叱られてはいたのですが、「何がいけなかったのか」とか「なぜいけなかったのか」、「どうすればよかったのか」という点をまさに「指導」していただいたという印象を持っています。むしろ「勉強してもいいから、このIPアドレスを使え」と、固定IPアドレスを1つ払い出してもらったほどです。
【Outro】
その先生をはじめ、学校のほかの皆さんはたまったものではなかったでしょうが、この経験を通してわたしは技術的なことはもちろん、それ以外のなにか大切なものを学びました。騒動を引き起こした張本人がいうのもなんですが、失敗から学ぶことってほんとうにあるもんなんだなぁと……。
念のため申し上げておきますが、わたしのやったことは決して褒められたことではありません。こういったことをやりたいなら、事前にしかるべき人にちゃんと相談して、許可を得てからやりましょう。
ちなみに……。この話よりもインパクトはないのですが、社会人になってからやらかした失敗ネタもあったりします。それについても書こうと思ったのですが、余白が足りないようです。
当コラム「若人視点」へのご意見・ご感想・ご批判など、歓迎いたします。コメント欄に記入いただくか、el@hyec.org宛にメールしてください。「@hyec」というアカウントでTwitterもやっていますので、もしよろしければフォローしてください。
いただいたメッセージはすべて拝見させていただきますが、個別にお返事させていただくことが難しいかもしれません。
なお、特に当コラムに対するご質問や誤字・脱字、認識の誤りについてのご指摘をいただいた場合は、個人を特定できないようにしたうえで、当コラム中で使用させていただくことがございます。