こんにちは!侍ブログ編集部(@samuraijuku)です。
IT業界は深刻なエンジニア不足ということもあり、2020年から小学校でプログラミング教育が始まるなどよく話題になっています。
なにかと注目をあびている「プログラミング」ですが
こんな疑問をお持ちの方が多いと思います。
この記事では、
- プログラミングの基礎知識
- プログラミング言語の種類
- 初心者のためのプログラミング学習手順
このような内容を紹介していきます。
とはいえ、ここまで読んで理解できるか不安に思っている人もいるでしょう。でも安心してください。
初心者にもわかるよう専門用語を使わずに紹介しているので誰でもプログラミングとはなにか理解できます。
この記事の目次
「プログラミング」とは?
プログラミングをカンタンに言うと「コンピュータの指示書を書くこと」です。
ここで言う「コンピュータ」とは、スマートフォンやパソコンを始め、テレビやエアコン、カーナビなどあらゆるものに入っています。
これら全てのコンピュータに「こういう風に動いてね」という指示をしておく行為が一般に「プログラミング」と呼ばれています。日常生活の多くはコンピュータに支えられており、それをさらに支えているのがプログラミングです。
「プログラミング」とはコンピュータへ指示を出すこと
前提として、コンピュータは人間と違い、指示された通りの事しか出来ません。コンピュータに対して「こうしてほしい」という事を、「コンピュータが理解できるように正確に伝える事」が必要です。

つまり、コンピュータに「こうやって動いて欲しい!」と伝えるための行動のことを「プログラミング」と言うのです。もう少し具体的に言えば、プログラミングとは、コンピュータが実際に理解できる言葉である「プログラム」を作っていくことです。
「プログラム」とはコンピュータへの指示書
プログラムを簡単に説明すると「パソコンで実行をするための指示書」です。

例えば、「コンサート」だったり「文化祭の出し物」だったり、「運動会」などでも使われているのをご存知でしょうか。
「プログラム」という言葉は、実はIT業界特有の難しい専門用語ではなく、世間一般で広く使われている言葉なのです。これらのプログラムという言葉を日本語にすると、「実行する順番」になります。
つまり、コンピュータ上での「プログラム」とは、「コンピュータがするべき仕事の手順や内容が書いてある指示書」という意味になります。まずはじめに何をして、その次に何をして…という指示が、「コンピュータが理解できる言葉で順番通りに書かれているもの」ということです。
料理を作るときの「レシピ」や、仕事をこなす上での「マニュアル」のようなものだとイメージしていただくと分かりやすいでしょう。
プログラミングで「人間では叶えられない処理」を実現できる
プログラミングの本質は「人間だけでは叶えられない仕事を実現すること」です。
例えば、普段あなたが使っているFacebookやLINEなどのアプリも、「もっと手軽に友達と体験を共有したい!」とか、「もっと簡単に連絡を取り合いたい!」という願いから、プログラミングを使って実現したものです。
楽しみたい・喜んで欲しい・面倒臭い・仲良くしたい、そういった欲をより高いレベルで満たすことができるものともいえるでしょう。
しかし、「プログラミング」が何でもできるわけではありません。ただ、コンピュータは人間の思考速度などとは比べ物にならない性能を持っているので、人間では到底叶わない仕事をしてもらうことができます。

例えば、Facebookでは膨大な数のユーザー登録管理や・投稿の管理・投稿にいいねをつけるというような行為がリアルタイムに行われていますが、これらを人間だけで実現するのは100%不可能です。
コンピュータという超高速処理を実行できる道具に、どう働いてもらうかを的確に指示することで、とても大きな影響力を持たせることができます。つまり、プログラミングの本質とは、人間だけでは到底叶えられないお願いを、コンピュータに仕事をさせて実現することです。
実は身近にプログラミングは多く存在している
プログラミングというとパソコン上で動くものと思われがちですが、実は日常のいろんな場面にプログラミングは潜んでいます。たとえば、
- レジ自販機、テレビなどの家電製品
- 自動車のナビ
- 空港や銀行などの公共システム
などなど。
開発自体はパソコンでプログラミングしているのですが、完成したプログラムをいろいろなものに組み込んで、そこでプログラムが動いています。
簡単なものは電気信号のみで動いていますが、多少複雑な動きをする家電などは、だいたいプログラムが組み込まれており、普段の生活で当たり前に行われることの多くにプログラミングが使われているのです。
プログラミングで「できること」と「活用事例」とは?

プログラミングが秘める可能性は計り知れません。プログラミングでできることを簡単に紹介すると、
- Webアプリ開発
- Webサイト制作
- スマホアプリ開発
- AI(人工知能)開発
- ゲーム開発
- システム開発
上記のような開発を行うことができます。世の中のあらゆるものにプログラミングは活用されているのです。
プログラミングについて知れば知るほど、秘めている可能性と多様性に驚くこと間違いなしです。
Webサイト/Webサービス開発

普段インターネット上で目にするWebサイトは、全てプログラミングで作られています。
具体的にWebサイトの事例をあげると、
- Amazonで簡単にネットショッピングできる
- クックパッドに誰でもレシピを投稿でき、閲覧できる
- YouTubeで動画を見ることができる
- Googleで検索し、目的のページを閲覧できる
以上のように、インターネットで閲覧するページは全てプログラミングで作られたWebサイトです。
スマホアプリ開発

スマホアプリもプログラミングをもとに作られています。代表的なスマホアプリを紹介します。
- LINEやカカオトークのようなチャットアプリ
- パズドラやツムツムのようなゲームアプリ
- メルカリのようなフリマアプリ
- kindleや楽天koboのような電子書籍アプリ
- NetflixやHuluのような動画アプリ
これら全てがプログラミングによって作成されたスマホアプリです。まさに私たちの生活全てに関わっていると言えます。
人工知能開発

最近流行りの人工知能にもプログラミングが用いられています。
いくつか具体例を紹介しましょう。
- 人物認識
- Googleフォトで写真を管理すると「◯◯さんの写真一覧」と表示される
- 音声認識
- SiriやAlexaのようなAIホームスピーカーを音声で操作する
- 空間認識
- 「ルンバ」などのお掃除ロボットは、部屋の形を認識して効率的に掃除する
- 検索エンジン
- Googleなどの検索エンジンは、検索ワードに対して無数のウェブページから最適なページを表示する。
- 自動運転
- まだ実用化されていないが、自動運転技術は日々進歩している。
ここにあげたのはあくまで一例にすぎず、この他にも日常生活のあらゆる所に人工知能の技術は使われており、全てがプログラミングによって作られています。
ゲーム開発

「ゲーム」と一言で言っても、以下のように様々な種類があります。
- PlayStation、任天堂スイッチなどの据置ゲーム
- パズドラ、ツムツムなどのスマホゲーム
- ゲームセンターでできるアーケードゲーム
- パソコン上でできるコンピュータゲーム
- VR機器上で動作するゲーム
この中でも特に「スマホゲーム」は、市場が大きく、小規模のチームからでも制作、販売できるのでプログラミング初心者でも手を出しやすい分野と言えます。
システム開発

「システム開発」も以下のようにさまざまな種類があります。
- 銀行口座システム
- 新幹線の空席情報システム
- チェーンの小売店の在庫管理システム
- Slack、Chatworkなどのコミュニケーションツール
- オンラインストアの注文管理
上記のように「人力でもできるが、プログラムに任せた方が遥かに効率がいい」のがシステム開発の特徴です。
プログラミングによって、人では実現できない処理を行います。
プログラミングがいま「注目される理由」とは?
この記事を読んでいる方の中には「なんとなく人気だから」という理由で、プログラミングに興味を持っている方もいるかもしれません。
これほどプログラミングが注目されているのは他にも様々な理由があります。代表的な理由は以下の3点です。
- プログラミング的思考を学べる
- IT業界が経済の中心に変化している
- AIの発展により単純作業が自動化している
それぞれ詳しく見ていきましょう。
プログラミング的思考を学べる
実は既に「プログラミング教育」が義務教育に取り入れられています。2020年から小学校で、2021年からは中学校で、プログラミングを教育の一貫として習っているのです。
こう聞くと「全員がIT企業に就職するわけではないのに?」と思うかもしれませんが、少し違います。
義務教育で行われる「プログラミング教育」は「プログラマー育成」とは違い、「プログラミング的思考法を学ぶため」という側面が大きいです。
プログラミングには「Aという条件でBが動く」「CがD以上であればEという操作をする」のように、論理的な思考回路が必要です。
そのような「論理的、ロジカルな思考力」を養う方法としてプログラミング教育が導入されています。
論理的思考力は、将来的に様々な仕事で役に立つと言われています。
ちなみに論理的思考力の「逆」は、「直感的、感情的」と言うことができます。直感や感情は大切なものですが、仕事の場面で直感的、感情的な判断ばかりをしてしまうのはよくありません。
将来的にどんな仕事につくにせよ、論理的思考力を養うことは大きなプラスになると考えられています。
IT業界が経済の中心に変化している
世の中にはさまざまな産業がありますが、ほとんどの産業においては「IT」と密接な関係があります。今まではITと関係ないと思われていた産業にもITの影響力が及び、今やITなしで完結する業界などないかと思うくらいです。
以下にいくつか例を紹介します。
- 外食産業
- 今までは店舗運営、呼び込みをしてればよかったが、現代はSNSや口コミサイトでのアピールが必須に
- 運輸業
- 配送する荷物の多くはネットショッピングによる買い物
- 教育産業
- 塾や学校の最大のライバルは、ネット上で学習できる有料無料の動画コンテンツ
- 製造業
- 人が作る製品は減っていき、管理された製造ラインで作る製品の割合が増えている
- 多くの中小企業
- 給与計算、出勤管理などITシステムで管理
このように、一見するとITは関係なさそうな業界でも、IT技術が使われています。
IT技術の分だけプログラムが組まれていて、今後もプログラミングができる人材の必要性は高まり続けていくのです。
AIの発展により単純作業が自動化されている
2015年の野村総研による以下のレポートによると、「10〜20年後に日本の仕事の49%は人工知能やロボットで代替可能になる」と言われています。参考:https://www.nri.com/-/media/Corporate/jp/Files/PDF/news/newsrelease/cc/2015/151202_1.pdf
2015年のレポートで「10〜20年後」と言われているので、ここで指摘されているうちのいくつかは既に人工知能やロボットに置き換わっていることでしょう。
身近に感じるだけでも、コンビニや日用品のレジで「自動精算機」が導入され、自分でバーコードをかざしてキャッシュレスで支払いができるものがあります。
「これだとレジの人が要らないんじゃ……」
と思ったことがある人もいるのではないでしょうか?
このように少しずつ人間の仕事はロボットに代替されていますが、その分、ロボットや人工知能の需要は高まることになります。つまりロボットに指示を出すプログラミングの需要も同時に高まっていきます。
プログラミングによって養われる論理的思考力が鍛えられていれば、将来的にもロボットに仕事を取られることはなく、むしろロボットを使う側に回れる可能性が上がります。
プログラミングを扱う「仕事」とは?
一口に「プログラミング」と言っても、その仕事内容は様々です。
プログラミングを行う人は「プログラマー」や「エンジニア」「SE(システム・エンジニア)」などと呼ばれますが、ここでは「エンジニア」で統一します。
エンジニアには、開発するシステムによって様々な呼ばれ方、働き方が存在します。
- Webエンジニア
- アプリケーションエンジニア
- 組み込みエンジニア
- データサイエンティスト
それぞれを詳しく見ていきましょう。
Webサービスを開発する「Webエンジニア」
Webエンジニアは、その名の通り、Web上で動作するページを作るエンジニアです。
「クックパッド」「ココナラ」「企業のHP」などのWebサービスを制作します。
重要なのは「クックパッド」にも「ココナラ」にもスマホアプリはありますが、スマホアプリを作るエンジニア(アプリケーションエンジニア)と、Webサイトを作るエンジニアは別ということです。
Webエンジニアが作ったWebページを基準にアプリを作ることもありますし、メルカリなどアプリが先に世に出て、後からWebが作られることも最近は増えています。
SNSなどのアプリを開発する「アプリケーションエンジニア」
「アプリ」と聞くと真っ先に「スマートフォンアプリ」を思い浮かべるかと思いますが、「アプリ(アプリケーション)」は、スマホだけでなくパソコン上で起動するアプリ、Web上で起動するアプリ、社内の業務改善アプリなど様々です。
それらのアプリを開発するのが「アプリケーションエンジニア」です。
SNSやスマホゲームなど、アプリは誰にとっても身近な存在なので、初めてプログラミングに取り組む人にとってはとっかかりやすいジャンルと言えます。
また小規模でスタートでき、もしApp StoreやGooglePlayで上位になって話題になると、一攫千金が狙えるなど、夢のある分野でもあります。
家電やハードウェアにプログラムを搭載する「組み込みエンジニア」
「組み込みエンジニア」という言葉は耳慣れないかもしれませんが「ルンバ」や「最新の冷蔵庫」にプログラムを搭載するのが「組み込みエンジニア」です。
「IoT(インターネットオブティングス)」という言葉を聞いたことがある人も多いと思いますが、自宅の家具家電をインターネットと接続してより便利に暮らしていく社会が少しずつ近づいています。
インターネットに繋がっている家具家電は以下のようなものがあります。
- 冷蔵庫(外出先からでも中身がわかる)
- 鍵(スマホを持って近づくだけで解錠可能)
- 照明(スマホで操作可能。色も選べる。声で操作も)
- 掃除機(ルンバなどの自動掃除機)
- エアコン(外出先から電源オンにして、帰宅時に快適)
他にもたくさんの例をあげることができますが、組み込みエンジニアがこれらの家電の動きを設計することで、人々の生活がより便利になっている、と言うこともできます。
スマート家電の需要の拡大に比例して、組み込みエンジニアの需要も増え続けています。
データ分析や人工知能開発に従事する「データサイエンティスト」
「データ・サイエンティスト」は、上で紹介したエンジニアとは少し種類が違います。IT技術の特徴として、「人間には不可能なほどの膨大なデータを収集できる」という特徴があります。
例えば、とあるサイトのアクセス数ひとつとっても、時間、場所、年齢、性別、滞在時間、クリック傾向など無数の情報(ビッグデータ)が集まります。
その膨大なデータを分析し、次の最適な一手を考えるのがデータサイエンティストの仕事です。膨大な情報はとても貴重ですが、それを適切に読み解き、企業にとって役立てられなければ意味がありません。
そのためデータサイエンティストには、データ管理や統計学、プログラミング、人工知能、社会情勢、ビジネスなど様々な分野の深い知見が必要となります。
データサイエンティストは多くの企業で引く手数多の状態で、収入は他のエンジニアよりもさらに高くなる傾向にあります。
プログラミングを習得する「学習方法」とは?
言語が決まれば、効率的な勉強法を知り、実行して自分に合うかどうか試していくのがいいでしょう。プログラミング学習は「いかに挫折しないか」がカギになります。大きな壁が立ちはだかったとき、挫折しそうになったときに簡単に乗り越えるかが重要です。
そこで、ここでは必ず抑えておきたい5つの勉強方法をご紹介します。
学習サイトを活用する
プログラミングは「いかに自分で考え、手を動かしたか」が学習の質を左右します。やみくもに勉強をするのでは、なかなか学習が定着しませんし、何よりスキルが身に付いているという実感を得づらいです。
そんな時は「学習サイト」を使うことをおすすめします。まず、基礎的なスキルなどは「学習サイト」でマスターするといいでしょう。以下の学習サイトをまとめた記事を参考に選んでみてくださいね!
→まずはここから!無料で始められるプログラミング学習サイト
→小学生向け!おすすめのプログラミング学習サイト
書籍を活用する
基礎的なことは「学習サイト」で学ぶことができます。しかし、学習サイトだけだと「基礎的で一番使うところを効率的に学んだ」という状態にすぎません。
必ず抜け漏れはありますし、今後サービスを作ったり、現場レベルで使える知識とするにはやはり1冊本を購入して基礎固めすることも大切なことです。
本の使い方は様々で、
- 文法のわからないところが出てきた時に辞書的に使う
- 書籍で紹介してあるサンプルサービスを作り、もの作りの基礎をさらに固める
- 微妙な概念の違いなどを理解するのに、さらに詳しく書籍を使って勉強する
大きくはこの3つです。
「紙媒体だと、かさばって持ち歩くのに不便だから必要ない」
こんなことを言う人もいるんですが、実際に実用的な技術を学ぶためには避けて通れない勉強法なので、ぜひぜひ挑戦してくださいね!
以下の記事を参考にあなたにあった書籍を選んでみてください!
WEBの質問サイトを活用する
そもそも調べ方が分からない」
正直、勉強していてこんなことはしょっちゅうです。なので、誰かに聞きたいと思うんですが、誰に聞けばいいの?と困ることって少なくないですよね。でも、実はそんなときに便利なサービスがあるんです。
それが「teratail(テラテイル)」というサービスです。
エンジニアのためのQ&Aサイトで、様々な質問が毎日投げかけられています。このサイトのすごいところは、無料なのに返答時間がとてつもなく早いということ。平均で1時間半くらいで返答が返ってきます。
しかし、Q&Aサイトを有効活用するためには、質問の仕方についても知っておかなければなりません。こちらの記事では、エンジニア監修の質問サイト活用方法や質問するためのテンプレートをまとめています。ぜひ参考にしてみてください。
プログラミングスクールを受講する
プログラミング学習は、挫折率が高いと言われています。弊社の行ったアンケートによると、プログラミング学習者の87.5%は挫折を経験しているという結果がでました。

挫折の原因は様々ですが、簡単に習得できるスキルではないということが分かりますね。挫折してしまう要因についてはこちらの記事でまとめているので、あわせて読んでいただければと思います。
そんなに簡単に学習できるものでもないんですね。その際は「プログラミングスクール」に入校することをおすすめします。
プログラミングスクールに入るメリットとしては以下のことが挙げられます。
- 質問がその場でできる
- カリキュラムが決まっていて、やるべきことが最適化されている
- 仕事獲得までのサポートが充実している
大きく3つ挙げましたが、これだけでもかなりのメリットがあることをわかっていただけますか? 挫折に悩むよりもスパッとプログラミングスクールに通った方が、トータルで考えてもコストメリットが高いと言えるのではないでしょうか。
オンラインサロンに参加する
オンラインサロンとは、特定の目的を持った人たちがオンラインで集まる有料クラブのようなものです。最近はいろいろなオンラインサロンが話題になっていますが、プログラミングのオンラインサロンもあります。
サロンに参加することで他のエンジニアと交流ができ、スキルアップに役立つかもしれません。
詳しくは、おすすめのエンジニアオンラインサロン10選|参加するメリット5選をご参照ください。
転職して実際に経験者から教わる
エンジニアに転職すれば、そこには先輩エンジニアがいます。経験者から教わることで、スキルアップの近道になるでしょう。
とはいえ、最初に転職することが難しいです。おすすめの方法は、まず最低限の基礎を学習します。
その後、比較的就職しやすいシステムエンジニアに転職し、そこで経験を積み、Webエンジニアに転職する方法です。
システムエンジニアは業務用のシステムを現場ルールに従って開発する仕事がメインで、WebエンジニアはWebアプリを流動的な開発手法で開発していきます。
そのためWebエンジニアの方が人気が高く、入社も難しい傾向にあります。なのでシステムエンジニアからステップアップしていく方法が王道です。
初心者におすすめの「プログラミング言語」とは?
私たちの世界では、日本人には日本語で、アメリカ人には英語で、ドイツ人にはドイツ語でというように、話す相手によって適切な言語が必要になります。
プログラミングの世界でも同様で、用途に応じて色々なプログラミング言語が必要で、その数は200言語以上と言われています。
すべての言語を紹介することはできないので、日本でのシェア率が高い以下のプログラミング言語について解説します。
- HTML/CSS
- JavaScript
- PHP
- Ruby
- Python
HTML/CSS
HTML/CSSは、Webページの表面を作ることのできるプログラミング言語です。HTMLは主にテキストなどを入れる機能で、CSSはHTMLで入れたテキストに装飾したり、レイアウトを調整する機能を持っています。
ただしHTMLとCSSのできることは重複していて、HTMLでも一部レイアウトを整えることが可能です。基本的には、HTMLはテキストボックスや文字や表などパーツを作るもの、CSSはパーツの設定をするもの、と考えておくとわかりやすいです。
→HTMLとはなにか?具体的に知りたい方はこちら
→CSSとはなにか?具体的に知りたい方はこちら
JavaScript
HTML/CSSはWebページの表面を作るプログラミング言語だと説明しました。これに関してはJavaScriptも同じなのですが、JavaScriptはユーザーの操作に合わせてWebページに変化を加えるという役割があります。
具体的には、HTMLやCSSで作ったボタンを押したときに画面が変わるようにする、などです。そのため、HTML/CSSは静的な言語、JavaScriptは動的な言語と呼ばれています。
→Javascriptとはなにか?具体的に知りたい方はこちら
PHP
PHPは現状Webアプリケーションの開発で主要な言語です。特にWebサイトやECサイトはPHPで作られていて、Webサイト作りで有名なWordPressもPHPで作られています。そのためPHPが扱えると、WordPressで作ったサイトの改修ができます。
有名どころだとぐるなび、Facebook、WikipediaなどはPHPをメインに作られています。PHPの仕事は多いので、学習価値は大きいでしょう。
Ruby
RubyもWebアプリケーション開発で活躍するプログラミング言語で、クックパッドやTwitterはRubyで開発されています。
Rubyは日本人によって開発された言語なので、日本語のドキュメントや情報が充実しているという点も大きなメリットでしょう。
とは少し専門的な話になりますが、Ruby on Railsというフレームワーク(プログラミングを書くときの土台で、いろいろな処理がまとまったもの)が強力で、これがRubyの大きな魅力になっています。
Python
PythonはWebアプリケーションやデスクトップアプリの開発にも使われますが、最近はもっぱらAI開発で注目されています。
AI開発においてはPython一強で、AIプログラミング=Pythonと言っても過言ではないでしょう。
将来的にAi開発に携わりたい方は、Pythonを学習する必要があります。AIが伸びればさらに需要は増えていくはずです。
まとめ
ここまでプログラミングの本質や基本事項に関して説明をしてきました。
要点が掴めるようにとっかかりとしてのイメージをわかりやすく解説したので、今後の学習に活かして頂ければ幸いです。プログラミングの世界は奥が深く、始めのうちはわからないことだらけかもしれません。
しかし、学んだ先にあるメリットは甚大です。この記事を読んでプログラミングに興味を持っていただいた方はぜひプログラミング学習をはじめてみてください。