改めてまして、コンピュータはどうして動いているのでしょうか?
コンセントに電源を繋いでいるから?そういうもんだから?
確かに、動いてくれていれば別段、構わないかもしれません。
ですが、中身を知ると今まで以上にコンピュータのことを好きになれるんです。
今回は矢沢久雄さんの「コンピュータはなぜ動くのか」という2003年に書かれたものの、今でも読むべき一冊を紹介します。
この記事では、書評と要約を通してコンピュータの面白さについて解説していきます。
では、行ってみましょう!
本書の概要
ページ数
全271ページでした。
読むのにかかった時間
大体3時間半ほどで読み切ることができました。
構成
コンピュータの原理原則の話をマイコンと呼ばれるミニコンピュータの実験(紙上でできるもの)を通して解説されていました。
実際に動いているところを見る形の説明が多い構成で、エンジニア初心者にぴったりの内容となっていました。
おすすめ度
おすすめ度は5点満点中4.5点です。
初心者のエンジニアにはこれほどぴったりの書籍はそうそうないと言えるほどの一冊でした。
新しい技術が毎日更新されるようなIT業界だからこそ、「コンピュータはなぜ動くのか」という超基本的な部分が重要になるのです。
基礎ができていると、その後の応用や新しい技術にもとっかかりが生まれてきます。
所詮世の中の新しい発明はコンピュータという土台がある上なのです。
なので、初心者エンジニアや、いまいち技術力が高まらないと伸び悩んでいるエンジニアには読んでほしいと思いました。
逆にすでに基礎は固まっている、あとは応用を効かせるだけという方にはこの本は向きません。
技術書としては基礎的な部分、古い話(XMLやC言語などが中心)が多めなのでこの一冊で技術力の大幅な増強は望めないでしょう。
エンジニアなりたてやこれからエンジニアを目指す方は、ぜひとも読んでみてください。
コンピュータの簡単な仕組み
コンピュータの仕組みを簡単にまとめると「入力を受けて演算して出力する」です。
どんなシステムも元を辿ればこのような仕組みになっているのがコンピュータになります。
例えば、ChatGPTのような超最新のシステムでも、ユーザーがチャットで話しかけるという入力を行なって、ChatGPTが学習モデルに沿った演算を行なって、ユーザーにわかりやすい形でチャットとして出力するという流れです。
入力を受けて、演算して、出力するというのは、コンピュータの基礎であり絶対動かない真理になります。
ある意味で僕たち人間も、目から入る景気(情報)を入力として、頭で考えて(演算して)水を飲んだりご飯を食べたりする(出力)ので、コンピュータの基礎が変わらないのは人間と一緒と考えることができるでしょう。
コンピュータの仕組み部分をさらに踏み込んでいくと、電気の信号になってきます。
電気が流れていれば1、電気が流れていなければ0となるのです。
3つの電線A、B、Cがあった時に、AとBにだけ電源が流れればXという処理、Aだけ電源が流れればYという処理を行う場合を考えるとイメージしやすいと思います。
どこに電気を流すかを制御したり、コンデンサの仕組みを利用することで意図したところに電源を流す電源タップを操作して、家電の電源を入れるようなイメージです。
コンピュータは複雑に見えて、今も昔も変わらない単純な仕組みになっています。
プログラミングの簡単な仕組み
プログラミングと聞くと非常に難しいように感じてしまいますが、全然そんなことはありません。
まずプログラミングをする上で、必要な考え方がプログラミング言語です。
ですが、このプログラミング言語というのは基本的に同じものになります。
書き方の癖が異なるだけで、コンピュータに命令するという点ではJavaもC#もPythonもRも全て同じです。
コンピュータへの命令をリストにしたのがプログラミングというイメージで良いと思います。
①窓を開ける
②天気を見る
③雨が降りそうだったら④へ、晴れだったら⑤へ
④折り畳み傘を鞄に入れる
⑤鞄を持って家を出る
⑥帰宅&①へ戻る
のようなイメージで、日常全てのことをプログラミングのように記述することさえできちゃいます。
プログラミングは自由で、川の流れのイメージを持つことでグッと身近になります。
プログラミングを習得する際もこの川の流れというプログラミングの仕組み、上から流れる仕組みを意識してみてください。
SEとプログラマの違い
SEとプログラマの違いを説明することができるでしょうか?
プログラマの上にSEがいる。SEの一部がプログラマである。
どちらもかすってはいますが、本質ではありません。
SE(システムエンジニア)の本質は、ITシステムを統括する者を指します。
プログラマはプログラミングを書くことを生業としている者を指します。
なので、上下関係というよりも同じIT分野だけど、役割が異なると考えた方が良いです。
SEはシステムを構築する際の全体を見て、どうやって何を作るかを決め、誰をどう配置して進めていくかというマネジメント的側面も持っています。
プログラマは、システム開発のプログラミングを基本的に主担当としています。
SEは全体を見る力が必要で、ITの広い知識とコミュニケーション能力が必要な仕事。
プログラマは、ITの専門的な知識とコーディング能力が必要な仕事になってきます。
SEとプログラマの違いをしっかり認識して、どちらを目指すべきかは自分の素質に合わせてみてください。
一つのことに注力したいなら、プログラマ、開発全般をしたいならSEって感じですかね。
ちなみに、マネジメント能力が求められる分SEの方が給料は高くなりがちです。
最後にこれだけは覚えて帰って!
ここまでコンピュータの仕組みやら、プログラミングの話、SEの話をしてきましたが、これだけは覚えておいてください。
「コンピュータは難しくない、プログラミングやITは生活をより良くするためにある」です。
プログラミングができるようになればお金が稼げるわけではなく、多くの方の課題や悩みを解決できるようになることでお金を稼げるようになります。
なので、コンピュータの知識を覚えつつどうやって社会に貢献できるか、という観点で見るようにしてください。
楽しさが倍増するだけでなく、知識がお金に直結するので効率の良い考えだと思います。
まとめ
今回は矢沢久雄さんの「コンピュータはなぜ動くのか」を中心に、エンジニアについて解説してきました。
かなり内容を端折っているので、もっと詳しいところを聞きたい方や、暗号やネットワークの基礎も知りたい!という方は本書読んでみてください。
初心者でもわかりやすく書いてあるので、どんな方も一度は読んでみて損はしない一冊だと思います。
僕自身SEとして働いているので、働き方や他にもおすすめ本知りたい場合は、TwitterのDMなどで聞いてくれれば嬉しいです。
では、皆さんのコンピュータへの知識が深まることを祈っています。
コメント