ITエンジニアになろう!(その1)
読書と編集千葉直樹です。
昨日、かねてから準備していた「ITエンジニアになろう!」講座の1回目の講義を実施しました。
1回目は、「コンピュータの基本構成と動作」です。
内容は、
- エンジニアとは?
- bitから情報まで
- コンピュータの基本要素
- 各要素につかわれる部品の概要
- CPUはなにをしているのか
- 各要素の基本用語
といったハードウエア寄りのものです。90分の講義なので、ずいぶん早口になってしまいましたが、僕自身の経験を踏まえて実例をはさみながら進めていきました。
今は高度なIT環境を簡単に使えるとても恵まれた時代なので、正直なところ基礎的なハードウエアの話をする必要があるのだろうかと思ったりもしましたが、エンジニアを名乗るなら、キーワードくらいは知っている必要があるし、欲を言えばそのざっくりした動きだけでも知っておく必要があると考え直し、あまりマニアックになりすぎずに内容を概観できるように資料を準備して臨みました。
自分なりに整理してみると、CPUがやっていることは案外シンプルだし、昔と違ってペリフェラルとのやりとりは通信のくくりにしても問題ないのですね。それくらいシンプルにしてコンピュータのハードウエアの説明をしました。
受講者はITがこれまで専門ではなかったエンジニア志望の女性でしたが、わりと楽しんで聞いていただけたようで、要所要所で質問をはさみ、僕の失敗談に「おもしろーい」とコロコロ笑いながらの楽しい時間となりました。
質問のなかで僕が面白いと感じたのは、CPUのレジスタ(アキュムレータ)を説明したところでの「計算てなにをするんですか」というもの。もちろん計算は加減乗除なんですが、質問者はどちらかというとプログラム(今はJavaを勉強中)では計算らしいことをしないと感じるというのですね。
言われてみるとたしかにそうで、今やCPUがやっていることの大半は何かを制御することなのだなあと考え直しました。もちろん計算はやるけれど、それはほんの一部なんですね。むしろ今は複雑な計算はGPUがやっていたりするし、昔は浮動小数点演算コプロセッサなんてのもあったりした。
僕にはまだ「電子計算機」っていう言葉が頭の中にあって、CPUが計算をするのは当たり前だろうというイメージがあるのですが、実はそうではないのだなあと。
やっぱり人になにかを教えるということは自分の学びになることがたくさんあるものだなと思いました。
今のCPUはあまりにも複雑で、理解しにくい概念がたくさんあるので、8bitCPUを念頭にかなり簡略化した説明をし、今はもっと複雑だけど、結局はスイッチがガチャガチャ動いているんだとイメージしてほしいと言う感じでしたが、なんとなくイメージしてもらえたような気がします。
そして、Intelのプロセッサのご先祖様の8080のインストラクションセットを見てもらいました。たったの2ページ。これだけで結構ちゃんとしたプログラムがうごいていたという話をすると驚きとともにコンピュータの最も根源的な部分はとても単純にできているんだということが実感できるのではないかと用意したものです。なんだかよくわからない記号の山。それを理解する必要なないけど、そういう単純なものの積み上げの上で今のITが動いていることを是非イメージしてもらいたいのです。
メモリとポインタについてもざっくり話しました。ぼくはポインタの理解は大事だと思っています。なぜかというと、今のプログラミング言語では巧妙に隠されたポインタの概念が出てくるからです。
オブジェクト指向言語を使っていると、まずクラスとインスタンスの違いを知る必要があり、その次にインスタンスは複数ありうるのだということを学ぶことになります。このインスタンスを指し示すのはポインタなんですね。
ポインタの概念を知っていると、案外この複数のインスタンスというのが理解しやすいのではないかと思うんですね。そこでJavaScriptの’===’みたいな「ほんとにほんとのおまえ?」みたいな話をしたりするとわかりやすくなったりする。
ハードウエアの世界をイメージできるとプログラミングがしやすくなる。そういう信念をもって話をしています。
あとはグラフィックボードの上のGPUのの話から機械学習とかビットコインのマイニングの話をしたり……
まあこんな調子で、たのしく時間を過ごしていただきました。
IT系のエンジニアって、案外曖昧に使われている名称です。僕は長年エンジニアをやってきたので、僕なりの本格エンジニアの世界観を伝えたいと思っています。
次回は「ソフトウエアの構成」。BIOSとかOSとかドライバとかアプリケーション、そしてフレームワークとかVMや今流行のコンテナについても触れてみようと思っています。
今日はがっつり技術系のお話でした。
“ITエンジニアになろう!(その1)” に対して2件のコメントがあります。