プログラミング未経験や初心者の方が最初に直面しがちなのが、プログラミング言語の選択です。
今回、プログラミングの研究結果から「どのプログラミング言語を最初に学ぶべきか」を紹介します。
最初に学ぶべき言語はRubyかPythonがオススメです!
その理由に関しては、後述する研究結果をご確認ください。
プログラミングに関して全く知識がない方でも分かるようになるべく分かりやすく解説していきます。
プログラミング言語の種類
おすすめの言語を紹介する前に、プログラミング言語にはどんな種類があるのかを簡単に説明します。
プログラミング言語の種類は確認できているだけでも250種類存在することが分かっています。
プログラミング言語は目的によって使い分けるのが一般的です。
例えば、AI開発であればPython(パイソン)という言語が使われています。PythonがAIに使われている理由は効率よく処理が出来るためと考えて下さい。
作成したいものに合わせてプログラミング言語は作成されますので、言語の種類は年々増えていきます。
たくさんありますが、一般のプログラマーが見る可能性があるのは10個程度です。
以下はプログラミング言語別の求人の割合で、JAVAという言語がダントツで多いですね。JAVAは汎用性がとても高い言語で、何にでも使うことが出来ると言っても過言ではありません。
「JAVAで何でも出来るのであればJAVAだけを勉強すればいいではないか」と思う方もいらっしゃるかと思いますが、それでは効率が悪い場合もあります。
例えば、車はどこにでも行ける乗り物ですが、歩いて1分の場所も車を使いますか?おそらく、車は使わずに徒歩で行くかと思います。
プログラミングも同じで、成し遂げる目的によって達成手段(プログラミング言語)も変わってきます。
また、JAVAは理解するのが難しいため未経験や初心者の方が勉強するには向いていません。
プログラミング言語選択時のポイント
言語選択時に重要なのは目標設定です。
目標設定の方法として、SMARTという有名な方法があります。
これは、ジョージ・T・ドラン氏が1981年に発表した目標設定法です。
SMARTとは以下の英単語の頭文字をとったものになります。
- S:Specific(具体的であること)
- M:Measurable(測定可能であること)
- A:Attainable(達成可能であること)
- R:Relevant(関連性があること)
- T:Time-related(期限があること)
この方法は様々な研究者により有効性が発表されていますが、使い方に注意が必要という研究があります。
2017年にノースダコタ大学のMay BrittBjerkeらによって発表された研究には、SMARTは段階的に使う必要があるということが述べられています。
色んな目標を達成する際にSMARTを一度に全て達成しようとすると失敗した事例を元に導き出されています。
そこで、今回プログラミング習得をするために、S(具体的な目標)とT(期限がある)に絞ります。
言語選択のポイントとなるは、プログラミングが必要になる期限が1年以内かどうかです。
例えば、以下のようにパターン1とパターン2の状態の人がいるとします。
◇パターン1
- 目的:アニメーションなどを組み込んだWEBサイトが作成できるようになること
- 期限:今から1年後
◇パターン2
- 目的:とりあえず手に職をつけるために技術的なことを学ぶこと
- 期限:未定(早くても2~3年後以降)
パターン1の場合は、迷わずWEBサイト作成に必要なHTML、CSS、Javascriptなどを学んでください。
パターン2の場合は、まずは初歩的なプログラミング言語(次のセクションで紹介)からはじめることをおすすめします。
その理由は、プログラミングをマスターするための2つの関門を同時にマスターするのはかなり大変だからです。
関門は以下の2種類あります。
1つ目は、エラーが出た際のバグを解決することです。
(バグ:コンピュータのプログラムにひそむ誤り)
2つ目は、アルゴリズムを理解できるようになることです。
(アルゴリズム:手順や計算方法)
1つ目のバグ解決は以下のようにプログラミングの挫折理由2位に挙げられるほど大半の方が苦労します。
引用元:侍エンジニア塾
1つ目のバグの解決方法は言語により違いますが、2つ目のアルゴリズムは同じです。
アルゴリズムに関しても、複雑な手続きの理解が必要になり苦戦する方が多数いらっしゃいます。
そのため、1年以上時間がある方はまずはアルゴリズムを理解し、簡単な言語でプログラムを組んで理解を深めるというのがおすすめです。
最初に学ぶべきプログラミング言語と理由
最初に学ぶべき言語① Ruby
最初に学ぶのがおすすめなのは2種類あり、1つ目はRubyです。
Rubyとは、日本人のまつもとゆきひろ氏により作成されました。RubyはSNSやWEBアプリ開発、機械学習まで汎用性が高いです。
未経験や初心者の方におすすめ出来る理由は以下の2つです。
- 記述量が少ない
- 日本語での解説記事が多い
プログラミングの記述量が少なければ少ないほど間違える数も減りますし、覚えることも比較的少なくて済みます。また、プログラミングが上手く作動しなくても、開発者が日本人ですので不明点をネットで検索すると日本語での解説記事が他の言語よりも多いです。そのため、ある程度は1人でも解決できるものが多いという特徴があります。
他の言語に関しては、英語で解説されている記事は多いですが、英語の専門用語もあるので1人で解決するのはかなり難しくて挫折する人が多い傾向があります。
また、最近では大学教育でもRubyが使用されることがあります。
例えば、東京大学のプログラミングの授業でもRubyが使われています。
東京大学では教養として文系の方もプログラミングを学ぶ必要があるため、理系にも文系にも学びやすい言語が選択されたのではないかと考えています。
最初に学ぶべき言語② Python
2つ目におすすめなのは、Pythonです。
Pythonは主に人工知能AIの開発に使われている言語です。
人工知能AIと聞くと難しそうな印象を受けるかもしれませんが、とても単純な規則で使われているのが多いため理解しやすくRubyと同じくらいオススメです。
Pythonをおすすめ出来る理由は理解しやすいだけでなく、今後確実に需要があるという点も挙げられます。
経済産業省の資料にも、AI人材が今後確実に不足するという報告があり、また「現在の職業の49%はAIに置き換えられる可能性がある」というオックスフォード大学の研究でもAIの影響の重大性が述べられています。
AIを作成したり管理したりするする技術をもっていれば今後10年程度は安泰かもしれません。
まとめ
今回は未経験や初心者の方にオススメ出来るプログラミング言語を紹介しました。
私が大学に通っていた際は授業でC++があったので、この言語から勉強を始めました。
しかし、理解が難しく何回も挫折してもうプログラミングなんてやりたくないと思ったこともあります笑
社会人になってRubyやPythonの勉強をしてみるとても分かりやすく、また色んなプログラマーさんに聞いてもこの2つを未経験や初心者の方におすすめする方が多かったので今回紹介させていただきました。
◆言語選択のポイントとなるは、プログラミングが必要になる期限が1年以内かどうか
◆1年未満しか時間がない方は目標を叶えるための言語のみを勉強するといい
◆1年以上時間がある方はまずはアルゴリズムを理解し、簡単な言語でプログラムを組んで理解を深めるというのがおすすめ
◆未経験や初心者にはオススメの言語は、RubyかPython