IT業界で働いて13年になりますせいや(@knkSeiya)です。こんにちは!
小学校でプログラミングが必修科目入りしたり、何かと「プログラミング」という言葉が目につくようになりました。
プログラミングとは、コンピュータを動かすためのプログラムを書くことです。
じゃあなんでコンピュータを動かすのにプログラムが必要なのでしょうか?
本記事では、以下のことについて解説します。
- プログラミングとはなんなのか?
- なぜプログラムが必要なのか?
- プログラミングができるとどんな良いことがあるのか?
プログラミングに興味のある方、プログラミング初学者の方の参考になれば幸いです。
プログラミングとは?
プログラミングって、何か難しいことってイメージはあるんだけど、実際どういう意味なの?
プログラミングの意味について説明していくね!
プログラミングとは、コンピュターにやって欲しい仕事の指示書を作ること
プログラミングとは、一言で言うとコンピュータにやって欲しい仕事の指示書を作ることです。
この仕事の指示書を「プログラム」と言います。
プログラムではコンピュータに「やってもらいたい仕事」について細かく指示を与えます。
例えば、身近な例だと自動販売機とか。
- お金が入れられるまで待機して
- お金が入ってきたらそれが決まった金額(130円とか)に達するか判断し
- 決まった金額が入っている状態で飲み物のボタンを押すとジュースが出てくる
- お釣りがあればお釣りを返す
やってもらいたい仕事=「お金を貰ってジュースを渡す」を実現するために、どんな指示を与えれば実現できるか考えプログラムを作るのがプログラミングってことですね。
ここではプログラミングってプログラムを作ることなんだな〜ぐらいで覚えておけば大丈夫です。
実際の現場ではプログラミングって言葉を使うことは少なくて、単純に「開発」って言葉が使われたりします。
ソフトウェア=プログラムや他の必要なものが集まって一連の処理をするもの
プログラムはコンピュータにやって欲しい仕事の指示書というお話をしました。
じゃあソフトウェアってなんなの?ってことを説明します。
ソフトウェアは、プログラムが集まって一連の処理をするものです。
同じ意味で扱われることも多いですが、プログラムよりもソフトの方が広い意味で使われます。
例えばゲームソフトとかありますよね?プレステとかSwitchとかの。
ゲームのソフトウェアにはもちろんゲームのプログラムも入っていますが、それ以外に必要なグラフィックのデータだったり、音楽のデータが入ってますよね。
それらが集まって「ゲーム」という一連の処理を実現しているのがソフトウェアです。
ソフトウェアとハードウェア
ハードウェアという言葉を聞いたことはありますか?
よくソフトウェアとハードウェアは対比して表現されます。
簡単に言うとソフトウェアは頭脳、ハードウェアは体や手足の部分です。
また自動販売機を例に説明します。
自販機でお金を数えたり、ジュースを渡す指示をするのは頭脳であるソフトウェアの仕事です。
ハードウェアは機械の部分。自動販売機でお金が入ったことを検知するセンサーだったり、ジュースを払い出すフタの部分だったりです。
自動販売機の他にも電化製品はソフトウェアとハードウェアが協力しあって僕たちに「便利さを提供」してくれています。
身近なプログラムの例
身近なプログラムの例をいくつか紹介します。
スマホ
今や誰しもが持っているスマートフォンはプログラム(ソフトウェア)の塊です。
iPhoneだったりAndroidだったりそれぞれのハードウェアの中に、スマートフォンとしてのプログラムが乗っています。
このスマートフォンとしての基本ソフトウェアはOS(オペレーションシステム)と言います。iPhoneならiOS、Android端末のOSはAndroidですね。
炊飯器
炊飯器ってボタンを押すとお米を炊いてくれて、出来上がったら教えてくれますよね。
これもプログラムで動いています。
ボタンを押すと一定時間のタイマーがカウントされ、その間炊飯モードになる。そしてタイマーのカウントが終了すると小気味いい音楽で炊き上がりを教えてくれます。
Webページ
今こうやって閲覧しているページもプログラムでできています。
Googleとかで何か検索して気になったページにアクセスすると思いますが、この検索やアクセスしたページが表示されるまでにインターネットの向こう側で「サーバ」というコンピュータとそれに乗っているプログラムが「ページを表示する」という目的のために働いています。
プログラムは様々なところで動いている!
プログラムは、ここで紹介しきれないほど様々なものの中で動いています。
自分たちの今の生活にはなくてはならないものです!
どうしてプログラムが必要なのか?
プログラムの概要はわかったけど、なんであんな訳のわからない英単語の羅列が必要なの?
コンピュータは日本語を理解できないからだよ。
コンピュータは日本語を理解できないから
コンピュータは僕たちと違って日本語を理解できません。もちろん英語も理解できません。
コンピュータは電気で動いているので、「オン」と「オフ」の2つの値しか扱えないんです。
プログラムってのいうのは、人間の言葉をコンピュータに理解できる言葉(機械語)に翻訳するための中間生成物なわけです。
だから「30分たったらアラームを鳴らして!」というお願いをコンピュータに理解させるために、一旦プログラムを作って、それをコンピュータに理解できる機械語に直してから使います。
余談ですが、事前に機械語に翻訳しておく言語を「コンパイラ言語」、
プログラムの実行時にリアルタイムに翻訳していく言語を「インタプリタ言語」といいます。
プログラミングができるとどんな良いことがあるのか?
プログラミングができるようになるとどんな良いことがあるの?
たくさんあるけど、主な良いことを紹介するね。
手に職がつく(ITエンジニアになれる)
まず、手に職がつきます。
一番嬉しいことなので最初に書きました。
手に職がつくとは、ある特定の分野の職能がつくという意味です。この場合はIT分野ですね。
プログラミングを一度覚えるとそれだけで仕事を開始することができますし、更に踏み込んだ知識や別のプログラミング言語を学ぶ必要が出てきたときも初めてのときより格段に学習しやすくなります。
エンジニアとして仕事を始めたら、働きながら学べる(というか学ぶ必要がある)ってのも大きいですね。
自分でアプリケーションが作れるようになる
プログラミングができると、自分で好きなアプリケーションが作れるようになります。
スマホのアプリとか「ここがもっとこうだったら使いやすいのになぁ」って思ったことありませんか?
流石に最初から企業が作ってるようなアプリは作るのは難しいとは思いますが、簡単なアプリだったら勉強しながら作ることができます。
僕も今でこそWeb関係で働いていますが、プログラミングをはじめた理由は自分でゲームが作りたかったからなんです。クロノ・トリガーとかFFとかみたいなゲームソフトを作ってみたくてプログラミングを勉強しはじめた過去があります。
自動化して仕事が早くなる
プログラムができると、簡単な仕事なら自動化してしまうこともできます。
いつも同じルーチンで行っている資料整理とか、単純なことなら自動化することで早く終わるしミスもなくなります。
代表的なプログラミング言語
ここでは、たくさんあるプログラミング言語のうち代表的なものを3つほど紹介します。
Java:幅広い分野で利用されている言語
Javaは動作するOS(オペレーションシステム)を選ばずどんな環境でも動かすことができる言語です。
プログラミングはWindows用とかiOS用とか、環境によって移植作業が必要になる場合がありますが、Javaはどんな環境でも動くので幅広い分野で使われています。
家電などの組み込みシステムやAndroidのアプリなんかでも使われていますね。
PHP:Webアプリケーションで活用されている言語
PHPはWebアプリケーションで活用されている言語です。
例えばこのブログなんかもPHPで動いています。
記事を投稿したり、投稿した記事を一覧したりするときにPHPがデータベースから記事内容を取ってくる役割を担っています。
C#:主にWindowsアプリケーションで活用されている言語
C#は主にWindowsで動作するアプリケーション開発で活用されています。
例えば、Unityという開発環境とC#を用いればWindowsで動く2D/3Dのゲームを作ることができます。
他にも業務で使うWindowsのツールだったりとかも作れますね。
まとめ:プログラミングとはコンピュータへの指示書を作ること
本記事では「プログラミングとは何か?」について簡単に説明しました。
要点をまとめておきます。
- プログラミングとはコンピュータにやって欲しい仕事の指示書を作ること
- 様々なところでプログラムは動いている
- プログラミングができると手に職がつく
- プログラミングができるとアプリケーションが作れるようになる
プログラミングについてネットで調べるとたくさんの情報がわんさか出てきます。
これからプログラミングをはじめようとしている初学者さんはあまりの情報量で固まってしまうかもしれませんが、ゆっくり学習していけばプログラミングは身に付きますので、焦らず勉強していきましょう!