「プログラミングって何ができるの?」こう感じている人も少なくないと思います。
「プログラミングでパソコンのソフトウェアとかスマホアプリを作れる感じかな?」ぐらいの理解度の人も多いのではないでしょうか。
この理解で間違ってはいませんが、プログラミングでできること・作れるものは他にもたくさんあるのです。
せっかくプログラミングの学習を始めたいと思っても、プログラミングを習得した先で何ができるようになっているのか明確なイメージが湧かなければ、学習のモチベーションを保つことは難しいですよね。
また、学習を考えていない人にとっても、これからますます需要が高まるプログラミングについて知ることは有意義なはずです。
本記事を読めば、以下の疑問を解消できます。
・プログラミング・プログラミング言語って何?
・プログラミングでできること・作れるものは?
・プログラミング言語によってできることに違いがあるの?
・学習のメリット・方法は?
それでは、早速見ていきましょう!
プログラミングとは
そもそも、プログラミングとは何なのか知っていますか?
プログラミングとは、コンピュータへ出す指示(プログラム)を記述することです。
みなさんも自分の後輩に「〇〇しといて!」と指示を出したことがあると思いますが、プログラミングは「指示をする相手が、人間ではなくコンピュータになっただけ」と捉えるとわかりやすいかと思います。
また、コンピュータに命令するときに「〇〇しといて!」なんて言ったところで、コンピュータが動いてくれるわけありませんよね。
コンピュータに命令を伝えるためには、コンピュータが理解できる言葉で命令を出す必要があります。その言葉が、プログラミング言語と呼ばれるものです。
プログラミングについてもっと詳しく知りたい方は、こちらの記事がおすすめです。
プログラミングでできること・作れるもの
ここでは早速、プログラミングを使って実現できること・作れるものを紹介します。
Webサイト制作・Webアプリ開発
皆さんがプログラミングと聞いて一番にイメージするのが、WebサイトやWebアプリなのではないでしょうか。
プログラミングを使えば、私たちが普段パソコンやスマホで見るWebサイトやWebアプリを作ることができます。
ちなみに、皆さんが今見ているこのCOACHTECH Lab.もWebサイトの一つです。
WebサイトとWebアプリの違いは曖昧なのですが、ユーザーが基本受動的なのがWebサイト(情報を閲覧するだけのWikipediaなど)、ユーザーが能動的なのがWebアプリ(自分で投稿、リツイート、いいねができるTwitterなど)と考えておけばよいです。
スマホアプリ開発
プログラミングを使えば、スマホアプリを開発することができます。私たちがよく使うLINEやYouTube、Instagramなどもプログラミングで作られているのです。
ここで、「さっき出てきたWebアプリとスマホアプリって何が違うの?」と疑問に思うかもしれません。
WebアプリはGoogle ChromeやSafari、Internet ExplorerなどのWebブラウザ上で利用できるもので、スマホアプリはApple StoreやGoogle Playストアからインストールして使うものです。
TwitterやInstagramのように、Webアプリ版とスマホアプリ版の両方あるサービスも存在します。
AI(人工知能)開発
プログラミングでAI(人工知能)の開発も可能です。
AIとは、事前にインプットされた大量の情報を解析・学習して、インプット以上の処理を実現する技術のことです。人間のように、蓄積された経験をもとに予測することが可能なコンピュータということですね。
「AIによって人間は仕事を奪われるのではないか。」などと言われていますが、AIは現状単純な予測しかできないこと・大量の情報をインプットするため初期コストが高いこと・AIを扱うのはあくまで人間であることから、現状AIが人間にとって代わることはないでしょう。
もし仮にAIが人間の仕事をこなせるようになったとしても、そのAI自体を開発できるプログラミングは需要がなくなることはないので、そういった意味でもプログラミングについて知っておくことは重要なのではないでしょうか。
ロボット開発
ロボット開発にもプログラミングが使われています。例えばロボットが手足を動かすのも、厳密にプログラミングで制御されているからこそ実現できるのです。
またロボットとAIを掛け合わせることも可能で、ペッパー君でおなじみのロボット「pepper」はその代表例です。
AIを搭載したロボットは、危険地帯での調査など、人間ではできない仕事をこなすことが期待されており、注目が集まっています。
ゲーム開発
スマホゲーム・パソコンゲーム・Nintendo Switch・PS5など、ゲームはすべてプログラミングで開発されています。
現在ではVRゲーム・ARゲームなど最新技術を使ったゲームも登場しており、どんどん進化している分野です。
みなさんが小さい頃に遊んだゲームもすべてプログラミングで作られたものです。
システム開発
システム開発にもプログラミングが使われています。システム開発とは、電子機器の制御や業務効率化の仕組みを構築することです。
例えば、店の商品在庫や売上数を一括で管理するためのシステムもプログラミングを使って開発することができます。企業の大きなシステムを開発することはもちろん、エクセル入力などの日常の業務を効率化する開発も可能です。
また、最近ではIoT(Internet of Things)が注目されています。スピーカーや電気、冷蔵庫もインターネットに接続されるようになってきていて、これらの機器の制御もプログラミングで行っています。
プログラミング言語別にできること・作れるもの
プログラミング言語には様々な種類があり、それぞれ得意分野・苦手分野があるため、できることや作れるものが違ってきます。ここでは、言語別にできること・作れるものを紹介します。
PHP・Ruby
PHPとRubyは主にWebアプリ開発やWebサイト制作に使われます。
また、WordPressというブログ作成用ソフトウェアはPHPをもとに作られていて、WordPressのカスタマイズをする際にはPHPを使います。
PHPとRubyは比較的難易度が低く、フレームワークを使って非常に手軽にサービスを開発することができるため、初心者におすすめの言語となっています。
Python
Pythonは非常に多くのことができ、特に、以下の場面でよく使われます。
・人工知能開発
・ロボット開発
・データ分析
・Webサイト制作
・Webアプリ開発
人工知能開発やロボット開発などの将来性のある分野で使われるため、非常に需要のあるプログラミング言語になります。
Java
Javaは、求人数が1位のプログラミング言語です。
Javaはほとんど何でもできるほど汎用性が高いのが特徴ですが、特にWebアプリ開発、Androidアプリ開発、システム開発で使用されています。
Javaは大規模開発やセキュリティに優れていることから、大企業や銀行で使用されます。
Swift
SwiftはAppleが開発したもので、iOSアプリやmacOSアプリの開発に特化したプログラミング言語です。
WindowsのパソコンではSwiftを扱うのは難しいので、Swiftを学習してみたい方はMacのパソコンを用意しましょう。
Kotlin
KotlinはAndroidアプリの開発をすることができるプログラミング言語です。
Androidアプリの開発言語としてGoogleが推奨したこともあり、どんどんシェアが高まっている言語です。
同じくAndroidアプリを開発できるJavaと比べて、Kotlinの方が簡潔にコードを記述できるのも特徴です。
プログラミング学習方法
ここまで読んだ方は、プログラミングでできること・作れるものを具体的に知ることができたと思います。
ここからは、プログラミングを学習してみたいと思った方に向けて、プログラミングの学習方法を紹介します。
プログラミングの学習方法は、大きく分けて以下の3つあります。
・書籍
・Webサービス
・プログラミングスクール
それぞれの学習方法のメリット・デメリットは次のようになります。
書籍
メリット
・一冊で体系的な知識を得られる
・今まで参考書などの書籍を使って勉強してきた人にとって親しみやすい
デメリット
・書籍によっては情報が古い場合がある
・学習で躓いた所を自力で解決しにくい
Webサービス
メリット
・学習した内容をすぐにアウトプットできる
・質問サポート付きのサービスもあり、学習で躓きにくい
デメリット
・実践的なスキルは身につきにくい
・モチベーションを維持しにくい
プログラミングスクール
メリット
・最短でプログラミングを習得できる
・充実したサポートがあるため挫折しにくい
デメリット
・他の学習方法と比べてお金がかかる
・期間内に学習をやりきる必要がある
プログラミング学習を考えている方は、まずは書籍とWebサービスを使って学習してみて、「もっと効率的にプログラミング学習をしたい!」「書籍とWebサービスだけじゃ挫折しそう…」と思うのであればプログラミングスクールを活用することをおすすめします。
Webサービスを使った具体的な学習方法は、以下の記事で解説しています。
まとめ
今回は、プログラミングでできること・作れるものについて紹介しました。
私たちは、プログラミングで作られたものに囲まれて生活しています。パソコンやスマートフォンなどがなければ、今の私たちの生活は成り立たないでしょう。
また、プログラミングの需要増加に伴い、小学校でのプログラミング必修化などの新たな取り組みも始まっています。
このように、もはやプログラミングは、エンジニアやプログラマーのような一部の人だけでなく、全ての人が知っておくべき常識となりつつあります。
プログラミングを学習しようと思っている人もそうでない人にとっても、プログラミングについて理解を深めることは非常に価値があることではないでしょうか。
本記事を読んだみなさんが、少しでもプログラミングに興味をもってくだされば幸いです。