本記事は『作るもの・作る人・作り方から学ぶ 採用・人事担当者のためのITエンジニアリングの基本がわかる本』(著者:中島佑悟、高濱隆輔、千田和央)の「第2章 作るものから学ぶ」から節「プログラミング言語を深掘りする」を抜粋したものです。掲載にあたり一部を編集しています。
プログラミング言語を深掘りする
まずソフトウェアエンジニアリングとは切っても切り離せないプログラミング言語への理解を深めましょう。
プログラミング言語とは、人間がコンピュータにさせたい処理をコンピュータに伝えるために使う言語のことです。人間同士が会話する際には、日本語や英語のようなお互いに共通認識がある単語や文法を使ったやり取りを行いますが、これと同じように、人間とコンピュータの間で取り決めた単語や文法がプログラミング言語です。たとえば、「print(“a”)」という表現なら「画面に“a”と出力する(表示する)」といった取り決めです。
採用業務では、採用要件や求人票を作成する際にプログラミング言語の名前を扱う場合が多いと思います。こうした場合には、自社サービスや顧客に依頼されたWebアプリケーションの開発に使用しているプログラミング言語の名前を使うことがほとんどでしょう。
ここで理解しておきたいのは、Webアプリケーションだけではなく、これまで紹介したOSやブラウザ、データベースなどもプログラミング言語を使って開発されているものだということです。あなたの会社が提供しているWebアプリケーションと同じように、皆さんが普段使っているOSやブラウザも、それを提供している企業や団体がプログラミング言語によって開発し提供することで利用できるようになっています。
プログラミング言語への理解を深めるために、その働きを少し深掘りしてみましょう。まずプログラミング言語の役目は、人間がコンピュータに行わせたい処理の仲介役です。コンピュータによる何らかの処理は最終的には物理的な電子回路の上で電気信号として扱われます。膨大な数のスイッチが処理の内容によってオン・オフされ、その回路に電気が流れることで特定の信号になるイメージです。とはいえ、Webサイトを作りたいような人がコンピュータの中身や電気信号を直接扱うのは現実的ではありません。そこで、人間でも読み書きができ、コンピュータ上の処理にも変換できるような表現としてプログラミング言語を使うことになります。
プログラミング言語で書かれたプログラムが電子回路上で電気信号として扱われるまでにはいくつかの段階があります。簡単にいうと、プログラミング言語で書かれたソースコードが2進数(0と1)の羅列に翻訳され、その羅列に従って電子回路が操作される、という順序です。
ざっくり分けて人間にとって理解しやすい表現を「高級言語」と呼び、そうでない表現を「低級言語」と呼びます。本節で紹介するプログラミング言語はすべて「高級言語」に該当します。「低級言語」には「アセンブリ言語」や、完全に0と1で表される「機械語」があります。「高級言語」を「アセンブリ言語」に翻訳する際には「コンパイラ」や「インタープリタ」といったソフトウェアが使われ、「アセンブリ言語」を「機械語」に翻訳する際には「アセンブラ」が使われます。採用業務で目にすることがあるプログラム言語はほとんどが高級言語でしょう。ただし、ハードウェアを主体に扱うサービスを展開する企業などの場合は、「アセンブラ」のようなキーワードを採用要件で見かけることもあるかもしれません。
プログラミング言語の数は数千種類以上にのぼるともいわれています。もちろんすべてを覚えることはできませんし、その必要もありませんが、よく使われる言語や流行している言語に関しては概要だけでも知っておくのが望ましいでしょう。次項からは代表的なプログラミング言語を紹介していきます。