あらゆるものはコンピュータで動いている!!コンピュータの仕組みを宇宙一分かりやすく解説してみる

どうもです!わだっしーです!

現場でリーダーをやっている23歳のSEです。

 

今回は『コンピュータの仕組み』を
宇宙一わかりやすく解説してみようと思います。

 

世の中のあらゆるものってコンピュータで制御されているというのは、
知っている人が多いと思うのですが、
それってどういうこと?
っていうのはよく知らない人が多いのではないでしょうか。

これはコンピュータの仕組みを知っていると、
コンピュータがどのように使われていて、
あらゆるものが動いているのか、
ということがわかるようになります。

コンピュータの仕組みを下記の3つの例を用いながら話しているので、
イメージしやすいと思います。

  • スマホのTwitterアプリ
  • スマホの音楽再生アプリ
  • エアコン

 

コンピュータって本当にありとあらゆるものに使われていて、
街をちょっと歩くだけでもコンピュータが使われているものが
知らぬ間に視界に入っています。

それに対して、
「コンピュータがどのように使われていて、どのように動いているのか?」
というのがわかるようになると、
家電量販店とかめちゃくちゃ楽しいですよw

冷蔵庫、テレビ、洗濯機、デジカメ、などなど。
仕組みを分析して、再現方法も見えるようになります。

 

 

こういうのを知っていると
人にこれを話すだけで興味をもってもらえる
ので知っててよかったなーって思います。

先日、19歳の文系大学生に、
「デジカメってどういう風に作られているんですか?」
と質問されたときに、
べらべらと仕組みを話したのですが、
メチャメチャ興味津々で話を聞いてくれました。

それがきっかけで仲良くもなりましたし、
いいことばかりですね。

 

 

今回の記事で、
コンピュータの仕組みを知って、
いかにコンピュータが使われまくっているか、
というのを知ってもらえたらうれしいです。

イメージがつかめればいいと思っているので、
コンピュータってこんな感じなんだなー
っていう理解で読み進めてもらえばOKです。

コンピュータの仕組みを宇宙一シンプル化すると

コンピュータにできることっていうのは、
実はたった2つしかなくて、

『記憶』と『計算』

だけです。

『記憶』と『計算』を組み合わせることで、
コンピュータの処理はすべて成り立っています。

 

それぞれを簡単に説明すると、

『記憶』っていうのが、
データをコンピュータに保存すること。

『計算』っていうのが、
『記憶』したデータを使ってコンピュータを動かすこと。

っていう意味になります。

『計算』っていうと、
算数とか数学を思い浮かべるかと思うのですが、
コンピュータの世界では、
「動かすこと」
という意味でとらえます。

 

コンピュータっていろんなことができるけれども、
やっていることはこれだけ?
って感じがしますが事実です。

だから、
コンピュータがスゲー万能だと思っている人にとっては、
なかなかの常識破壊かなと笑

この記事を書く前に
いろんな人のコンピュータの仕組みを解説
を見ていたのですが、
なんかすげーつまらないなと思ったので、
身近な題材を使いながら
コンピュータの仕組みを解説していきます。

 

まずは、
『スマホでTwitterアプリを起動する』
という行動で話していきます。

普段スマホはよく使うけれども、
その仕組みってよくわからないですよね。

しかも、
『Twitterアプリを起動する』
というだけなのに、
コンピュータってこんなに動いているんだってみんな知らないので、
人に話すと面白がられますよ。

 

まずは『記憶』についてです。

Twitterアプリを起動するという行動に対して
下記の4つのデータが必要とするとします。

  • Twitterアイコン
  • タップされたことを検知するためのプログラム
  • アプリを起動するためのプログラム
  • Twitterアプリ

これをコンピュータに『記憶』しておきます。

プログラムってデータなの?
って思うかもしれませんが、
プログラムって結局は文字の羅列なので、
それってデータなんですよね。

 

次に『計算』についてです。

上記でコンピュータに『記憶』しているデータを使って『計算』し、
『Twitterアプリを起動する』
ということを実現します。

文章として表現するとこんな感じ。

  1. 画面に「Twitterアイコン」を表示しておき
  2. 「Twitterアイコン」がタップされたら「アイコンがタップされたことを検知するプログラム」で、Twitterアイコンがタップされたことを検知し
  3. 「アイコンがタップされたことを検知するプログラム」は「アプリを起動するためのプログラム」にTwitterを起動しろと命令し
  4. 「アプリを起動するためのプログラム」はスマホから「Twitterアプリ」を起動し
  5. 「Twitterアプリ」が画面にTwitterを表示する

要するに
『アプリとプログラム(記憶)を使って、コンピュータによってTwitterを画面に表示している(計算)』
ということになります。

このように『記憶』と『計算』によって、
コンピュータは
Twitterアプリを起動する
を実現しています。

 

 

このようにコンピュータのすべての動作は、
『記憶』と『計算』で実現しているのです。

データを使って動かす。
これだけです。

コンピュータってすごい地味だと思いませんか笑

コンピュータはこれを高速で処理しているので、
何でもできるすげーマシンのように感じますが、
やっていることはめちゃくちゃ地味なのです。

コンピュータの仕組みってすげー地味なんだな
ってことがつかめたらここではOKです。

 

 

もう少しイメージをつかんでほしいので、
もう一つ例を見ていきましょう。

次は
『音楽再生アプリでスマホで音楽を流す』
という行動を例にして説明していきます。

ここでは『記憶』におけるデータの種類を追加します。

 

まずは『記憶』についてです。

スマホで音楽を流すという行為に対して、
コンピュータは下記の4つのデータを必要とするとします。

  • タップされたことを検知するためのプログラム
  • 音楽再生アプリ
  • 君が代.mp3
  • 音を流すプログラム

ここで先ほどと違うのは、
「君が代.mp3」で、
プログラムではありません。

先ほどの記憶データにはプログラムしか含まれていませんでしたが、
mp3もデータの一つです。

こっちのほうがなじみが深いと思うので、
理解しやすいと思います。

 

次に『計算』です。

コンピュータに記憶しているデータに従って、
『音楽再生アプリでスマホで音楽を流す』
ということを実現します。

文章で表現するとこんな感じ

  1. 「音楽再生アプリ」楽曲データ一覧を表示し
  2. 楽曲名君が代のタップで「タップされたことを検知するためのプログラム」は「君が代」が選択されたことを検知し
  3. 「音楽再生アプリ」は「タップされたことを検知するためのプログラム」から情報を取得し
  4. 「音楽再生アプリ」検知した情報から「君が代.mp3」スマホから探し出し
  5. 「音楽再生アプリ」は「君が代.mp3」を読み込み
  6. 「音楽再生アプリ」は読み込んだデータをもとに「音を流すプログラム」に音を流せと命令し
  7. 「音を流すプログラム」は「音楽再生アプリ」から命令された内容にしたがって音を流す

要するに、
『アプリとプログラムと楽曲データ(記憶)を使って、コンピュータによってスマホから音楽を流している(計算)』
ということになります。

 

ちょっと難しくなってきたかと思いますが、
すげー細かく動いているのがわかればそれでOKです。

このようにコンピュータは、
『記憶』と『計算』であらゆることを実現していて、
僕たちに便利なものを提供してくれているのです。

 

コンピュータの動作というのは、
めちゃくちゃ地味です。

こんな細かいところまでプログラムによって
制御してあげなきゃいけないのか!!
って感じですよね。

ですが、これがコンピュータの動作のすべてです。

 

あんないろんなことができるコンピュータなのに、
実際やっていることは
『記憶』と『計算』でしかなく、
その技術を膨大に積み重ねて出来上がっているのが、
今のコンピュータの形なのです。

こうやって中身を掘っていくと、
コンピュータって結構面白くないですか?

 

コンピュータでできることを知ってることで見えること

コンピュータは『記憶』と『計算』しかできない。

その組み合わせでいろんなことを実現している。

これが理解できると、
世の中のあらゆるものがどのようにコンピュータを使って実現しているか
ということが見えるようになります。

 

どうやって見ていくかというと、
分析する対象において
『記憶』の部分と
『計算』の部分を
洗い出していくと見えるようになります。

これは思いつく限り出しまくると
より鮮明に見えるようになります。

 

 

例えばエアコンのコンピュータについてみていくとしましょう。

エアコンを対象とする理由は、
今僕の目の前にあるというだけです笑

エアコンの全部の機能を対象とすると、
大変なので
『温度設定を1度上げる』
ということに対してみていきます。

 

まずは『記憶』の部分です。

僕もエアコンを作ったことがないので、
これを書いている時点での思い付きです笑

エンジニアが分解すると、
これだけ分解できるんだー
というぐらいの理解で全然OKです。

  • エアコンを動かすプログラム
    • 温度を検知するプログラム
    • 風を調節するプログラム
    • リモコンからの命令によってエアコンの動作を変えるためのプログラム
    • リモコンから信号を受信するプログラム
  • リモコンを動かすプログラム
    • リモコンから信号を飛ばすためのプログラム
    • リモコンのボタンを検知するプログラム
    • リモコンからエアコンに出す命令を考えるプログラム

これは合っているかどうかは大事ではなくて、
考えること自体に意味があります。

 

次に『計算』です。

絵にしてみました。

文章にすると下記のようになりますが、
興味がある人だけ読んでいただければと思います。

長いです笑

  1. 「リモコンのボタンを検知するプログラム」が温度を1度上げるボタンが押されたことを検知し
  2. 「リモコンからエアコンに出す命令を考えるプログラム」が「リモコンのボタンを検知するプログラム」から得た情報をもとに温度を1度上げるということを理解し
  3. 「リモコンからエアコンに出す命令を考えるプログラム」から「リモコンから信号を飛ばすためのプログラム」にエアコンの温度を1度上げろと命令し
  4. 「リモコンから信号を飛ばすためのプログラム」はエアコンの「リモコンから信号を受信するプログラム」に対してエアコンの温度を1度上げろと命令し
  5. 「リモコンからの命令によってエアコンの動作を変えるためのプログラム」は「リモコンから信号を受信するプログラム」からエアコンの温度を1度上げろという命令が来たという情報を受け取り
  6. 「リモコンからの命令によってエアコンの動作を変えるためのプログラム」は「温度を検知するプログラム」から現状の部屋の温度を読み取り
  7. 「リモコンからの命令によってエアコンの動作を変えるためのプログラム」は現状の温度から1度上げるための方法を考え
  8. 「リモコンからの命令によってエアコンの動作を変えるためのプログラム」は「風を調節するプログラム」に現状の温度から1度上げるための方法を伝え
  9. 「風を調節するプログラム」は風を調節してエアコンの温度を1度上げる

よくわからんくなってきましたね笑

一言でまとめると、
『リモコンのプログラムとエアコンのプログラム(記憶)をつかって、
コンピュータによってリモコンを使ってエアコンを動かしている(計算)』
ということになります。

 

 

こうやって
世の中でコンピュータが使われているものを
分解することができます。

知識があればあるほどより詳細に分解することができるし、
それを自分で再現することも可能になってきます。

僕はシステムエンジニアなので、
「~を作りたいです!」
とお客様に言われたときは、
こんな感じで脳内の知識と経験を整理して
システムという形に落とし込みます。

そういうときは、今回のように、
「たぶんこうじゃね?」
というのはNGなのですが、
考え方としては同じです。

 

これはどうやったら分析しやすいか実現可能か、
というのを考えるために僕が編み出した思考法なので、
ぜひやってみて欲しいなと思います。

もしかしたら
先に思いついてやっている人は
たくさんいるかもですが爆

 

今回紹介したほど細かく分解しなくても、
エアコンなら、

ボタン押す
→信号がエアコンに飛ぶ
→エアコンが動く

というぐらいのレベルでも、
十分に分解できているので、
その流れをコンピュータが制御している、
というのが理解できれば、
十分理解できています。

 

コンピュータの仕組みを知っているとITが面白くなる

今回はコンピュータの仕組みについて話してきました。

そして、コンピュータの仕組みを知ると、
コンピュータが使われているものの仕組みが見えるようになる
という話もしてきました。

 

コンピュータでやっていることって、
深く見ていくとすごく地味だし、
シンプルなんだけれども、
その膨大な技術の積み重ねで、
今の世の中が実現していると考えたら、
めちゃくちゃロマンがありませんか。

僕はこのロマンに惚れたからこそ、
今コンピュータにかかわる仕事をしているし、
なんだかんだ仕事に文句を言いながらも、
やっぱり好きなんだなと思います。

そして、コンピュータの仕組みを理解すると、
コンピュータが使われているものを分解することができ、
どのような仕組みで動いているかが見えるようになるので、
こんな楽しいことはないなと思います。

 

コンピュータでできているものを分解して話せると、
IT関係の仕事をしているしていないにかかわらず、
面白い話ができるのもメリットです。

わかりやすく話すというのが大前提ですが、
面白いと思ってくれるので、
人よりちょっと話が上手い人になった気分です笑

 

 

コンピュータの仕組みの根本的なところは非常にシンプルです。

それを知っていると分析だけでなく、
再現方法まで見えてくるのでめちゃくちゃ楽しくなります。

 

もし、今回の記事を見て面白いと思ったら、
この業界に興味をもってくれたらうれしいし、
同じ道を志す人が増えたらうれしいなと思っています。

 

 

ここまで読んでいただきありがとうございます!

以上、わだっしーでした!

稼ぐエンジニアの考え方を凝縮した電子書籍をプレゼント中

僕はシステムエンジニアとして
年間6000万円以上売り上げています。


才能があったわけではないし、
昔から超がつくほど要領が悪いです。


そんな僕がプログラミングを習得したり、
心から尊敬する先輩や上司から影響を受けて、
エンジニアとして成長することができました。


酸いもあまいも経験してきましたが、
普通の人よりもたくさん失敗してきて、
それをガソリンにして結果にフォーカスしてきました。


その経験から
「ポンコツでもエンジニアになれる」
と思っているし、
成長して理想の自分を手に入れられると信じています。


そして、今は同じ道を志す仲間を
1人でも多く増やして、
エキサイティングでより生産性的な社会を
作っていこうと夢見ています。


そういった理念をもとに、
僕の知識や経験をふんだんに絞り出して、
エンジニアとして成長し、
結果を出すにはどうしたら良いかを
体系的にまとめた電子書籍を作りました。


僕のストーリーも交えて作っていて、
20分程度でサクッと読める内容なので、
もし興味があれば読んでみてください。


→電子書籍『エンジニアという生き方で人生をデザインする。』


メールアドレスを入力すれば、受け取れます。


最後まで読んでいただきありがとうございました。


もしこの記事が役に立った!と思われたら
SNS等でシェアしていただけるとすごく喜びます。
(すぐ下のボタンからシェアできます)