前回、教育用プログラミングはScratchがよいのではないかと投稿しましたが、その後に本格的に学ぶべきプログラミング言語は何か?これは本当に頭を悩ますテーマです。このブログは子育て中のパパ・ママ向けにということで書いていますが、子供が既に中学生という場合は、もう教育用プログラミング言語から実践的なプログラムにはいってしまってもいい年齢です。今回は実践的なプログラムを選択する際の僕なりの基準についてかいてみたいと思います。
Scratchについてかいた記事はこちら
実践的プログラムは目的から選ぶ
プログラミング言語をどれを選ぶべきかという疑問について、ちょっとGoogleで検索すると様々なサイトが見つかります。それぞれ主義主張があり、なかなか、この言語一択ですというものがありません。ほんとこまりますよね。
何をやりたいかで決める
僕が考えるプログラミング選択の考えなのですが、まずプログラミングはあくまでも表現の手段なので、何をやりたいの?というところが重要かと思います。色々あるプログラミング言語ですが、それぞれに特徴があり特定の分野に強いという側面もあります。
もしあなたがWeb関連で働きたいのならHTML/CSSを基本としてPHPやJavascriptを学ぶのが良いでしょうし、人工知能関連をやりたいならPhytonといったものが適しています。これは、これらの分野で比較的多く使われてきた経緯があるため、ライブラリと呼ばれるツール集がその分野に特化したものが充実して存在しているからです。
本当にざっくりとなのですが、プログラミング言語を分野ごとにわけたのが以下の図です。もちろん、1つの言語が隣の分野では全くつかえないことはなく、比較的使われている分野という意味で書いています。
仕事で言語が絞られることもある
一方、仕事で言語を指定されてしまうこともあります、あなたがJavaをやりたくても会社が古いシステムを維持するためにCOBOLを覚えてくれといわれたらそれをやるしかありません。特に勘定系システムや銀行などの金融系では、だいぶなくなったとはいえテープリールで回るようなメインフレームと呼ばれる古いシステムが稼働していることもあり、そのシステムではCOBOLという言語がもとめらることがあります。この場合はやりたいよりも、やらねばというところが前面にでてきます。
これは外国語でも同じ話ですよね。宇宙飛行士になりたいのなら英語とロシア語、サッカー選手になってACミランで活躍したいならイタリア語なんだけど、逆に仕事で中国に転勤を命じられたら北京語を覚えなきゃといった感じですね。
まだ目的が決まっていない場合
もし、現時点でまだ何も決まってないよという場合ですと、教育コストの面や将来性をみて僕がおすすめするのは以下かなとおもっています。
JavaScript
JavaScriptはブラウザさえあれば動くという、あまり開発環境を準備しなくてもすぐ動くという特徴があり、Webブラウザでは広く使われています。
またサーバ側でもNode.jsというものを用意すれば実行することができ、ことインターネット全盛でWebブラウザが中心となったこのご時世では利用用途が多いです。類似のGoogleScriptもJavaScriptを知っていれば簡単に覚えることもできるため、Flashが廃れ、またスマホアプリもネイティブアプリからブラウザベースへと移行する流れの中では有力ですし、ビジネスの世界でも各種データ分析はExcelのVBAに代わり、GoogleスプレッドシートでのScriptベースに移行しているため、こちらの面でも有力です。スクリプト言語ですので覚えやすいという特徴もありますね。
Phyton
Phytonについては、まだ発展途上ではありますが人工知能分野でも多くつかわれており将来性のある言語です。記述方法もシンプルでわかりやすく、スクリプト言語(インタプリタ式)なので書いた内容で間違いがあったら、すぐに気づけ、間違いを修正しやすいという特徴があります。また同時にオブジェクト指向も取り入れているので勉強と実用という両面があります。人工知能用と書きましたが、この分野関連のライブラリが多いというだけで、普通にWebサイト用にも使えますし事務処理計算でも使えますよ。ちょっと前は日本語の文献が少ないという評価でしたが、最近は結構、街中の書店でもPhyton関連の本を見かけるようになったため文献が少ないというのをそれほど気にするデメリットではなくなってきているのではとおもいます。
JAVA
汎用性が高いという意味でおすすめです。JAVAは色々なシステムでも利用できるため企業の業務サーバで使われたりWebサイトでも、Androidアプリなどでも利用されています。また誕生してからだいぶ時間がたっており、JAVAに関する文献(ヒント集)が数多く存在しています。プログラミング言語を選ぶ上で、もう一つの選び方としては、この文献・テキストが存在しているかというところが鍵になります、どんなに優れた言語で最先端はこれだ!といっても文献がないと、つまづいた時に先に進めなくなります。そういう意味ではJAVAはこの文献が非常に多いです。最近はKotlinと呼ばれるJAVAをもう少しシンプルにした類似言語がでていますが、こちらはまだ文献が少ないので学習者が手を出すにはちょっと早いのではと思います。
JAVAはコンパイル型なのでスクリプト言語(インタプリタ型)と比べて少し理解が難しく、また本格的なオブジェクト思考なのでマスターするために少し時間がかかりますが、文献の多さと汎用性の高さから言語としては外せないのではないでしょうか。
以上が僕の考える言語選択の仕方です。とはいえPHPもWordpressでつかわれているから外したくないとか悩ましいんですけどね。やっぱり、やりたいこと需要あるところでプログラミングを選ぶのがいいですね。
そんなプログラム選びに悩まれるかたはこんな本はいかがでしょう?ここで書いた以上に事細かくプログラミング言語および統合開発環境とよばれるプログラムを書く際に便利なツールについて分析している本になります。
コメント