こんにちは。「JAVAとJavaScriptの違いは何?」という質問に対して「インドとインドネシアくらい違う」と回答している人がいて、妙に納得してしまったFa1(ふぁいち)です。
皆様は、「プログラミング」という言葉にどのようなイメージを持たれておりますでしょうか?
「ハッキングするためのツール」
「何かを作れるもの」
など、様々な印象を持たれているかと予想します。
その中でも「何かを作れるもの」というイメージに注目をしたいと思います。
一体、プログラミングによって何を作り出すことができるのでしょうか。
本記事では、プログラミングについてを説明した後にプログラミングによってなにができるのかを説明致します。
加えて、作れるもの別におすすめのプログラミング言語もご紹介致しますので、これから学習を始めたいと思われている方にもおすすめの記事となっております。
目次
プログラミングとは
そもそもプログラミングとは一体どのようなものでしょうか。結論から言ってしまうと、
「目的を達成するためにコンピュータへ指示をするもの」
です。
プログラミング言語とは、コンピュータとのコミュニケーションツールであり、「あれを表示してね」「これを計算してね」といった指示を伝えることができます。
プログラミングでできること
プログラミングによって実現できることの具体例をいくつかご紹介致します。
- ハードウェアの制御
- ディスプレイへの表示やライトの点灯、モータの制御など、電気信号で動作するハードウェアを制御することができます。プログラミングで「電気信号を流す・流さない」などを指示することで実現します。
- コンテンツクリエイト
- ゲーム制作や動画・画像編集もプログラミングで実現可能です。3Dのアクションゲームからブラウザゲームまで、様々なジャンルのゲームによって扱うプログラミング言語も変わります。
- 処理の自動化
- 普段は手作業で行っている処理(エクセルなど)を、プログラミングで自動処理することができます。毎日同じ作業に10分掛けていたものが、プログラミングを用いることで5秒で終わってしまう(しかもミス無く)ということもよくある話です。
- 人工知能(AI)
- ビッグデータの統計処理や深層学習もプログラミングで計算が可能です。非常に注目されている分野ですので、プログラミング言語もAIに特化した機能を追加されていたりと、継続的な成長が見込まれています。
独学で取得可能か
「プログラミングでなにかを作ってみたい!だけど、どうやって勉強すればいんだろう。そもそも独学は可能なのか?」
こういった疑問を持たれる方が多いかと思いますが、結論から言いますと
可能です。ただし、経済的・時間的にプログラミングスクール等に通うことができるのであればそれも尚良し。
プログラミングは、基礎的なところの理解や学習の進め方さえ理解できれば、どんな種類のプログラミング言語であれ独学で進めていくことができます。そのための教材や情報はインターネットや書籍として数え切れないほど存在しています。もちろん、プロのエンジニアから直接教わることができる環境でればそれに越したことはないのですが、マストではありません。
まずは、書籍やインターネットでプログラミングに触れてみて、その後でスクール等に通うか通わないかを検討してみるのもアリです。
作りたいもの別おすすめプログラミング言語
ここからは、「こんなものを作りたい!」というモノ別におすすめのプログラミング言語をご紹介致します。これから学習を始められるということであれば、以下を参考にご検討してみてはいかがでしょうか。
Webサービス
Webサービスとは、ホームページのデザインや機能の実装、Webサーバの構築などのことを指します。例えば、ホームページに訪れて、なにかのサービスの会員登録をしたり、サイト上のボタンをクリックしたときに動作する機能等をプログラミングで実現します。
JavaScript
後述するHTML/CSSで記述されたWebサイトに機能を追加することができます。Webに関するアプリケーションを作りたいときは、確実に関わることのある言語です。言語としても扱いやすく情報量も多いので、初めて学ぶ言語としてもおすすめです。
HTML / CSS
ウェブサイトのデザインをすることができる言語です。サイトの目に見えるところはHTML/CSSで、裏側はJavaScriptで実現するという住み分けになっています。そのため、JavaScriptとHTML/CSSはセットで学習を進めていくことをおすすめ致します。
ゲーム制作
普段目にするテレビゲームやPCゲーム等もプログラミングによって記述がされています。それらのコンシューマゲームだけではなく、同人ブラウザゲーム等ももちろんプログラミング言語によって記述がされています。
C#
C#はC言語を基にしたプログラミング言語です。主にWindows向けのアプリケーション等でも用いられますが、Unityというゲーミングエンジンと合わせて2D/3Dのゲームを作ることができます。ゲームエンジンとの連携等学ぶ項目が多いということもあり取得難易度は高めです。
C++
C#と同様にC言語ベースのプログラミング言語です。コンシューマゲーム等の開発に多く用いられます。C#と同じく取得難易度は高めです。
JavaScript
JavaScriptはブラウザゲーム向けに使用されます。先述のHTMLの要素も用いて、ゲームを実現します。また、Javascriptにはゲームに適したライブラリが多く存在しており、比較的に学習難易度は低めです。
AI(人工知能)
AIは統計処理が基になっている分野であり、統計を得意とした言語を用いることでAIの構築も可能になります。
Python
Pythonはデータの収集や編集が得意で、AI向けのライブラリも豊富です。言語の記述もシンプルで、初めてのプログラミング言語としてもおすすめです。
R
R言語は、より統計処理に特化した言語であり、データサイエンスを目的としたプログラミングでは必ずと言っていいほど使用されます。Pythonは統計処理にのみ特化しているわけではないので、違いとしてはその点になります。
スマホアプリ
スマートフォンで用いられるアプリケーションも、もちろんプログラミングで作られています。Androidスマートフォンなのか、iPhoneなのかで開発言語が変わります。(どちらにも対応する物を作る方法もありますが、応用的な要素が多いため本記事では追求いたしません。)
Java (Android)
Javaはスマートフォンアプリに特化した言語というわけではありませんが、Androidスマホ向けのアプリ開発の初期から用いられている言語です。言語取得の難易度は低くはありませんが、教材や情報が豊富なので学習には困らない言語です。
Swift (iOS)
SwiftはAppleが開発した、iOSやMAC向けに特化した言語です。用途が限られているため、発展しづらい言語ではありますが、言語難易度の低さや「iPhoneのアプリを作れる」というスキルは重宝されます。
まとめ
いかがでしょうか。本記事では、プログラミングで一体何ができるのかという点についてご説明を致しました。
ここまでで説明をした内容以外にもプログラミングで実現できることはたくさんあります。大事なのは、どの言語を用いることでより効率的に作りたいものが作れるのかという点になります。
本記事が皆様のプログラミング学習のイントロダクションとして活用いただけていれば幸いです。