読者です 読者をやめる 読者になる 読者になる

インターネット・プログラミングの初心者のための基礎知識をざっと解説【入門編】

Media Media-ウェブ

f:id:ibookwormer:20160605160621j:plain

みなさんこんにちは、Ichiです。

今日は案外知らないPC・インターネット・プログラミング界隈の基礎のキソ的な知識について、解説したいと思います。基礎を知っていると、PCを買う時や、プログラムをいじる時などに便利です。

HTMLやCSSなどについて解説している記事は多いですけれど、それ以前の基礎知識をこの記事ではご紹介できればと思っています。知ってる人には「こんな事かよ」と思われるかもしれませんが、案外需要あるかなと思って書いています。

あくまでも基礎知識なので、これを基に知識を深めていきましょう。特にプログラミングの初心者の方や、入門編に基礎知識を勉強しておこうという方におすすめの内容です。

時間がないという方は、まとめの部分だけ見ていただけるといいと思います。

目次

PCの基礎知識

f:id:ibookwormer:20160126175520j:plain

PCは・CPU・メモリ・ストレージ・I/O の主に4つの部分から構成されています。
では、それぞれの機能を見ていきます。

CPU

CPUは正式名称Central Processing Unitです。役割としては、プログラムからの命令を解釈して処理することです。CPUの性能を評価する指標は3つあります。


①ビット数
ビット数は一度に処理できるデータの大きさを表しています。

②クロック周波数
クロック周波数はデータを処理するテンポを表しています。

③コア数
コア数は搭載されているCPUの個数を表しています。

つまり、データを食事だと例えると、ビット数は食べる人の口の大きさ、クロック周波数は食べるスピード、コア数は食べる人数のようなものですね。

メモリ

プログラムやデータを記憶する装置です。数値の読み書きは高速で出来るんだけど、電源を切ってしまうと記憶が飛んでしまいます。飲み会とかで、めっちゃ高速で飲み食いするんだけど、次の日に「ちょっと昨日の記憶無いわ...」とか言う奴と同じ匂いがしますね...。

ストレージ

メモリと同様に、プログラムやデータを記憶する装置です。メモリとは違うところは、数値の読み書きが低速だけれど、電源を切っても、記憶が失われないという点です。

I/O

I/OはInput / Outputの略で、PCと外部の機器(キーボード、マウスなど)を接続するための装置です。

OSの基礎知識

OSはOperating Systemの略で、有名なものでは、WindowsMacLinuxなどが挙げられます。OSはプログラムが集まって出来ているソフトウェアです。OSがどんな仕事をしているかと言えば、ソフトウェア(プログラム)とハードウェア(マウス、ディスプレイ、キーボードなど)の間を取り持つような役割をしています。


例えばキーボードを打っていることをウェブブラウザに知らせるのはOSによるもので、マウスがクリックされていること伝えるのもOSのお仕事です。また、プログラムを監視し、状況に合わせてそれを制御するのもOSの仕事です。

つまり、情報の伝達とプログラム制御がOSの主なお仕事なわけですね。

インターネットの基礎知識

インターネットはコンピューターをネットワークで接続して、1つのシステムを作ろうという夢物語が具現化したものです。しかし、個々のコンピューターを接続する方法では、データのやり取りはできるものの、データの所在が分からなくなったり、色々と面倒なことがありました。

そこで、拠点を何個か作って、そこにデータを保存して、個々のコンピューターが拠点にアクセスすることで、データを取り出すことが出来るようにしました。このシステムがWorld Wide Webです。「www」であったり「ウェブ」と略されていますね。

そして、このウェブ上の拠点が「サーバー」と呼ばれるもので、サーバーからデータを取り出すのに使うものを「ブラウザ」と呼びます。ブラウザの種類には、【Internet Explorer】【Google Chrome】【Fire fox】などが挙げられます。

サーバーについて

このサーバーの役割は従来物理的なコンピューターが努めてきたのですが、最近では、サーバーの「仮想化」によって、少ないコンピューター台数でサーバーを利用できるようになってきました。

サーバーはアクセスが増える、つまり、1つのサーバーからデータを得たい人が押し掛けると、対応しきれなくなって、処理速度が遅れてしまいます。俗に言うサーバーがダウンする、サーバーが落ちるっていう奴ですね。

それを避けるために、サーバーを強化する必要があるのですが、サーバー自体を強化する方法と、サーバーの数を増やす方法があります。

サーバー自体を強化する方法は、CPUを性能が良いものに交換したり、CPUやメモリの数を増やしたりします。一方、サーバーの数を増やす方法はコンピューターの数自体を増やして全体として性能を上げるという方法です。

仮想化はどちらかと言えば後者に近い考え方で、1つのコンピューターの中に複数の仮想コンピューターを作り上げるという方法です。物理的なコンピューターの台数は増えないので、スペースも削減できますし、急にサーバー強化が必要な時にも即座に対応できるのが仮想化のメリットです。

1台のPCで、WindousとMacの両方のOSを使っている人なんかも、この仮想化を利用した方法を用いています。仮想化には色々な活用方法があるんですね。

プログラミングの基礎知識

f:id:ibookwormer:20160126175707j:plain

コンピューターに何かしてもらいたい時には、コンピューターに指示を出さなければいけません。しかし、コンピューターが理解できるのは数値だけなので、数値で命令を与える「機械語」で指示を与えてやる必要があります。

しかし、機械語はプログラミングするのが超めんどいので(010000 01000 001011 00000 0000010 000001とか打ち込まなければいけないので)、もっと効率的にプログラミングする為に、「アセンブリ言語」が開発されました。

アセンブリ言語は英単語でプログラミングでき、それを機械語に翻訳する翻訳プログラムを用いることでコンピューターに指示することができるようになっています。

ただ、アセンブリ言語は、使っているコンピューターの機種の仕様を細かく把握しておかなければ使用できず、機種が変われば勉強し直す必要があったので、もっと簡単にプログラミングをできるようにする必要がありました。

そこで開発されたのが、高水準言語と呼ばれる現在よく用いられるプログラミング言語です。この高水準言語はコンピューターの仕様を知らなくても、言語ごとのルールさえ知っていれば、翻訳プログラムを通じて簡単にプログラミングが出来る優れものです。

機械語・アセンブリ言語はこの高水準言語と対比させて低水準言語と呼ばれます。

高水準言語の中でも、対象によって向いている言語と、向いていない言語があります。例えば、ウェブブラウザで主に用いられる言語としては、HTMLやCSSやJava Scriptなどがあります。HTMLは文書の構造、CSSは文書の外観、Java Scriptは文書の動きを表現していますね。

まとめ

あんまり繋がりなく、ポンポンと書いてしまいましたけど、ちょっとつながりをまとめておきます。

PCにはCPUやメモリなどの性能を決める要素があって、windous、MacなどのOSも通常であれば入っています。PCに関わるソフトやOSはプログラミングというPCに指示を与える言語によって作成されています。それぞれのPCをインターネットにつなげると、ウェブブラウザを使ってOSを仲介してウェブの中からデータを取り出すことが出来ます。データが置いてあるのがウェブサーバーです。

って感じですかね?

私も勉強してちょっとこの界隈のことが整理できたので、続いて、プログラミングを詳しく勉強していこうと思っています。私がやろうと思っているのは「Python」なので、今後もPythonの学習記を書くかもしれません。

ただ、今回のように、ある程度ざっと基礎を学んだ後は、プロに習うのが一番早いと思います。今はオンラインで現役のプログラマーからレッスンを受けられるのでオススメです。今なら無料で体験できるみたいですよ。

 ■ 無料体験レッスン実施中 オンラインプログラミングスクール【CodeCamp】

 
今回書いた記事程度の知識があれば、十分レッスンを聴いても理解出来ると思いますし、丁寧に説明してくれるので、心配はいらないです。では、また。

Copyright© 2015-2016 life-abstract.com All Rights Reserved