ハンドルを回す電話からインターネットまでを話す講座
読書と編集 千葉直樹です
昨日は「ITエンジニアになろう!」講座の3回目の、ネットワーク要素の話をしました。
この講座で大事にしていることは、ITのエンジニアなら知っておいたほうがいい知識をつけることと、エンジニアらしいマインドを育むことです。
ポイントは一点。インターネットはケーブルでつながっていることを知るということ。
ソフトウエアだけの世界では物理的な世界のことを意識しないこともあります。
でも優秀なソフトウエアエンジニアは物理的な世界のことを意識しているものです。
一番簡単な例は処理速度ですね。つくったサービスが遅いとき、それを改善するのにソフトウエアの世界だけでやるのは大変で、ハードウエアを変えると嘘のように問題が消えてしまうこともある。
直感的に物理的な仕組みのことを知っていると、そういうときに解決策を思いつく可能性が高まるのです。
そういう考え方ができるのがエンジニアだと考えています。
電気はどうやって起こすことができるのか。昔の電話はどうしてハンドルをぐるぐる回すのか。電話の交換手はどんなことをやったのか。これらにはプロトコルとインタフェースが直感的に分かる形で含まれています。
電話は電線に電気を流すことで動作する。今のインターネットも流すものは光だったりするけれど、基本的にはケーブルがつながっている。そこで世界の海底ケーブルの接続図を見て、敷設の仕方や震災で切れてしまった話もしたりする。一部は無線、それでもそこに見えない線がある。そうイメージしてもらうようにする。
そして、OSI参照モデルを一気に説明し、より具体的な実装でメジャーなTCP/IPのプロトコル・スタックを説明し、パケットの構造をざっくり説明し、ルーティングについて図を見てもらい、ソフトウエアの世界に近いアプリケーションレイヤのプロトコルとしてhttpを取り上げ、そこで送受信されるメッセージを見てもらう。
さらに、クライアント・サーバやPear to Pearにまつわる多少哲学的な話、未来の通信はひょっとしたらこんなふうになるかもっていう話まで。
とんでもない早口ですが、これらのことを90分弱でお話しました。
もちろんこれですべてを説明できたわけではありません。でも疑問を持った時に調べることができる語彙はかなり増えたはずです。
あとは受講者におまかせするんです。
今受講頂いている方は好奇心が旺盛で、「この仕組みはどうなっているんだろう」と思うとそれがわからないともやもやするそうです。これはエンジニアとしてとても重要な素養です。
受講者の方は、実際の通信データがどんなふうに電気的・光学的に変換されて流れていくんだろう?というところに疑問をもったようでした。
時間切れでざっくりしか説明できませんでしたが、次回お会いしたら、ヘッドホンで録音したことがある話をしようと思っています。そこから量子化の話までするとだいぶ思考の材料がそろうかな。
モノを見て、その中身を想像する。この想像力はますます重要になってきます。本当はエンジニアじゃなくても大事な素養です。
これができるようになると生活の中のストレスが少し減るという効能もあったりします。
次回はソフトウエアの基礎となるプログラミング言語とフレームワークの話をしようと考えています。
ツカミは決めています(^^)。
また楽しく笑っていただけるように講座の内容を設計していきますよ。