こんにちは。TATです。
今日のテーマは「プログラミングはどの言語を勉強するべきか」です。
多くの方が「これからプログラミングを勉強しよう・したい」と思っていると思いますが、それと同時に「どの言語を学べばいいのかわからない」と悩んでいる方も多いのではないでしょうか。
僕の元にも相談がきます。
僕の場合はPythonを独学したわけですが、これは誰にでも当てはまるわけではありません。
結論から言ってしまうと、目的によって決まります。
どのプログラミング言語を学ぶべきかわからない人は、そもそも目的がしっかりしていなかったりします。
目的をしっかりと持っていると、自然にどの言語を学ぶべきかが決まるからです。
ここでは、学ぶべきプログラミング言語を選択する方法や考え方について解説していきます。
この記事を読んでいただくと、もう一度自分自身で考え直して、学ぶべきプログラミング言語を選択することができるはずです。
【目的で決まる】結局のところ、プログラミングはどの言語を勉強するべきか?
1. 結論、目的で決まります
いきなり結論から入ります。
どのプログラミング言語を学ぶべきかは、目的によって決まります。
なぜプログラミングを勉強するかを考える
どのプログラミング言語を学べばいいのか悩んでいる方が、まず最初にやるべきことは「なぜプログラミングを勉強するのか」を今一度考えてみることです。
これにはいろいろな理由が考えられます。
10人いれば10通りの理由があると思います。
理由がそれぞれ違っていて問題ありません。
例えば、パッと思いつくのはこんな感じでしょうか。
- スキルを手につけて転職したい
- エンジニアになりたい
- アプリを作ってみたい
- WEBサイトを作りたい
あくまで例なので、ご自身で思いつく理由や勉強したいと思ったきっかけを考えてみてください。
ゴール・目的を設定すべし
ここで思いついた理由から、具体的な目的やゴールを考えます。
先ほどの例で、「アプリを作りたい」とか「エンジニアになりたい」とかなら、どんなアプリを作りたいか、どのようなエンジニアになりたいのかを知る必要があります。
「スキルをつけて転職したい」と言った理由の場合は、本当にプログラミングで良いのかを考え直してもいいかもしれません。
現代はフリーランスで活躍してるクリエーターやエンジニアも多いので、プログラミング以外のスキルでも全然余裕です。
例えば、動画編集とかもいいと思います。
例:プログラミングを習得してアプリを作りたい
人それぞれ異なる考えがあるので、結局は自分で考えて目的を設定しないといけないのですが、ここでは例として、プログラミングを習得してアプリになりたいとします。
エンジニアといってもたくさんの種類があります。
ウェブサイトを作るウェブエンジニアもいれば、アプリを作りたいというアプリエンジニアもいます。
あるいはインフラを設計・メンテナンスをするインフラエンジニアもいます。
それぞれのエンジニアによって必要になってくるプログラミング言語は変わってきます。
ここまで深掘りして考えることがポイントです。
2. プログラミング言語によって得意不得意がある
現在、世の中にはたくさんのプログラミング言語があります。
それぞれの言語には得意不得意があります。
例えばですが、アプリを作りたいと言ったらそれが得意な言語があります。
インフラを作るなら、それが得意な言語があります。
目的によってそれが得意な言語もあれば、反対に不得意な言語もあります。
人気の言語を見てみる
それでは、実際にどのような言語が巷では人気なのかを見ていきましょう。
これで世の中のトレンドがわかります。
日経 xTECHの記事で紹介されるグラフを参考にさせていただきます。
こちらが2020年の人気のプログラミング言語です。
日経 xTECH参照
特に注目すべきはPythonがここ最近で躍進していることですね。
AI関連に強いPythonの人気がとても高まっていることがよくわかります。
僕自身も、社会人になってからPythonを独学しましたが、当時のランキングでは8位とかだったと記憶しています。(2016年の秋らへん)
各言語の特徴を確認する
それでは各言語の特徴を見ていきます。
上記のランキングのトップ3くらいを見ていこうと思います。
各言語の特徴については、Wikipedia先生を参考にします。
C/C++
C++(シープラスプラス)は、汎用プログラミング言語のひとつである。日本語話者の間では「シープラ」又は「シープラプラ」と通称される。派生元であるC言語の機能や特徴を継承しつつ、表現力と効率性の向上のために、手続き型プログラミング・データ抽象・オブジェクト指向プログラミング・ジェネリックプログラミングといった複数のプログラミングパラダイムが組み合わされている[2]。C言語のようにハードウェアを直接扱うような下位層向けの低水準言語としても、複雑なアプリケーションソフトウェアを開発するための上位層向け高水準言語としても使用可能である。アセンブリ言語以外の低水準言語を必要としないこと、使わない機能に時間的・空間的コストを必要としないことが、言語設計の重要な原則となっている[3][4]。Wikipedia「C++」より
C言語とC++はプログラミング言語としてはかなり古株で、特にハードウェアとかゲームの開発などに使われます。
とにかく高速で動作することと、必要なマシーンスペックが低いので、ハードウェアとか3Dのゲームなどに使われる感じです。
Pythonとかで開発している場合でも、ちょっとスピードが出ない部分をC++とかで書き換えるだけでスピードが平気で100倍とかになったりします。
それほど高速に動作します。
パソコンの性能向上によって、高級言語と呼ばれるプログラミング言語が人気となっていますが、CやC++も根強い人気があります。
ちなみに、勉強するならCとかC++が圧倒的に大変ですw
よほどの理由がない限りは、これらから学習するのはとても辛い道になりますw
Python
Python(パイソン)はインタープリタ型の高水準汎用プログラミング言語である。グイド・ヴァン・ロッサムにより創り出され、1991年に最初にリリースされたPythonの設計哲学は、その顕著なホワイトスペースの使用によってコードの可読性が重視されている。その言語構成とオブジェクト指向のアプローチは、プログラマが小規模なプロジェクトから大規模なプロジェクトまで、明確で論理的なコードを書くのを支援することを目的としている。Wikipedia「Python」より
Pythonは1991年に生まれた比較的に新しい言語です。(僕と同い年ですw)
特にAI関連に強くて、昨今のAIブームでは欠かせない言語となっています。
AIでできることについてはこちらの記事でも解説しているので、是非ともご覧いただければと思います。
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】
さらにデータ分析にも有用なライブラリがたくさんあるので、データサイエンス領域でもとても人気のある言語です。
元々は、実行速度が遅いためそこまで浸透しませんでしたが、昨今のパソコンの処理能力の向上からPythonのような高級言語が人気となっています。
Cなどに比べると格段に学習しやすいので、プログラミングのこれから始める方にもオススメの言語です。
【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】
JavaScript
JavaScript(ジャバスクリプト)とは、プログラミング言語のひとつである。JavaScriptはプロトタイプベースのオブジェクト指向スクリプト言語であるが、クラスなどのクラスベースに見られる機能も取り込んでいる。
利用される場面はWebサイト・Webアプリ・バックエンド・デスクトップアプリ・モバイルアプリなど、ブラウザからサーバー、デスクトップからスマートフォンまで多岐にわたっている。
Javaと似た名称を持つが、異なるプログラミング言語である(#歴史を参照)。Wikipedia「JavaScript」より
3位のJavaScriptは、主にWebアプリで頻繁に利用される言語になります。
サイトを開発したり、Webアプリを開発する際にはJavaScriptが人気です。
Webサイトに動的な動きをつける際にはJavaScriptが使われることが多いです。
プログラミングは言語によってできることが全然違う
これら3つの言語を見ただけでも、それぞれが得意とする部分は大きく異なることがわかると思います。
こういった特徴を理解した上で、勉強するべきプログラミング言語を選択する必要があります。
3. 目的が定まると、学ぶべき言語は自然と決まる
結果として、学ぶべきプログラミング言語は目的によって自然と決まります。
AIに関することをしたいのであれば、Pythonが最適ですし、Webサイトを作りたいのであれば、JavaScriptなどが候補になってきます。
よって、「どのプログラミングを学べばいいのかわからない」と思っている場合には、「プログラミングを学んで何をしたいのか」が明確になっていないと思われます。
今一度ここを考え直すべきです。
前述のように、なぜプログラミングを学びたいのかを考えてみましょう。
ここがはっきりしていたら、それが実現できるプログラミング言語を選択すればいいだけなので、自然と学ぶべきものが見えてきます。
極端な話、「とにかく稼ぎたい」という方は、言語別の年収を参考にして決めてもいいかもしれません。
特に、これから伸びていきそうな言語に目を付けると将来的には良いお給料を得られるかもしれません。
何れにしても、プログラミングを学ぶ理由は人それぞれなので、「この言語を学ぶべき」という絶対的な答えはありません。
目的に応じて適切な言語を選ぶべきです。
4. 僕がPythonの独学を選択した理由
お次に、参考がてら僕がPythonを独学した理由について紹介しておきます。
なぜPythonを選んだのかということですね。
目的は株式投資に関する情報を収集すること
もともと、僕がプログラミングを学びたいと思ったきっかけは、「株式投資に関する情報を自動で集めたい」というものでした。
社会人になってから株式投資に興味を持って、いろいろな本を読んだり自分なりにお勉強をしていたのですが、「そもそも今やってる情報収集って自動化できるんじゃね?」と思ったのがきっかけです。
株探やYahooファイナンスを毎日チェックする中で、こういったサイトの確認や情報の収集はプログラミングでできちゃうんじゃねーのかと思ったわけです。
収集したデータを分析したい
さらに情報の収集ができたら、それらのデータを活用して分析したり可視化したりしたいなと思っていました。
こうした目的があると、学ぶべきプログラミング言語に必要な条件が出てきます。
- 情報収集に長けている→スクレイピングできるかどうか
- データ分析や可視化→該当するライブラリがあるかどうか
この条件で色々なプログラミング言語を探した結果、PythonやRが見つかりました。
Pythonに決定!
この2択となったら、あとはどちらの言語の方が人気があるか、将来性があるかと考慮しました。
結果、AIブームで需要が爆発していたPythonを選ぶ結果となりました。
このような感じで、目的が決まればそれが可能であるプログラミング言語を列挙して、その中からメリットやデメリットを比較して言語を選べばいいわけです。
どのプログラミング言語を学ぶべきか迷っている場合には、この目的意識が弱い可能性が高いです。
そして、目的意識がしっかりあると、学習のモチベーションも維持しやすいので挫折しにくくなります。
【挫折しないために!】プログラミングを学習するためには目的意識が重要!途中で挫折する人の特徴とは?
5. もう一度目的を考えてみよう!
とりあえず、どのプログラミング言語を学べばいいのかわからない時には、プログラミングを学ぶ目的についてもう一度考え直してみましょう。
目的がはっきりすれば、自然と学ぶべき言語は決まってきます。
言語が決まったらあとは学習するのみです。
ここで、実際に勉強するかどうか躊躇する方がいますが、迷ったらとりあえず勉強してみることをオススメします。
【迷っている方へ!】プログラミングに興味を持ったらとりあえずやってみよう!
最近はたくさんのプログラミング学習ツールがあるので、多くの選択肢があります。
それこそ、書籍で独学、Udemyなどの動画学習サービス、プログラミングスクールなどの選択肢があります。
特に前者2つはコストもさほどかからないので、もし挫折してもノーダメージです。
プログラミング学習は独学とプログラミングスクールどちらにすべきか?【結論、全部試すべし!】
僕の場合はPythonをUdemyを独学しました
僕の場合は、Pythonを独学したわけですが、学習方法としてはUdemyを選びました。
Udemyは動画学習サービスを提供しているプラットフォームで、格安で質の高い動画学習コンテンツを買うことができます。
頻繁にセールも行なっているので、そこでまとめて買うのがオススメです。
定価で買ったらダメです。
プログラミングの独学にUdemyをおすすめする理由!【僕はPythonを独学しました】
僕の場合はUdemyがフィットしましたが、これが全員に当てはまるとは限りません。
書籍で勉強する方がいい方もいれば、プログラミングスクールの方が合う方もいると思います。
まずは、色々な方法を試してみて、自分にあった学習方法を見つけましょう。
これが見つかれば半分買ったようなもんですw
プログラミング学習は独学とプログラミングスクールどちらにすべきか?【結論、全部試すべし!】
まとめ
いかがでしたでしょうか。
今回は、「どのプログラミング言語を学べばいいのかわからない」という方に向けて、僕なりの考えをまとめてみました。
結論は、「目的が決まれば学ぶべきプログラミング言語も自然と決まる」というものです。
プログラミングを学んで何をしたいのか、その目的を今一度考えてみましょう。
これがはっきりすると、やるべきことがクリアになってきます。
そして、学ぶべき言語が決まったら、迷わずにトライしてみることをオススメします!
僕自身もPythonを独学して人生が大きく変わりました。
今ではあらゆる情報を自動収集して、「投資でニート生活」というサイトまで作ってしまいましたw
Pythonのおかげで転職にも成功して年収も大幅に上昇しました。
【副業は神です】2度の転職において副業が内定の決め手になったお話。
やってみないことには何が起こるかわからないので、ぜひともトライしてみてください!
ここまで読んでくださってありがとうございました!