プログラミングとは?
「プログラミングって何?」って聞かれたときに明確な答えを言える方はどれくらいいるでしょうか?
いざ説明してくださいって言われたら言えない方も多いかと思います。
ってことで、まずはウィキペディアの内容を確認してみましょう。
[su_quote]コンピュータのプログラミング(英: programming)とは、コンピュータプログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である。[/su_quote]
引用元:ウィキペディア
と書いてあります。
つまりどういうことかと言うと、コンピュータへの指示を出すことです。
コンピュータは指示を出した通りにしか動きません。
指示の仕方が間違っていれば、思い通りに動くことはありません。
プログラミングで出来ること
プログラミングはコンピューターに指示を出すことです。
ではそのプログラミングを使うことでどんなことが出来るようになるのでしょうか?
アプリケーションを作ることが出来る
皆さんのスマートフォンの中にはどんなアプリが入っていますか?
世の中には様々なアプリケーションが公開されています。
これらのアプリケーションは全てプログラミングによって出来ています。
つまり、プログラミングを勉強することで、皆さんのスマートフォンに入っているようなアプリケーションを作ることが可能ということです。
単純作業を自動化することが出来る
世の中には様々な機械、ロボットが導入されています。
自動券売機や、レジ、自動改札機などなど、様々な場面で機械が登場し、その度にそこに充てられていた仕事の方が、別の仕事をすることになりました。
このように、現在AIが発達し、様々な仕事がAIに変わるのではないかと言われています。
特に単純作業が行われる現場では、AIによる自動化が進んでいます。
もしかしたらあなたがしている仕事の中にも、プログラミングによって自動化出来るものがあるかもしれません。
ゲームを作ることが出来る
上記に記載したアプリケーションもそうですが、お店に売っているようなTVゲームもプログラミングが使われています。
このように世の中には様々なところでプログラミングが使われています。
あまり馴染みがないなと感じる方も、日頃からプログラミングには触れているのです。
そして、これらはあくまで言語ですので、必要な言語を勉強し、使えるようになれば生み出すことも出来るということです。
プログラミングを活かした仕事
上記のようなことが出来るプログラミング、大きく分けて2つの仕事に分けることが出来ます。
この2つどう違うのかと言うと、[marker]「役割」[/marker]です。
1つのシステムを制作する上での流れは、簡単にまとめるとこういった感じです。
【要件定義 → 設計 → 製造 → 試験】
今回は、この流れの中で、それぞれどこを担当するのかをまとめました。
システムエンジニア(SE)とは?
簡単に言うと、お客様の要望をヒアリングし、プログラムの設計をする人です。
つまりコードは書きません。
上記の流れの中の、
【要件定義】【設計】を主に担当します。
要件定義で、システム全体の仕様を明確にして、基本設計、詳細設計を行い、システム全体の設計をしていきます。
プログラマー(PG)とは?
では、プログラマーはどういった仕事なのでしょうか?
主にプログラミングを書く人がプログラマーと呼ばれる人たちです。
上記の流れの中で言うと、
【製造】【試験】を行います。
システムエンジニアが設計したものを参考に実際にコードを書いていきます。
そして書いたものが実際に設計書通りに動くのかをテストするのもプログラマーの仕事です。
プログラミング言語紹介
JavaScript
非常に人気のある言語で、主にバックエンドの開発に使用されます。
ウェブページ上のHTMLに埋め込むことが出来るので、ウェブページに様々な機能を載せることが可能です。
主にウェブページに動きを与えたいときに用いられます。
モバイルアプリケーションの構築も可能です。
あとに出てくるJavaとはまったく別の言語です。
PHP
PHPもJavaScript同様、HTMLに埋め込みことが出来るスクリプト言語です。
ただ、PHOはサーバー側で動作が行われます。
また、PHPはデータベースと連携して動作をすることを得意としているため、収集した情報をデータベースに保存するなどといった用途に用いられることも多いでしょう。
C++
C++はC言語の拡張版として生まれました。
初期のC言語から様々な拡張がなされ、オブジェクト指向のプログラミング言語です。
機械により近い言語のため、機械組み込みのプログラムを必要とする業界や、ゲーム業界などでも強みを発揮するでしょう。
C#
C++よりも、より開発しやすいように設計されており、C++の柔軟性とパワーを持ち合わせています。
C++同様、オブジェクト指向のプログラミング言語です。
文法としては後述するJavaに似ています。
そしてC#はマイクロソフトが開発しているため、Windows向けのアプリケーション開発に最適です。
Java
世界中で広く使用されており、Java環境がないパソコンだと動作しないウェブサイトやプログラムなどがたくさんさります。
主にAndroidスマートフォン上で動くアプリケーションや、ウェブ上で動くアプリケーションなどの開発が多くされています。OSに依存しないため、様々な環境で使用されています。
また、安全性や拡張性が高いのも特徴の一つなので、多くの開発会社からも支持されています。
Ruby
日本人が開発した世界的に使われている言語です。
クックパットやAirbnbもRubyで開発されています。
Rubyの大きな特徴としては、言語の仕様をプログラマーが変えることが出来るといった柔軟性を持っているという点です。
また、Ruby on RailsとはRubyというスクリプト言語を動かすためのウェブフレームワークがあり、ウェブ上で動作するアプリケーションをRubyで開発することが可能です。
Python
Pythonはオランダで生まれたプログラミング言語です。
ウェブのシステム開発に使用されることが多く、入力すれば、すぐに実行結果を確認できるインタプリター言語です。
人工知能に関する環境が整っているため、現在流行のディープラーニングや人工知能関連の開発に使われることがよくあります。
Swift
iOSやOS XなどのApple社のOS用の開発言語です。
iOS上で動作するアプリケーションの開発を行う企業で多く用いられています。
型の指定がなく、スクリプト言語のように簡単な文法、なおかつ他の言語と比べて、覚えることが少なくて住むため、習得するのが比較的容易な言語です。
まとめ
プログラミングというワード一つをとっても、しっかりと理解出来ている人はどれくらいいるでしょうか?
正しい知識を身に着け、各プログラミング言語の特性をしっかり理解しておくことが、大事です。
そして、プログラミング言語の種類はここに上げたものだけではなく、もっともっと無数にあります。
どれを学んでも損をすることはないと思いますが、しっかりと用途にあった言語の学習をおすすめします。