よしさっそくプログラミングの勉強をするぞ!
ちょっと待った!
その前にまずはコンピュータの基礎について学んでおいた方がより理解度が高まるよ!
はじめに
プログラミングの学習を始める前に、コンピュータの基礎について学びましょう。
いきなりコーディングを始めて、変数やら引数やらを説明されても理解できないのは当然です。
そもそもコンピュータがどう動いているのか、プログラムとは何なのかという、基礎の基礎を知っておくと、理解がよりスムーズになります。
(もちろん知っていなくてもプログラミングはできます。
あまりこの部分を突き詰めない研修もあると思います。
けれども本サイトは最低限の技術と知識を身に付けて、現場で仕事ができるレベルを目指しているわけではありません。
完全未経験の初心者が一人前の技術者になることを目指しています)
コンピュータの機能は5つのみ
皆さんはコンピュータがどのように動いているのかご存知でしょうか。
パソコンやスマホを使ったことはあっても、仕組みは知らない人は多いでしょう。
(分解はしなくても大丈夫ですが、)カバーを外すとよく分からない部品やコードが繋がっている、マザーボードとかHDDとか知らないカタカナ、アルファベットを聞いているだけで目眩がするかもしれません。
実はコンピュータは基本的に5つの機能で動いています。たった5つです!
そんなわけないぞと、スマホには何十個もアプリが入っているぞと、よくわからない部品がいっぱい入っているじゃないかと、そう反論する人は落ち着いてください。「基本的に」5つです。
コンピュータが色んな事ができるのは、このたった5つの機能をうまく組み合わせることによって実現しているのです。
コンピュータの5つの機能の紹介
ではその機能とは何なのか。
5つの機能は下記のとおりです。
※場所によっては5大機能、5大装置など言い方が違っていることがありますが、本サイトでは「機能」で統一したいと思います。
・入力機能
・出力機能
・記憶機能
・演算機能
・制御機能
電卓をイメージするとわかりやすいかもしれません。
百均の電卓でもいいですし、スマホの電卓アプリでもいいです。
電卓を使うとき、キーを押して数字を入力します。これが文字通り「入力機能」です。
計算式を入力して、最後に=(イコール)を入力すると計算結果が画面に表示されます。
これが「出力機能」になります。
例えば足し算をするとき、最初の数字を入れた後に+(プラス)を入力して、次の数字を入れると最初の数字が消えてしまうかと思います。
(スマホの電卓アプリだと表示されたままかもしれませんが、、)
しかし最初の数字は表示されていなくても電卓がちゃんと記憶しています。
なので計算が正しく行われるのです。
これが「記憶機能」になります。
「演算機能」は電卓だとわかりやすいですね。そのまんまです。
「制御機能」は少しわかりにくいかもしれません。
演算機能とセットで扱われることが多いです。
数字が入力された場合に桁を増やして、四則演算が入力された場合は計算の準備をするなど、演算のサポート的な立ち回りを担っています。(もちろんコンピュータに欠かせない機能!)
入力機能
ではここからは各機能ついてもう少し詳しく確認していきましょう。
コンピュータを使う、その時私たちは何かしらのアクションを行っています。
よく例として挙げられているのはマウスやキーボードですね。
マウスでカーソルを動かして、ファイルをダブルクリック、スマホならタッチやスワイプも入力になります。
コンピュータが動くとき、必ず入力があります。
お掃除ロボットも入力なしで掃除しているわけではなく、カメラやセンサー等の入力情報から部屋の間取りを計算して掃除しているのです。
なので「入力機能」が5大機能の一つの要素となっています。
コンピュータを動かすのは人間、とは限らない
コンピュータを操作できるのは人間、だけではありません。
コンピュータがコンピュータに指示を出すことができるのです。
映画でわるい人がコンピュータにハッキングして
乗っ取ったりするのをイメージするかもしれません。
しかし日常でもコンピュータ→コンピュータの場面は、見えていないだけで多く存在します。
例えば信号機はそれ単体で切り替わっているのではなく、道路や地区全体で連動して動いています。
その全体を管理する中央システムみたいなものが、個々の信号機に指示を出しているのです。
信号機一つ一つを人間が管理するのは大変なので、一か所でまとめて管理するのは、まさにコンピュータ技術のおかげですね。
出力機能
コンピュータを使うとき、何かしらの出力がなければ、実際に動いているのか分からなくて困りますね。
もし券売機にお金を入れたのに何も反応が無くて、お金も帰ってこなかったら、たいていの人は怒ると思います。
なので「出力機能」が5大機能の一つの要素となっています。
よく例として挙げられているのはディスプレイ、いわゆる画面の映像や、スピーカーから出る音、プリンターで印刷した書類とかです。
色んなものを出力できるように見えて実は、、
映像や音楽など、様々なものを出力できるコンピュータ。
しかし実際は全て「データ」という一つの出力でしかないのです。
データはいわゆる0と1の信号で、これを受け取ったモニターやスピーカーが映像や音楽として出力し、それが私たちに伝わってきます。
記憶機能
記憶機能もコンピュータを構成する重要な要素です。
もしコンピュータの記憶力が皆無だとしたら、どうなるでしょうか?
時間が経ってコンピュータが忘れてしまい、データが消えてしまうなんてことがあったら大変です。
ではデータはどのように記憶されているのでしょうか。
例えばCD、あるいはカセットテープも立派な記憶装置です。
裏面やテープの部分にガリガリと溝を掘って、読み込む際にその溝をなぞってデータを取得します。
「コンピュータってもっと凄い方法でデータ保存しているんじゃないの?!」
「物理的に削るなんて、なんて原始的!」
意外に思うかもしれませんが、この方が確実に記録できるのです。
主記憶装置・補助記憶装置
しかし、毎回ガリガリやっていると、コンピュータとしては処理が遅く、高速で何回もやっていると劣化も進んでしまいます。
なのでコンピュータにはガリガリやらずに高速で処理する「主記憶装置」と、遅いけど大容量で記憶できる「補助記憶装置」に分けて、それぞれ上手く使い分けてプログラムを動かしているのです。
演算機能・制御機能
最後は演算機能と制御機能についてです。
二ついっぺんに説明するのは書き疲れたからではなく、この二つの機能が密接に繋がっているためです。
一般的にもCPUという一つの部品に集約されているため、ひとまとまりでよく扱われます。
演算機能は記憶装置からデータを受け取って、様々な演算処理を行います。
制御機能は記憶装置からプログラムを読み込んで解析し、その命令に従って他の装置に指示を出す役割を担っています。
コンピュータ全体の司令塔みたいなものだと思って構いません。
さいごに
IT企業の新人研修ではこの部分は、とりあえず覚えておくようにと言って、さらっと進めてしまう場合が多いかもしれません。
5大機能をちゃんと知っていなくてもプログラミングをすることはできます。
現場で仕事を進めることもできます。
しかし、ある程度進んだところで躓いてしまいます。
転ぶほどではないですが、ちょっとコケるくらいです。
その場で調べて理解することもできますが、結局のところ基礎の基礎をおろそかにしてしまうと、いずれは問題が発生してしまうのです。
結局のところ、一番の近道は基礎を一つ一つ丁寧に積み重ねることです。
基礎を軽んじることなく、しっかりと身につけていきましょう。