よくおすすめのプログラミング言語や勉強法を聞かれるので私のおすすめをまとめてみました!
まずは勉強する言語を決めないといけないので、私のおすすめを書きます。
Contents
タイプ1 就活に有利な言語を学びたい、軽く勉強したい
おすすめ → Webプログラミング(HTML, CSS, JavaScript)
学習容易度 | ★★★★★ |
需要 | ★★★★☆ |
収入期待値 | ★☆☆☆☆ |
応用性 | ★☆☆☆☆ |
毎日バリバリプログラミングをするようなプログラマーでなくても、デジタルメディア関連とか、広報の人でもWebプログラミングの知識があると一気に就活の幅が広がります。
またWebプログラミングは基礎だけなら始める敷居が低いので、ここからプログラミングに興味を持ち他の言語を始めるのもアリです。
オススメの理由① すぐに始められる
Webプログラミングが特にオススメな理由が、どんなパソコンにも入っているWebブラウザとテキストエディタがあれば今すぐ始められることです。
いざプログラミングの勉強を始めようと思っても必要なソフトやらのダウンロードから始めると、それだけで疲れちゃいます。
でもWebプログラミングならWebブラウザ(Chrome, Internet Explore, Safari, Firefox等)と、テキストエディタ(メモ帳、Notepad++、SublimeText等)さえあればとりあえず始められるのが手軽です。
オススメの理由② モチベーションが保ちやすい
Webプログラミングは他の言語に比べて、書けばすぐに動く(コンパイルしない)、エラーに甘いので、結果がすぐに目に見えて、モチベーションが保ちやすいです。
また最初に書いた就職以外にも、普段のブログのデザインの変更など仕事以外でもちょっとしたところで使えます。
言語について
Webプログラミング言語はWebサイト(ホームページ)などを作るのに使われますが、基本の三つ(HTML, CSS, JavaScript)に加えさらに高度な言語(PHP, SQL等)必要によって組み合わせて構成されます。
まずは基本の三つができれば基本的なWebサイトが作れるようになるので、この三つを勉強するのをオススメします。HTML, CSS, JavaScriptは互いに交じり合ってWebサイトを作るので、普通Webプログラミングを勉強しようとするとこの三つは一緒に勉強することになります。
- HTML : Webサイトの基本構成。文字や画像の位置とか、デザイン的な大まかな組み方、コラム数、文字にリンクをつける、など。
- CSS : HTMLを装飾する、文字の色や画像の大きさ、リンクをクリックした時に文字の色を変えたり。
- JavaScript : Webサイトの動作を定義する。何かをクリックしたらこれが現れるとか、動くとか、画像が動いたり、HTMLやCSSだけではできないような大胆なことができる。この応用版でjQueryというのものある。
これにさらにデータベースで何々するとか、通信してなんとかとか、そういう高度なことをするのにはさらに違う言語が必要になりますが、まずはこの三つです。
現在IT企業の研究開発部で働くエンジニアの私ですが、初めてWebプログラミングをしたのは小学生の頃です。くだらないWebサイトを作って一人で楽しんでいました。でもホントに小学生でもすぐにできるくらい基本は簡単です。
Webプログラミングはいわゆるプログラミング一般の言語とは大きな違いがあり応用力は低いですが、でも最初のきっかけとしては悪くないと思います。勉強の労力の低さに比べて、スキルの需要が非常に高いところが良いですね。JavaScriptは他の基本の二つに比べるとやや難易度が高いですが、他のプログラミング言語に通ずるところも多いので、そこまで頑張って勉強すると将来性もより高まると思います。
そんなにどっぷりプログラミングの世界に浸かりたいわけじゃないけど、ちょっと就活などで有利にしたい、プログラミングを体験したいくらいの人にちょうどいいです。
タイプ2 高収入を目指したい、堅実にいきたい、汎用性のある勉強をしたい
おすすめ → Java
学習容易度 | ★★☆☆☆ |
需要 | ★★★★☆ |
収入期待値 | ★★★★☆ |
応用性 | ★★★★★ |
Javaは様々な分野で広く使われているプログラミング言語です。ジャヴァと読み、タイプ1に出てきたJavaScriptとは別物です。
オススメの理由① 人気ナンバーワン言語・高需要
Inc.comの10 Most Popular Programming Languages Today(現在人気のあるプログラミングランキングTOP10)
でも堂々の1位、現在世界で最も人気のある、最も使われているプログラミング言語です。様々なソフトウェアの開発にも使われていて、これができれば好きな分野で働くことができるでしょう。
Android携帯のアプリなどもJavaができれば開発することができます。携帯のアプリはとてもシンプルなプログラミングでもアイディア次第で大ヒットがありえるので、その辺もモチベーションに繋がると思います。
オススメの理由② プログラミングの基礎がきちんと学べる
言語的にもWebプログラミングと違って、一般的なプログラミング言語と共通の書き方、概念、ルールなどが多いので、Javaができれば他の言語を勉強するのも簡単です。
正直、たいていのプログラミング言語は同じ概念を違う書き方で書いているだけなので、一つできればあとは方言を学ぶようなものです。その点でも非常にスタンダードなJavaを勉強するのは今後のためにもなるでしょう。大学の授業などでもJavaを教えているところが多いですね。
言語について
JavaはWebプログラミングのすぐ始められる・すぐ動くとは反対に、必要なツールをインストールしなくてはいけない、オブジェクト指向というちょっと難しい概念を理解したり、コンパイルという面倒くさい作業をしないとプログラムが動かないなど、学習のハードルはあります。
Webプログラミングに比べれば学習難易度は高くなりますが、人気が高いだけあって学習教材も豊富ですし、より本格的なスキルを身につけたいなら、最もバランスのとれた、スタンダードな選択だと言えるでしょう。
タイプ3 これから伸びる言語を学びたい、人工知能や機械学習などの流行にのりたい
おすすめ → Python
学習容易度 | ★★★☆☆ |
需要 | ★★★★☆ |
収入期待値 | ★★★★★ |
応用性 | ★★★☆☆ |
Pythonは私は少ししか書いたことがありませんが、今私が最も勉強したいのがこれです。
オススメの理由① 将来性
Pythonはパイソンと読み、今エンジニア業界で最もホットな言語で、人気が急速に高まっています。
これは何故かというと、Pythonが人工知能や機械学習の分野で多く使われているからです。
最近GoogleのAlphaGoが世界トップ棋士に圧勝したり、AIボイスアシスタントの開発競争が起きたり、自動運転カーの路上走行テストが各国で行われたり、人工知能や機械学習・深層学習の需要がうなぎ上りです。
機械学習が少しでも分かればシリコンバレーで引っ張りだこだとかそんな話をよく聞きます。
その真相は定かではありませんが、これからのエンジニア業界で人工知能開発の競争が激化し続けるのは目に見えています。
正直、この辺の知識を身につけないともはやエンジニアとしては生き残れないのではというレベルです。
そこで人工知能分野で最も人気のあるPythonがこれから学ぶのには将来性が高いというわけです。
ただ、人工知能開発なんかに興味があるレベルの人であれば、中高生なら数学、英語、物理などを真面目に勉強し、情報科学科に進み、基礎からたっぷり時間をかけて勉強し、大学院にも進むのが良いかもしれません。
もちろんPythonの使い道は人工知能開発だけではないので、趣味で勉強するのもアリですが。
オススメの理由② プログラミングのしやすさ
Pythonはスクリプト言語といって、コンパイルという作業なしで書いたらすぐにプログラムを実行できるタイプの言語です。
コンパイルする言語の方が、ひと手間多い分処理が速かったりしますが、でもプログラミングをしている間、このコンパイル作業というのはストレスになります。書いてすぐに結果が見えるPythonなら、トライ&エラーで大胆でスピード感のある、ストレスの少ないプログラミングができます。
またPythonは他の言語に比べて書き方が非常にシンプルで、かなり見た目にスタイリッシュです。私はまだPythonをそんなに使いこなしていないのでなんだかスカスカで気持ち悪く感じますが、でもこれが慣れると読みやすいらしい。
この手軽さ、ストレスの少なさ、モダンさと将来性、WebプログラミングとJavaの間をいく感じです。そんなPython、このトレンドに乗って勉強するのもいいかもしれません。
番外編 タイプ4 言語処理に興味がある
おすすめしない → Perl
ここで、おまけに、私が最も得意とするPerlについてちょっと書きます。
Perlは私が一番最初に勉強した、本格的なプログラミング言語です。何故か大学の最初の授業がPerlだったのです。
PerlはPythonと特徴が少し似ていて、スクリプト言語なのでストレスなく手軽にプログラミングできるという特徴がありますが、もう一つ、Perlが特化しているのがテキスト処理です。
現在人工知能のメインの能力として注目されているのが、会話すること、つまり人間の言語を処理することです。この分野を自然言語処理といいますが、その分野ではPerlが人気が高いです。
しかし、Perlは古代言語とからかわれるくらい、それ以外の分野ではPythonに人気を奪われ、今や斜陽言語です。
私の会社では、Perlを使って仕事しているなんて、将来転職したい時に大丈夫かな…と不安を漏らす人もいるほどです…。
やはりプログラマーは技術職なので、技術を磨いて、転職しよりより労働条件を得るというのがスタンダードですし、そこにおいて応用性の高さは大切な鍵となります。
そのためどの言語を勉強しても他の言語への転向はある程度できますが、その経験も大切になるので、やはり最初に選ぶ言語というのは重要になるわけです。
というわけでPerlはおすすめしません!
番外編 タイプ5 ゲームが好き
おすすめ → UnityとC#
これは私が小学生のいとこにオススメした方法です。
ここまで紹介してきたプログラミング言語は実用度が高く、仕事などに結びつきやすいものでしたが、例えば子供だったら、実用度よりもプログラミングそのものに興味を持つことが大切なので、アウトプットの良さを重視で、ゲームプログラミングを勧めます。
ゲームプログラミングを始めるなら何と言ってもUnityです。
UnityはUnityプログラムのサポートで本格的な3Dゲームが作れる開発プラットフォームです。グラフィックはBlenderなどで自分でも作ってもいいですが、無料で最初から使えるグラフィックがUnity内に色々あるので、それを使ってプログラミングしてみるのがオススメです。
ちなみに、Unityではプログラミング言語としてC#とJavaScriptが選べます。タイプ1でご紹介した通り、JavaScriptは比較的簡単な言語なので、ちょっとプログラミング体験くらいならJavaScriptでもいいですが、これからプログラミングを学ぶという側面で言うと、絶対にC#がオススメです。
C#は実際にゲーム業界でゲーム開発に使われている言語で、ちょっと学習難易度は高くなりますが、プログラミングの勉強としては需要も高いので良いでしょう。
ただしC#はゲーム業界以外ではそこまで人気のある言語ではないので、ゲームプログラミングに特別に興味がある場合のみオススメです。
Unityは公式サイト(日本語版)からダウンロードできます。
ゲームプログラミングはチュートリアル動画が沢山あるのでそれを見ながらまずは試しに一緒に作ってみて、そこからオリジナル制作が良いでしょう。
公式の初心者向け動画もあります。
ちなみに私は子供向けの本を探していとこにプレゼントしました。いくつか本屋で読んでみて、一番実用性の高いプログラミングの知識が身につきなやつを選びました。結構内容は難しいので情熱がある子ならできると思います!
勉強法
言語を決定したら勉強法です。
勉強法は言語ごとに様々な方法があると思いますが、英語ができる方に私がオススメするのがオンライン動画学習サイト
です! 講座の数は英語より少ないですが日本語版もあります
Lyndaは私が通ったイギリスの大学院でも、授業外での学習法として散々オススメされました。
世界で一番人気のあるプログラミング学習動画サイトです。プログラミング以外にもPhotoshopなど他のパソコンのスキルも学べます。
有料ですが1コース何時間とか、そういう感じでテーマごとに学べるようになっているので、きちんと順を追って一通り学べるので、完全独学よりずっといいと思います。
海外ではこういうオンラインコースで学んで履歴書にそれを書く人も多いです。
やはり信用あるスキルとしては、独学よりオンラインでもカリキュラムに乗っ取って勉強した方が雇う側も安心ですからね。
うちの会社の同僚たちもスキルアップ、昇進、昇給を目指して結構Lyndaで勉強している人がいます。
例えばHTMLの基礎の日本語の講座だったら
こちらのHTML5 基本講座など良いのではないでしょうか。
HTMLに加えて、CSSとJavaScriptにも触れています。
まとめ
というわけで、今回私がおすすめした言語は3つ、Webプログラミング言語、Java、Pythonでした。
自分のやる気、目的、学習に使える時間などを鑑みて、選んでみて下さい。
もちろんこの三つが全部できればもう引っ張りだこは間違いないです。一生食いっぱぐれません。
またこれらの言語はどれも高級言語と呼ばれる学習のしやすい、人間の可読性の高い言語ですが、
コンピューターの世界にどっぷり浸かると、より速く精細な処理のできる低級言語を学習する人もいます。
でもそれは初心者が勉強するものではないので、まずはこのおすすめ言語を勉強して、さらに深くコンピュータープログラミングを学びたい人はきちんとした学校などに通って、ハードウェアの知識などと一緒に学ぶと良いでしょう。
動画より本派の人はこちら↓