プログラミングとは?

2020年6月6日

プログラミングとは

そもそも「プログラミング」とは何のことでしょうか。基本的なことになりますが、本記事では「プログラミング」と「プログラミング言語」について、説明していきたいと思います。


「プログラミング」とは?

プログラミングとは、ソースコード(テキストファイル)を書いてプログラムを作成することです。

そもそも「プログラム」とは、パソコン(PC)やスマホ、家電等の中で動いているソフトウェア(アプリケーション)のことをいいますが、元は全てテキストファイルになっています。

例えば、今このホームページはなぜ見れているのか、想像してください。下図に示すように、「Webブラウザ」と呼ばれるプログラムと、「Webサーバー」と呼ばれる2つのプログラムが連携して、Webページを見ることが出来ています。

「Webブラウザ」は、皆さんが良く知る「GoogleChrome」や「Safari」などのソフトウェアです。ユーザーが入力したURLをWebサーバーに送信(HTTP)し、結果(Webページ)を受け取り、解析して画面に表示します。クライアント側(ユーザー側)のソフトなので、馴染み深いと思います。

一方、「Webサーバー」は、Webブラウザから送られるリクエスト(HTTP)に対し、Webページのデータを返すソフトです。代表的なものは「Apache」や「IIS」です。こちらはプログラマーでない方は馴染みが無いと思いますが、本サイトではWebサーバーの構築も扱う予定なので、お楽しみに😄。

ちなみに、皆さんが何気なく目にしている「http」「https」とは、通信上のデータフォーマットの取り決め(プロトコル)の一種です。C言語から順番に学習すれば、「プロトコル」についての雰囲気がつかめるようになります。

これらはプログラムのほんの一例です。他にもスマホに入っている電卓であったり、テレビに内臓されている番組表だったり、エアコンに搭載されている制御プログラムだったり、あらゆるものにプログラムは搭載されています。

これらのプログラムを作ることが「プログラミング」です。どうですか、面白そうではありませんか?


プログラミング言語

先ほどにも少し触れましたが、プログラミングは全てテキストで作成した「ソースコード」と呼ばれるものからできています。

ソースコードには複数の種類(言語)があり、それらをプログラミング言語と言います。

プログラミングの学習を始める前に、「ご挨拶」のページで軽く触れたプログラミング言語の一覧について、簡単にご紹介しておきたいと思います。「難しい!」という方は、「ふーん、こういう言語があるんだねー」ぐらいでかまわないです。単なる知識ですので、今すべて理解する必要はありません。

アプリケーション系

明確な定義はありませんが、PC内やスマホ内、また電子機器内に組み込まれて単体で動作するものを「アプリケーション系」と呼んでおきます。業務管理ソフトや組込み(家電)ソフト、テレビゲーム等はこちらに分類しています。

言語用途
VBWindowsで使われた古い言語です。今から新規開発で使うことはほとんどなく、過去プログラムの改修などが多いでしょう。C#へのリプレースも進んでいます。
C多くのOSで使われる少し古い言語です。Windowsで使われる場合はVCと呼びますが、Linuxとほぼ同じです。ハードウェアの制御と相性がよく、昔から継続している開発機器や、容量に制限ある組込み(家電)機器等ではいまだに主流です。
C++CのGUI面を強化した言語です。CとC#の中間の様な言語で、今から新規で使うことはないと思います。言語自体も後継されなかった良く分からない記法が多く、かなり使いづらいです。
C#C++にオブジェクト指向を強化した言語。GUIも作りやすく、アプリケーションとしても優秀で、かなり使われています。必ず覚えておきたい言語です。

Web系

冒頭でも紹介した、サーバークライアントモデル(サバクラ)系のプログラムを「Web系」と呼んでおきます。ネットワークエンジニア、サーバー設計者、Webデザイナーの方等はこちらになります。

言語用途
JavaWebサーバー内で動作するアプリケーション(サーブレット)として使われます。
HTMLホームページの構造(見た目)を作成する言語です。Webデザイン系志望の方は理解必須ですが、コンパイルが必要ないので勉強の敷居は低いです。
CSSHTMLのレイアウト指定部分を外出し、各ページで共通的なレイアウトを実現するための言語…というか定義。ネットにいくらでも載っている上簡単なので、敷居は低いです。
JavaScript動的にホームページのレイアウトを変える場合に必要です。クライアントPCで実行されるフロントエンドの言語です。HTML/CSSと違いCやC#の様な動的なアルゴリズムを考える必要があるため、難易度はHTMLやCSSより一段上がります。
PHPJavaScriptのサーバーサイド版です。クライアントからの要求をサーバー内で処理するため、SNS等によく使われます。CやJavaを理解していないと少々厳しいです。サーバーサイドの基礎となるので、Javaと合わせて理解しておいた方がサバクラの設計が上手になります。
RubyJavaやPHPの良いとこどりをしていて、非常に柔軟で実用的な言語です。ただしRubyからプログラミングを初挑戦しようとすると敷居が高く、開発環境を整えるだけで混乱すると思います。最近のWeb系の主流であり、Twitter等もRubyで開発されています。

まとめ

プログラミングとは「ソースコードを書いてプログラムを作ること」で、そのソースコードはプログラミング言語の種類によって書き方が変わる、ということです。

本記事で紹介した以外にもプログラミング言語はまだまだたくさんありますが、一つ言えることは、基礎となる言語をしっかり学習すれば、他の言語もすんなり使える様になるので、まずは基礎となる言語をしっかりマスターすることが重要です。

基礎編ではC言語、HTML/CSS/JavaScriptを全力で理解できるように頑張りましょう!