今更聞けない!プログラミングとは何か?〜基礎の基礎を学ぼう〜

eyecatch_template

こんにちは!侍ブログ編集部(@samuraijuku)です。

なんとなくわかっているようで「聞かれてもしっかりと説明できない言葉」というのは意外と多くあるのではないのでしょうか?

特にIT用語カタカナローマ字で表されているものが多く、あいまいな理解で本質をつかめていない場合もあるため注意が必要です。

ここでは本格的なプログラミングの学習に取り掛かる前に「プログラミングとはどういうものなのか」という本質を掴んでおきましょう。

今後の土台となる知識をしっかりとつけることで、これからの学習をより効率的に行えるようになるでしょう。

プログラミングとは?

shutterstock_329205053

プログラミングの定義

まずはWikipediaの説明を見てみましょう。

コンピュータのプログラミング(英: programming)とは、コンピュータプログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である。(コンピュータ以外にも「プログラミング」という語は使われるが、それらについては扱わない)

上の通りに説明されていますが、これではよくわかりません。

プログラミングとはコンピュータへの指示を書くこと

前提として、コンピュータは人間と違い、指示された通りの事しか出来ません。

コンピュータに対して「こうしてほしい」という事を、「コンピュータが理解できるように正確に伝える事」が必要です。

つまりコンピュータに「こうやって動いて欲しい!」と伝える行為のことをプログラミングと言うことができます。

もう少し具体的に言えば、プログラミングとは、コンピュータが実際に理解できる言葉である「プログラム」を作っていくことです。

プログラムとは?

shutterstock_66376708

コンピュータが動作するために使われるプログラムとはどういうものなのか紹介していきます。

プログラムの定義

Wikipediaの説明では次のように説明されています。

コンピュータが機能を実現するためには、CPUで実行するプログラムの命令が必要である。 コンピュータが、高度な処理を人間の手によらず遂行できているように見える場合でも、コンピュータは設計者の意図であるプログラムに従い、忠実に処理を行っている。実際には、外部からの割り込み、ノイズなどにより、設計者の意図しない動作をすることがある。また設計者が、外部からの割り込みの種類を網羅的に確認していない場合もある。

こちらも少しわかりづらいので噛み砕いて説明していきます。

プログラムとは実行するものの順番を示すもの

そもそも「プログラム」という言葉はIT業界以外では、どこで使われているでしょうか?

例えば、「コンサート」だったり「文化祭の出し物」だったり、「運動会」などでも使われているのをご存知でしょうか。

「プログラム」という言葉は、実はIT業界特有の難しい専門用語ではなく、世間一般で広く使われている言葉なのです。

これらのプログラムを日本語にすると、「実行するものの順番」になります。

つまり、コンピュータ上での「プログラム」とは、「コンピュータがするべき仕事の手順や内容を記した文章」という意味になります。

まずはじめに何をして、その次に何をして…という指示が、コンピュータが理解できる言葉で順序立てて書かれているものということです。

料理を作るときの「レシピ」や、仕事をこなす上での「マニュアル」のようなものだとイメージしていただくと分かりやすいでしょう。

プログラミングの本質とは

shutterstock_288731006

それでは、プログラミングの本質とはなんなのかを説明していきます。

願いを仕組みとして現実化すること

プログラミングは「もっとこうだったらいいのに」や「こんな機能が欲しい!」という、願いを叶えることができる行為です。

例えば、普段あなたが使っているFacebookやLINEなどのアプリも、「もっと手軽に友達と体験を共有したい!」や、「もっと簡単に連絡を取り合いたい!」という願いから、プログラミングを使って実現したものです。

楽しみたい・喜んで欲しい・面倒臭い・仲良くしたい、そういった欲求をより高いレベルで満たすことができるものともいえるでしょう。

コンピュータに仕事をしてもらうこと

「プログラミング」も魔法ではありませんので何でもできるわけではありません。

ただ、コンピュータは人間の思考速度などとは比べ物にならない性能を持っているので、人間では到底叶わない仕事をしてもらうことができます。

例えばFacebookでは膨大な数のユーザー登録管理や・投稿の管理・投稿にいいねをつけるというような行為がリアルタイムに行われていますが、これらを人間だけで実現するのは100%不可能です。

コンピュータという超高速処理を実行できる道具に、どう働いてもらうかを的確に指示することで、とても大きな影響力を持たせることができます。

つまりプログラミングの本質とは、「人間だけでは到底叶えられない願いを、コンピュータに仕事をさせて実現する」ということです。

プログラミング言語とは

lang

次に、プログラミングを行うために必要なプログラミング言語とはなにかを説明していきます。

プログラミング言語はなぜ必要なのか?

あなたは「マトリックス」という映画を見たことがあるでしょうか?

コンピュータはマトリックスの世界で語られているように、すべての情報をゼロとイチで扱っています。

コンピュータが直接理解できるこのゼロとイチが並ぶ情報を「機械語」といいます。

ただ、機械語は直接人間が見てもスムーズに理解することは不可能です。

そこで人間に書きやすく、また機械語にも変換しやすい、言わば中間言語として「プログラミング言語」というものが作られました。

人は「プログラミング言語」の書き方を覚えることで、様々な命令を表現することができるので、コンピュータに効率的に指示を出せるようになります。

プログラミング言語は、最終的にコンピュータが理解できる形の「機械語」に変換されて動作しています。

プログラミング言語にはなぜ種類があるのか?

プログラミング言語は、コンピュータと会話するために必要な言葉のことです。

人間同士が会話するために使う日本語や英語などは「自然言語」と呼ばれますが、プログラミング言語もこれと存在理由は同じです。

ただ、プログラミング言語はどんどん新しいものが出てきます。

  • もっと難しくても良いから処理を早く実行できるものが欲しい
  • もっと子供でもわかるように簡単に書けるようにしたい

そういった様々な思惑を持った人たちの手で、それぞれの言語が開発されています。

今では比較的マイナーなプログラミング言語も合わせると200種類以上もあると言われています。

文法の違い

プログラミング言語は、文法も規則的でシンプルです。

例を挙げると、

  • 自然言語

画面に「こんにちは」という言葉を映してください

自然言語でこう言いたい場合、プログラミング言語だと、

  • プログラミング言語

REFLECT HELLO

のようになります。

あくまでこの表現は例ですが、ほとんどのプログラミング言語で動作を動詞と目的語の単語で表します。

※動詞を先に持ってくるのは、コンピュータが主に英語圏の国で発展したためです。

慣れない方はこの単純さに違和感を覚えるでしょう。

しかし、プログラミング言語はコンピュータを操作する命令を伝えるための言語です。

つまり、コンピュータへの命令を正確に表現できるようシンプルに表現出来るようになっています。

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

私たちの世界では、日本人には日本語で、アメリカ人には英語で、ドイツ人にはドイツ語でというように、話す相手によって適切な言語が必要になります

プログラミングの世界でも同様で、用途に応じて色々なプログラミング言語というものがあります。 以下にプログラミング言語の例を挙げます。

  • C言語/C++
  • Java
  • Ruby
  • PHP
  • その他

それぞれ表現方法や、特性などが違いますので、目的によって適した言語を選びましょう。

プログラミング言語の各種特性や選び方は後に学ぶので安心して読み進めてください。

おまけ

今回は「プログラミングとはどういうものなのか」という本質の部分をご紹介しました。

しかし、なかには「プログラミングについてもっと知りたい」という方もいらっしゃるかと思いますので、プログラミングへの理解を深める上で欠かせないことと、それに対するオススメ記事をいくつかご紹介します。

プログラミングでできること

2100_1
↑プログラミングが秘める可能性は計り知れない(参照)

これからプログラミング学習をはじめようと思っていても、プログラミングでどんなことができるのかを把握しておかなければ何のために勉強すればいいのかわかりません。

そこで、こちらの記事では

  • 具体的にどんなことができるのか
  • どんなものを作れるのか
  • どんな業界で使われるのか

をご紹介しています。

あなたの身近なものから思いがけないものまで色々なことにプログラミングが使われていたりなど、プログラミングが秘めている可能性とその多様性に驚くこと間違いなしです。

プログラミングを学ぶメリット

2100_2
↑メリットを知ることがモチベーションにつながる(参照)

プログラミング学習をする上で欠かせないのがモチベーションの維持です。

プログラミングを学ぶことで得られるメリットを知っておくのとそうでないのとではモチベーションに大きく関わるので、知らない方はぜひ知っておいていただきたいです。

こちらの記事ではプログラミングを

  • 学ぶことで得られるメリット
  • 学んだ後に得られるメリット

をご紹介しています。

「難しそう」「挫折したらイヤだな」など心理的ハードルの高いプログラミング学習ですが、実は学ぶだけでもメリットはあります。

この記事でお届けするプログラミング学習のメリットをきっかけに、あなたのモチベーション向上に繋げていただければと思います。

知っておきたい関連用語

2100_3
↑プログラミングへの苦手意識を克服するための第一歩(参照)

プログラミングスキルを習得するのに避けて通ることができないのが「専門用語」への理解度です。

  • サーバー
  • OS
  • ソフトウェア

など、初心者の方であればあるほどこういった横文字の連続に頭を悩ませているのではないでしょうか。

そこで、こちらの記事ではプログラミングを学習していて頻繁に出てくるWEBプログラミング関連用語を厳選して25語ご紹介しています。

これらの用語を理解しておくだけでもプログラミング学習のハードルは間違いなく下がりますので、気になる用語が出てきたときや学習中の参照記事にしていただければと思います。

まとめ

プログラミング言語の本質や基本事項に関して説明をしてきました。

要点が掴めるようにとっかかりとしてのイメージをわかりやすく解説しましたので、今後の学習に活かして頂ければ幸いです。

おまけでご紹介した記事はこちらでもお届けしています。

これからプログラミングを学習していく中で初心者の方に限らずつまづきやすい「学習方法」「言語の選び方」「アプリ開発方法」「仕事獲得方法」などを体系的にまとめた記事となっていますので、これからのプログラミング学習にぜひ役立ててください。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


現役フリーランスエンジニアによる無料体験レッスン実施中!

もし、あなたが、

  • 経験、年齢、学歴に不安がある
  • 挫折しない学習方法が知りたい
  • アプリ開発で困っている
  • エンジニアの”生”の声が聞きたい!
  • 仕事獲得の仕方がわからない
  • エンジニアに転職したいが何をすればいいかわからない

など、プログラミング学習やキャリアのことでお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_mtm3

学習者インタビュー

23歳、早稲田中退生が3ヶ月でフリーランスエンジニアになるまで
32歳ベンチャー企業元役員が起業してプログラミングを学んだ話
元ディスクユニオン店員が33歳からプログラミングを学びエンジニアになるまで
ヨガスタジオのマネージャーだった私が3ヶ月でWeb制作をマスターするためにした”たった1つ”のこと
Uターン女子がRubyを学んで理想のライフスタイルを手に入れた話
新卒、文系出身エンジニアが語る、経験0からプログラミングができるようになった理由

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大10,000円!テック系ライターさん大大大募集!!!
LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

侍エンジニア塾ブログ編集部

侍エンジニア塾ブログ編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去100人以上のフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
ホームページはこちら
ツイッターはこちら
フェイスブックはこちら