プログラミングとは?パパママのために分かりやすく解説!

プログラミングとは?パパママのために分かりやすく解説!

このブログサイトのタイトルにも入っている『プログラミング』という 言葉、また小学校で必修化となるプログラミング教育、これにも『プログラミング』という言葉が入っています。

『プログラミング』といえばコンピューターというイメージを持つ方は多いかと思います。

そもそもプログラミングとは一体何なのかを解説します。

プログラミングとは?

結論からいうと、プログラミングとはプログラムを作ることです。

ではプログラムとは何でしょうか?

プログラムとは、コンピューターに処理を実行させ結果を得るための命令を記述したものです。言い替えると、コンピューターはプログラムに記述されていることを忠実に実行するものといえます。

余談ですが、プログラムが正常に動作しない現象をよくバグといいます。
バグはプログラムの内容に誤りがあったとき、想定外の動作をします。プログラムの内容を無視して動作する現象のことをバグではありませんのであしからず。

プログラミングの目的とは?

先ほど説明したとおり、プログラミングとはコンピューターに命令するためのプログラムを作ることです。

では何の目的のためにプログラミングをする、つまりプログラムを作るのでしょうか?

プログラムがあればコンピューターはその内容を読み込んで望んでいるとおりに処理を自動的に実行します。

ではそもそもコンピューターは何のためにあるのでしょうか?

今や身近にあるコンピューターというとスマホではないかと思います。

スマホは、電話で連絡をしたり、インターネットで情報を探したり、そしてゲームで楽しむことができます。とても便利ですよね?

つまりプログラミングをする目的とは、私たちの生活をより便利にするためにということになります。作業をコンピューターにやらせるということで楽になる、という見方もあります。

プログラミングはどのようにして行う?

プログラムを実行するコンピューターによってプログラミングのやり方は変わってきますが、ここではスマホアプリを作るためにプログラミングをする、という想定として解説します。

必要なものはパソコンです。
プログラムはテキストエディタを使って記述していきます。

余談ですが、Windowsでは「メモ帳」というテキストエディタが標準で搭載されています。しかしプログラミングをするにはあまりにも機能不足なので、他のエディタソフトや統合開発環境についているエディタソフトを使用します。

エディタソフト:Sakuraエディタ、Atomなど
統合開発環境:Eclipse、Android Studio、Xcode

テキストエディタに記述していく内容は、プログラミング言語それぞれのルールに則ります。

プログラミング言語はたくさんの種類があり、どれを使えばよいかエンジニアをいつも悩ませるところでもあります。

さてプログラミングのあとの流れを少し説明します。

プログラミング言語で記述されたものは人間ならば理解することができますが、コンピューターでは理解することができません。

つまりこのままではプログラムを実行させることはできないということです。

コンピューターは機械語と呼ばれる言語でしか理解することはできないので、記述したプログラムを機械語に変換する必要があります。

これをコンパイルと呼びます。

それにより実行ファイルが作成されますので、これでようやくコンピューター上でプログラムを実行させることができます。

共通するプログラミングの基本

様々なプログラミング言語があり、ルールもそれぞれで違います。

ですが、共通する基本的な考えというものがありますので、ここではそれについて解説します。

構造化プログラミング

コンピュータ・プログラムに構造を導入して記述をより簡素明快にし、ソフトウェアの品質の向上と開発の効率化を目指したコンピュータ・プログラミング技術である。今日の構造化プログラミングに対する一般的な認識は、「順次、選択、反復といった制御フローをブロック単位で表現し、それらを直列または入れ子状に配置する事でプログラムの構造化を実現する」という事になっている。

引用元:Wikipedia

簡単にまとめると、プログラムは「順次、選択、反復」の3つのブロックで構成されているということです。

順次:順に処理をしていくこと
反復:指定された条件を満たしている間処理を繰り返すこと
分岐:指定された条件によって処理を分岐させること

この考え方はほとんどのプログラミング言語で採用されており、意識的に取り入れようとせずとも、この構造で記述していくことになると思います。

オブジェクト指向プログラミング

オブジェクト志向の考え方を取り入れたコンピュータプログラミング手法である。オブジェクトとは大まかに言うとデータ(変数またはプロパティ)とコード(関数またはメソッド)の複合体を意味する。オブジェクト指向プログラミングの三原則として「カプセル化」「継承」「多態性」が提唱されている。

引用元:Wikipedia

カプセル化:オブジェクト内のデータを隠蔽すること
継承:オブジェクト内のデータやメソッドを引き継ぎ、拡張すること
多態性:オブジェクトによってふるまい(メソッドの処理)が変わること

オブジェクト指向プログラミングの解説をしようとすると、それだけでお腹いっぱいになるくらいの量を説明することになるので、ここでは省略します。

構造化プログラミングとオブジェクト指向プログラミングの違いを簡単に説明すると、以下の単位でプログラムを作り上げていくことになります。

構造化プログラミング:機能単位
オブジェクト指向プログラミング:物単位(オブジェクト単位)

プログラミング言語の種類

たくさんのプログラミング言語がありますが、どのようなものがあるのか?
ここでは一部紹介します。

C

現在存在しているプログラミング言語のほとんどは、この言語を基に作られたといっても過言ではないくらい基本となる言語です。

C言語とも呼ばれます。

昔からプログラマーとして活躍されている方であれば経験したことがあると思います。

Java

オブジェクト指向プログラミングをベースに取り入れた言語です。

大規模システムやスマホアプリなど幅広く採用されており、現在の主流言語の一つであると言えます。

PHP

Webサイトを動的に表示させるのによく取り入れられている言語です。

この言語は実行時にコンパイルをする仕組みとなっているので、プログラムの修正から実行までを簡単に行うことができます。

ちなににこのブログはWordpressを使っているのですが、プログラミング言語はPHPです。

Python

AI開発で採用されることが多い言語です。

文法が簡単になっており、読みやすく書きやすいということで、最近ではプログラミング初学者向けの言語しても扱われています。

Scratch

学生向け学習用のプログラミング言語です。

言語といってもテキストエディタで記述していくものではなく、ブラウザ上でブロックと呼ばれるオブジェクトを組み合わせて作り上げていきます。

詳しくは当ブログで解説しているScratch【スクラッチ】って何?初めて知る方に向けて解説をご覧ください。

まとめ

プログラミングについて解説しました。

これで子どもにも説明ができますね。もしもよく分からないようであれば「ゲームなどを作ること」と言えば理解してもらえるかと思います。

パソコンがあれば簡単にプログラミングを始めることができます。

まずはやってみましょう!!