はじめに
未経験者の方がプログラミング言語を学ぼう!と思っても、大量にあるプログラミング言語の中からどれを選べばいいのか?なかなか決断できませんよね。
ネットで調べても色んな意見が溢れてて困りますよね。
- Pythonが簡単!大人気の言語で需要も高いヨ!
- 案件の多さでJavaの右に出るものはいない!Javaを学ぶべし。
- C言語からでしょ。コンピュータアーキテクトの基礎が学べて色んな言語の土台になる!
どれも一理あって、選択が難しいのですが、個人個人の状況に合わせて考えてみると、より確信持った選択ができるかもしれません。
今回は10以上のプログラミング言語を経験してきた筆者の視点から、セレクトマップと名付け、個人個人の状況に合わせたオススメのプログラミング言語を選定してみようと思います!
結論
①明確にやりたい言語がある方
絶対にその言語をやりましょう。
②やりたい分野のイメージがある方
- Web開発
JavaScript(+ HTML, CSS) - 機械学習関連(データ分析・AI開発)
Python - スマホアプリ開発
Kotlin(Android)/Swift(iOS) - IoT/組み込みアプリ開発
C言語 - ゲーム開発
C# on Unity
③その他の方
Pythonをやりましょう。
①明確にやりたい言語がある方
まず大前提を言っておきます。
未経験の方でも、何かしら理由があって明確にやりたい言語がある方は絶対にその言語をやるべきです。
例えアセンブリ言語であっても。
なぜなら、それがあなたのプログラミング学習のモチベーションであり、かつ一歩目を自分自身で決定し踏み出したということは、キャリア形成のうえで大きな財産になるからです。
要は、あなたの気持ち・決断より優先すべきことは何もありません。
こういう方は「未経験者は〇〇からやれ!」のような情報には惑わされないでください。
実際どの言語を選んだとしても確実に得られることはあり、継続できれば、行き着くゴールには大差はないはずです。
ですので①に該当する方は、今すぐブラウザバックしてプログラミング学習を始めちゃいましょう!
②やりたい分野のイメージがある方
Web開発
JavaScriptが圧倒的にオススメです。(HTMLとCSSも合わせて)
フロントエンドだとか、バックエンドだとか、Springだとか、TypeScriptだとか色々ありますが、全部後でいいです。
とにかく最初はJavaScriptです。
JavaScript + HTML + CSSで何かしらWebサイトを作ってみましょう。
JavaScriptは、本番のWeb開発でもほとんど必須な知識であり、学習難易度も高くなく、難しい開発環境構築もほとんど必要ない、まさに最初に学ぶべきプログラミング言語です。
これだけ揃ってるのもなかなかありませんよ。
機械学習関連(データ分析・AI開発)
Pythonしかありえません。
機械学習関連含め、ライブラリが非常に豊富なうえ、言語仕様が簡単なので、初学者にうってつけです。
しかもこの分野においては、本番開発でもベテランがバリバリ使っている言語であるため、学習した知識をそのまま活かせます。
ただし注意点があり、学習する題材としては最初からデータ分析・AI開発関連のものを選ぶのが良いです。
通常のシステム開発と開発スタイルやコーディング環境が異なる部分があるため、言語を学ぶのと同時に最初から本番同様の開発イメージをつけておくのが良いです。
スマホアプリ開発
Android開発がしたいのであればKotlin、iOS開発がしたいのであればSwiftがオススメです。
両方のアプリを開発したくても、最初はどちらかに絞ったほうがいいです。
特にiOS開発はMacがないとできないため、Windowsしかない方はAndroid開発で妥協するのもありです。
一度にiOSとAndroid双方のOSに対応したアプリ開発ができるクラスプラットフォームフレームワークというものもあります。(Flutter、React Native、Xamarin等)
ただしこれらは、言語自体が難しかったり、ネット上にまだまだ情報が少なかったり、開発・ビルド環境周りが難しかったりで、あまり初学者にオススメできません。
ただし挫折しないで根気強く学ぶ自信がある方は、これらの言語を選択してみるのも全然ありです。
最終的にはどれかを学ぶことになるでしょう。
IoT/組み込みアプリ開発
ぜひ、C言語を学んでいただきたいです。
決して簡単ではありませんが、それでもこの分野では圧倒的にC言語を学ぶメリットが多いです。
ここで、よく「初学者はC言語から学べ」という内容の誤りと真実を発表しましょう。
- C言語は今有名な数多くの言語のベースとなった言語である
⇒ 正しいです。 - だからC言語を学べば、他の言語は簡単に覚えられる
⇒ 誤りです。
C言語は最近の需要の高い言語群と圧倒的に異なる点があり(※主に第一級関数でないこと)、他の言語の文法が全く分からないというケースは全然あります。
1つの言語を覚えれば他の言語は簡単、というのは「書けること」が分かってるからです。
(例えば、「ループ処理」とか「配列」とか。)
引き出しが既にあるから、後はその言語での書き方を学ぶだけ、という流れになるんです。
しかしC言語は(※)に記載したような特徴上、その引き出しが圧倒的に少ないです。 - C言語を学ぶと、コンピュータアーキテクトを理解できる
⇒ 結構正しいです。
まあどちらかというとCを学ぶうえでコンピュータアーキテクトに少しだけ触れることになる、といったところでしょうか。
全く触れなくても通ってこれるとは思いますが、本気でCを学ぼうとすると切って離せないでしょう。
ということで、一般的に初学者がC言語を学ぶメリットはそんなに感じないですが、この分野では主にC言語が使われているというのと、この分野自体がコンピュータアーキテクトの知識がマストで必要となるため、C言語です。
コンピュータアーキテクトを知っておくことに越したことはないのですが、他の分野であれば、あまり詳しくなくても簡単なシステム開発ならできる時代だったりします。
ゲーム開発
Unityという開発プラットフォーム上でC#で開発するのがベストでしょう。
Unityが非常に分かりやすく、楽しく、ゲーム開発しやすいプラットフォームなうえ、情報も多いです。
また、C#も非常に良質な言語であり、学ぶ価値が大いにあります。
これをやっとけば間違いありません。
③その他の方
その他の方(特にやりたい分野があるわけではない方など)は、Pythonがベストだと思います。
初学者の方にとって重要なことはとにかく何か一つ、挫折せずに作り上げることだと思います。
③に該当する初学者の方は恐らくまだやりたいことを探していたり、キャリアを考えている最中の方だと思います。
そういう方に必要なのは、とにかくプログラミングで何か一つ作ってみることだと思います。
そして自分が何をしたいのか、今進もうとしている道が本当に良さそうなのか、合っているのかを感触として確かめてみることかなと思います。
そのためには、スピーディーにコーディングできて挫折しにくい言語であるPythonは、やはり最適な言語だと思います。
まとめ
今回はプログラミング初学者にオススメのプログラミング言語を私の主観で記載しました。
実際にはどの言語を選んだとしても、挫折せずにやり切れるのであれば大丈夫だと思います。
多少のメリット・デメリットはあれど、今後のプログラミング人生の大差にはならないはずです。
どうしても自分の判断で決めれきれない方は、本記事を一つの指標にしてみてください。
それでは皆さん、今日からプログラミング学習に励んでいきましょ~!!
コメント