初心者が学ぶべきプログラミング言語3選!東大卒エンジニアが解説【プログラミング入門】
はじめに
どうも、私立YouTube高専校長です。
本日は、何のプログラミング言語を勉強したらいいかという質問を良く頂くので、 初心者が学ぶべきプログラミング言語3選というテーマでお話しようと思います。
私は、これまでに、C言語、Python、Ruby、JavaScript等々、チュートリアルレベルも含めれば、10言語近く触れ、様々なソフトウェア開発に挑戦してきましたが、 その中でも初心者に向いているなと思うプログラミング言語を3つ厳選したので、それをご紹介したいと思います。
この動画では、すこし発展的な内容も取り扱っていて、長い動画となっていますが、 プログラミングを学び始めた、今だからこそ、このような話を聞いておくと、後々、そういうことだったのかと、腑に落ちる時が来ると思うので、是非最後までご覧ください。
この動画を、現在ご覧になっているという事は、あなたは過去に、プログラミングに挑戦した経験がある、あるいは、これから挑戦予定である、という方でしょう。
まあ、なんとなく、お察しのことと思いますが、世の中には、本当に無数のプログラミング言語があります。 そして、それぞれ独自の特徴があるため、強みや弱みがあります。
したがって、最初に学ぶべきプログラミング言語というのは、あなたの目的や、興味に依存します。
例えば、東京大学のコンピュータ科学専攻の学生にとっては、C言語やSchemeから学ぶのが適しているかもしれませんが、とりあえず、流行のデータサイエンスを入門したいだけの、一般的な学生にとっては、C言語やSchemeから勉強し始めるのは、絶対におすすめしません。
しかし、初心者にとっては、それぞれの言語の特徴すら、なかなか理解できないと思うので、自分がどの言語から勉強し始めたらいいかは、到底、判断不可能でしょう。
私が、初めて本格的にプログラミングを勉強したのは、高専の授業でタートルグラフィックスという、画面上の「亀」を動かすプログラミング言語でした。 結果的に、その後も勉強し続け、今に至るので、タートルグラフィックスというのは、15歳当時の、知能が十分に発達していなかった私にとっては、一つの正解だったのでしょう。
しかし、もし、あなたがプログラミングに興味があって、なにかを始めたとしても、 自分に合わないプログラミング言語から、勉強しはじめて、そこで挫折してしまうと、 苦手意識が生まれ、勉強のモチベーションが下がってしまうという人も多いんじゃないかと思います。
実際に、私の学生時代も、そのような人が、周りに沢山いましたが、 せっかく、モチベーションがあったのに、このようなしょうもない理由で、躓いてしまうのは、非常に勿体ないことだと思います。
かといって、高専や大学のカリキュラムが、必ずしも、あなたの目的や興味にあっているとは限りません。 カリキュラムは、平均的な学生に合わされていて、あなた個人の事情に最適化されている訳ではないからです。
しかし、今日の動画を見て、あなたに合ったプログラミング言語を選ぶことが出来れば、学習効率もモチベーションも飛躍的に向上します。 それによって、将来的に得られるメリットは、お金では代えられない非常に大きな物になるでしょう。
そこで本日は、初学者向けのプログラミング言語として、PythonとC言語とJavaScriptをご紹介して それぞれの言語の特徴と、強み・弱みとどんな人が、その言語でプログラミングに入門するべきなのか、 あるいは逆に、どんな人がするべきでないのか、というのを初心者にも分かりやすいように、優しく説明したいと思います。
今日ご紹介するのは、どの言語も、初心者向けの学習コンテンツが、充実しているので、モチベーションさえ上がるなら、どの言語から始めても良いと思います。
これまで様々な言語を右往左往してきた私も、プログラミングを勉強し始めた当時に、今日のような話を知っていれば、 もっと効率よく、学習できていたと思うので、是非今日の話を聞いて、これからの学習に役立ててください。
また、もし、今日ご紹介する言語の中に、既に学習済みの言語があったとしたら、他の言語を学習すると、相乗効果によって、さらに理解が深まり、圧倒的な成長につながります。
1つの言語さえ、きちんと理解すれば、今日ご紹介する3つの言語は、もちろん、レベルにもよりますが、すぐに習得できはずです。 自然言語を次々に学習するのとは異なり、2つ目以降のプログラミング言語に対する敷居はどんどん低くなっていきます。
また今回ご紹介する情報以外にも、こういった有益なコンピュータ関連の技術情報を発信しているので、 そういった動画を見逃したくない方は、今のうちにチャンネル登録しておいて貰えればと思います。
それでは、本編どうぞ。
Python
それでは、まずは、初心者によくおすすめされる、Pythonからご紹介したいと思います。
殆どのコンピュータ科学専攻の高専や大学では、C言語から始める事が多いです。 しかし、ホリエモンさんも、Progateの加藤さんの対談動画で、おっしゃっていましたが、「いきなりC言語は難しすぎる」と感じる方が多いため、 C言語から始めると挫折する人が少なくないです。 したがって、自分の学習能力に自信がない方にとって、Pythonは有力な選択肢です。
次は、より具体的に言語の特徴・強み・弱みを解説して、Pythonから入門すべき人とすべきでない人をご説明したいと思います。
特徴
まず、この言語の大きな特徴としては、Pythonは、インタープリタ言語と呼ばれ、実行時に、一行ずつ解釈されて実行されるという点です。 また、動的型付け言語といって、変数に、型というものを定義する必要がありません。
これらの2つの特徴は、この後に説明するPythonの強みと弱みに大きく影響します。 それでは、次に、Pythonの強みを説明して行きたいと思います。
強み
- 初心者でも簡単に動かせる
Pythonは、ハードウェアが高度に抽象化されているため、高レベルな命令が、簡単に使えます。 例として、文字列の操作、配列の操作などが、言語の仕様に組み込まれており、初心者でも簡単に扱うことができます。
実際に、文字列の操作を見てみましょう。Pythonはインタープリタ言語なので、ターミナルで、このように簡単に、プログラムを実行できます。 例えば、文字列の"hello"と"world"の結合をするとします。Pythonでは、単純に足し算のプラス記号で演算することで、文字列の結合ができます。 Pythonだけしか知らないと、これは当たり前に感じられるかもしれませんが、例えば、C言語だと標準ライブラリを用意して、書き込み用のバッファを必要な文字数分だけ用意してなど、ハードウェアを強く意識して、 プログラムを書く必要があります。
- データ解析、機械学習、Web開発など、様々なライブラリやフレームワークが充実している
Pythonは機械学習なら、TensorFlowやKeras、Web開発なら、DjangoやFastAPIのような、コミュニティが活発なフレームワークが沢山あります。 これらを使うと、既存のオープンソースのソフトウェア資産を利用することが出来るので、開発の生産性を劇的に上げる事ができます。
ただし、Web開発に関しては、後ほど紹介するJavaScriptに比べると、少し寂しいかなと個人的には、思います。
いずれにせよ、Pythonは幅広い分野のライブラリが揃っており、思いついた事は大抵オープンソースで見つかるというのが非常に大きな強みです。
- オブジェクト指向でプログラムが書きやすい
PythonはC言語とは異なり、オブジェクト指向が前提とされた言語仕様となっています。
そのために、クラスという機能が実装されていて、C言語に比べて、オブジェクト指向でプログラムが書きやすいです。 ただし、オブジェクト指向というのは少し発展的な内容で、プログラミング初心者が、最初から気にすることでもないので、初心者は、あまり気にしなくていいかなと思います。
- 型を定義する必要がないため、気軽にプログラムが書ける
Pythonでは変数に型を定義する必要がないので、記述量はC言語に比べて少ないです。 そのため、数十行程度の簡単なスクリプトを書く場合、Pythonは非常に便利です。
以上が、Pythonの強みです。続いて、Pythonの弱みをご紹介したいと思います。言語の仕様には、トレードオフがあり、弱みは、強みの裏返しになっています。
弱み
- 型の不一致によるバグを生みやすい
先ほど、Pythonでは変数に型を定義する必要がないので、記述量が少ないというお話を、強みとしてご説明しましたが、 実はそれは、諸刃の刃で、型の不一致によるバグが生まれやすくなります。
したがって、複数人で開発したり、規模が大きくなると、バグが生まれやすいです。 しかも、インタープリタ言語なので、実行時まで、エラーが検出出来ないので、本番で初めて、バグが発生してしまうような、極めてやっかいなバグの元になります。
- プログラムの動作をハードウェアレベルで制御するのは不可能
Pythonはハードウェアが高度に抽象化されているため、初心者でも簡単に動かせるというお話を、強みとしてご説明しましたが、 その代わり、プログラムの動作をハードウェアレベルで制御するのは不可能です。
プログラミング初心者の方は、ハードウェアと言っても、なかなかイメージしずらいと思いますが、 例えば、CPUが実際にどのような命令を実行するのか、あるいは変数のサイズや配置を、制御することができません。 そして、それは実は、実行速度にも影響します。
- 実行速度が遅い
Pythonの実行速度が遅いと言われるにはいくつか理由があります。
例えば、先ほどお話したように、Pythonはインタープリタ言語なので、実行時にプログラムを一行ずつ解釈しながら、実行するため、その分のオーバーヘッドがあります。
また、C言語と違い、プログラムの動作をハードウェアレベルで制御することができないので、ハードウェアレベルでの最適化もできません。
これらの理由から、Pythonでパフォーマンスを追及したソフトウェア開発をする事はできません。
ただし、Pythonから、C言語で書かれた実行ファイルを呼び出すことが出来るので、処理の重い計算部分はC言語で開発するという事が可能です。 実際に、Pythonのデータ解析や機械学習のライブラリも、計算部分はCやC++で実装されていることが多いです。
以上が、Pythonの弱みになります。 それでは、Pythonの強み・弱みを踏まえた上で、Pythonから入門するのに、向いている人と向いていない人についてご説明したいと思います。
入門すべき人
-
コンピュータの仕組み等は一旦置いといて、とりあえず、なにか動くものが作りたい人 とりあえず動くものは簡単に作れるので、モチベーションが維持しやすいです。
-
機械学習やWeb開発などをフレームワークに則って開発したい人 機械学習やWeb開発のような大規模なソフトウェアを自前で全て実装する事は、現実的ではありません。 既存のフレームワークを使うことで、高速に開発を進める事ができるので、そういった事をしたい人は、Pythonが向いているでしょう。
-
実行速度はあまり気にしない人 例えば、手元にあるエクセルファイルを処理したいならば、それが1msで終わろうと、1秒で終わろうと、あまり影響がないでしょう。 そういった実行速度にあまりこだわる必要がないソフトウェアを開発したい人は、Pythonが向いているでしょう。
続いて、逆にPythonから入門に向いていない人の紹介です。言語の強み・弱みと同じように、向いている人の裏返しになっています。
入門すべきでない人
- コンピュータの仕組みを理解したい人
Pythonでもロジックやアルゴリズムなど、純粋なソフトウェアの勉強はできると思いますが、ハードウェアが高度に抽象化されてしまっているので、コンピュータの仕組みを学習するには、Pythonだけでは不十分です。コンピュータの仕組みを基礎から学びたければ、C言語を頑張りましょう。
- 既存のフレームワークを逸脱するソフトウェアを開発したい人
フレームワークを使用すると、フレームワークの想定内でしか、開発が出来ないので、フレームワークを逸脱するソフトウェアを作る場合には、Pythonだけでは不十分な場合があります。
- 実行速度を追求するソフトウェアを開発したい人
例えば、機械学習や画像処理の新しい計算アルゴリズムを実装する際には、Pythonだけでは不十分な場合があります。 実際に、Pythonのデータ解析や機械学習のライブラリも、計算部分はCやC++で実装されていることが多いです。
- リアルタイム性を要求されるシステムを開発したい人
ロボット開発のような、リアルタイム性を要求されるシステム開発を志している方は、Pythonだけでは不十分です。こういったケースでは、C言語がよく使用されます。
以上が、Pythonの強み・弱み、そして、向いている人・向いていない人のご紹介になります。 今の話を聞いて、Pythonは向いてないかもなーと思った人向けに、他にも2つ、すごくおすすめのプログラミング言語があるので、続いて、それをご紹介したいと思います。
C
次にご紹介するのは、C言語です。高専や大学のコンピュータ科学専攻のカリキュラムでは、最初の入門言語として、よく選ばれています。
C言語は、プログラミングに苦手意識を持たせる原因ともなっているかもしれませんが、 もしあなたが、ソフトウェアを極めようと思っているのならば、どのタイミングで勉強するかは置いておいて、実は、令和の現代でも避けて通ることはできません。
この言語の特徴としては、C言語は、コンパイラ言語と呼ばれ、ソースコードを、機械語に変換してから、実行するという点です。 また、Pythonとは異なり、静的型付け言語といって、変数に、自分で型を定義する必要があります。
Pythonとのこれらの特徴の違いが、この後に説明する強みと弱みに大きく影響します。 それでは、次に、C言語の強みを説明して行きたいと思います。
強み
- 型を定義するため、バグを生みにくい
C言語では、変数に型を明示的に定義するため、型の不一致があると、機械語に変換する時に暗黙的な型変換という警告が出ます。 この警告によって、実行前に潜在的なバグを検出できるため、実行時の不具合を減らす事ができます。これは、Pythonと大きく異なる点です。
- ハードウェアがあまり抽象化されていないので、プログラムの動作をハードウェアレベルで制御可能
例えば、CPUが実行する命令を指定したければ、インラインアセンブラというものが使えますし、プログラムやデータの物理的なメモリ配置も、変数の型やリンカファイルで、変更可能です。 また、モーターやLEDなどの外部装置の制御も、メモリマップドI/Oと呼ばれるCPUの機能によって、可能です。
初心者の内は、ハードウェアまで気が回らないと思いますが、これらは、C言語の大きな強みです。
- 実行速度が速い
C言語は、コンパイラによって実行ファイルに変換され、CPUによって直接実行されるため、非常に高速です。 また、ハードウェアレベルでの制御が可能なので、当然ハードウェアレベルでの最適化も可能です。 なので、Pythonのデータ解析や機械学習のライブラリも、計算部分はCやC++で実装されていることが多いです。
以上が、C言語の強みのご紹介です。続いて、弱みをご紹介したいと思います。 Pythonと同じように、弱みは、強みの裏返しになっています。
弱み
- 初心者には難しい
C言語では、ハードウェアがあまり抽象化されていないので、ハードウェアを強く意識して、プログラムを記述する必要があります。 したがって、ある程度ハードウェアの動作を理解していないと、プログラムを読むのも書くのもデバッグするのも難しいです。
これが、初心者がC言語が理解不能となり、挫折する理由です。 このようなことから、C言語は高級言語ではなく、高級アセンブラと揶揄されることもあります。 特に、ポインタは、初心者が躓きがちな概念です。ポインタについては、別動画で企画中なので、是非チャンネル登録して、解説をお待ちください。
- データ解析、機械学習、Web開発をするには、手間がかかる
C言語では、Pythonのような高レベルな命令は使えません。したがって、データ解析、機械学習、Web開発のような高度なアプリケーションを開発するには、不可能ではありませんが、非常に手間がかかります。
したがって、データ解析、機械学習、Web開発に関するライブラリやフレームワークも、あまりないので、そのような用途には向いていません。
- オブジェクト指向でプログラムが書きにくい
C言語は、オブジェクト指向が一般的になる前から、ある古い言語です。したがって、オブジェクト指向の概念が言語に組み込まれていません。 構造体とポインタという機能を使いこなせば、オブジェクト指向で書くことが可能ではあり、実際に割とよく見かけますが、プログラミング初心者には、読むのも書くのも極めて難解になります。
ちなみに、C++は、C言語の拡張言語で、クラスが定義されています。 しかし、C++は仕様が非常に複雑で、魔境とも呼ばれています。したがって、初心者には、おすすめしません。
以上が、C言語の弱みになります。 それでは、C言語の強み・弱みを踏まえた上で、C言語から入門するのに、向いている人と向いていない人についてご説明したいと思います。
入門すべき人
- コンピュータの仕組みを理解したい人
C言語のプログラムを理解しようとすると、ハードウェアの事も理解する必要が出てきます。 なので、C言語が理解できれば、コンピュータの仕組みは自然と理解できるようになります。 ソフトウェア開発を極めようとするのならば、ハードウェアの理解は必須なので、そのような人にとってC言語は最適です。 これが、多くのコンピュータ科学専攻の高専や大学では、C言語から入門する理由です。
- 計算資源が乏しい環境でのプログラムを開発したい人
C言語では、コンピュータの計算資源を最大限活用する、ソフトウェアの開発が可能です。 したがって、マイコンのような、計算資源が豊富ではない環境でも十分なパフォーマンスを発揮する、ソフトウェアを開発することが可能です。 マイコンでWindowsやLinuxのように、Pythonのプログラムを動かすことは、ほとんど不可能だと思っておいてください。
- リアルタイム性が要求されるシステムを制御したい人
ロボットや車など、リアルタイム性が要求されるシステムでは、現状、ほとんどC言語一択です。 リアルタイム性が要求されるシステムを開発したい人は、C言語を勉強しましょう。
続いて、C言語に向いていない人の紹介です。
入門すべきでない人
- とりあえずそれなりに動くものを開発したい人
C言語は、原理的には、なんでもできます。しかし、代わりに自分がやらないといけない事が多いので、難しいです。
とりあえず動くものを、作れるレベルに到達するのには、それなりに時間がかかります。 なので、最初から難しいことを理解する自信がなくて、挫折しそうな人には向いていません。 まずは、Pythonのような初心者に優しい言語をやりましょう。
- 既存のフレームワークに乗っかったソフトウェアを高速で開発したい人
もし、あなたがプログラミングに興味を持った理由が明らかで、例えば、あなたが流行のデータ解析をしてみようと思っている場合は、 Pythonに豊富なライブラリが揃っているので、Pythonから入門しましょう。C言語から始めるのは、あまりに遠回りなので、おすすめしません。
以上が、C言語の強み・弱み、そして、向いている人・向いていない人のご紹介になります。
PythonとC言語は学生向け?
はい。これで、PythonとC言語の紹介が終わりました。 実は、ここまでご紹介した、PythonかC言語から入門するというのは、もしかしたら、学生にはいいけれど、社会人には向いていないんじゃないかなと個人的には、思います。
というのも、社会人になってから勉強する場合、学生のようにゆっくりと勉強する猶予はありません。 なるべく速くマネタイズするなり、仕事に使えないと、継続が困難だと思います。
そして、社会人になってから、未経験でエンジニアを目指すとなると、スマフォアプリ開発だとか、Web開発だとか、色々ありますが 一番とっつきやすいのが、Web開発なんじゃないかと思います。
そして、Web開発を志すとなると、これまでにご紹介したPythonとC言語よりもおすすめの入門言語があるので、次はそれをご紹介したいと思います。
JavaScript
次にご紹介するのは、JavaScriptです。
JavaScriptは、Pythonほど有名ではありませんが、主にブラウザで動作する言語で、ウェブページに動的な要素を追加するために使用されます。
例えば、Pythonには、DjangoというWeb開発フレームワークがあります。 しかし実は、サーバー側はPythonを使いますが、ウェブページに動的な要素を追加するためには、結局、JavaScriptも必要になります。
しかし、最近はサーバー側でも、JavaScriptを使う事が出来るようになってきて、Web開発をJavaScriptで完結させることもできるようになってきました。 実際に、私立YouTube高専の公式ホームページも、全て、JavaScriptで書かれています。
JavaScriptは、Pythonと同じように、インタープリタ言語で、動的型付け言語です。 しかし、MicrosoftがTypeScriptという、JavaScriptのラッピング言語を開発しており、TypeScriptを使えば、変数に型を定義することが出来るので、型の不一致による不具合を実行前に検出可能になります。
ちなみに、Javaという言語と名前は似ていますが、無関係の別物なので、ご注意ください。
それでは、次に、JavaScriptの強みを説明して行きたいと思います。
強み
- 初心者でも簡単に動かせる
JavaScriptは、Pythonと同じように、ハードウェアが高度に抽象化されているため、高レベルな命令が、簡単に使えます。 例として、文字列の操作、配列の操作などが、言語の仕様に組み込まれており、初心者でも簡単に扱うことができます。
実際に、文字列の操作を見てみましょう。JavaScriptは、ブラウザの開発者モードで、このように簡単に、プログラムを実行できます。 例えば、文字列の"hello"と"world"の結合をするとします。JavaScriptでは、単純に足し算のプラスで演算することで、文字列の結合ができます。 Pythonも同じような事ができますが、例えば、C言語だと標準ライブラリを用意して、書き込み用のバッファを必要な文字数分だけ用意してなど、ハードウェアを強く意識して、 プログラムを書く必要があります。
- ブラウザで動くほとんど唯一の言語
ブラウザ上で、マウスをクリックしたときの動作や、ボタンを押したときの動作は、JavaScriptで記述されます。 フロント開発では、必ず使うものです。
- Web開発において、フロント・バックエンド、両方で使える
最近はNode.jsという実行環境があり、ブラウザだけではなく、サーバーサイドでもJavaScriptを実行することが多くなってきました。 これにより、フロントとバックエンドの開発言語を統一することが出来て、ソフトウェアの再利用性が向上します。
学習者にとっては、一つの言語を勉強するだけで、フロントとバックエンドを両方勉強することが出来ます。
- TypeScriptを使うことで、型を定義すれば、バグを生みにくい
先ほど、Pythonの弱み、C言語の強みとして、変数の型の定義について言及しました。JavaScript自体はPythonと同じように、変数に型を定義しない言語なのですが、 TypeScriptというJavaScriptのラッパーを使うと、変数に型を定義することが出来ます。これにより、変数の型の不一致によるバグが生まれにくくなります。 ただし、TypeScriptはトランスパイルという処理によって、JavaScriptに変換してから、実行する必要があるので、トランスパイルに多少時間がかかります。
- Web関連のフレームワーク・ライブラリが充実
JavaScriptは、Web開発に特化した言語なので、Web関連のフレームワーク・ライブラリが充実しています。しかも、それはフロント・バックエンドの両方で使えるので、 生産性が上がります。
- パッケージ管理ソフト(npm)が優れている
Web開発では、ソフトウェアを手元の環境で動かすだけでなく、サーバーのような本番環境で、動かす必要があります。その時に、違うマシンに実行環境を再現しなくてはなりません。 そのためには、開発しているプロジェクトが、どのバージョンのどのライブラリを使っているか、さらにそのライブラリがどのライブラリに依存しているかをバージョンを含めて正確に管理する必要があります。 Node.jsに付属のnpmというパッケージ管理ソフトは、この管理が非常に優れています。
一人で開発しているときは、どうでもいいと思うかもしれませんが、チームで共同開発する場合や、サーバーにデプロイして実運用する場合は、このパッケージ管理ソフトを使うことで、非常に大きな恩恵を得られます。
- オブジェクト指向でプログラムが書きやすい
JavaScriptはPythonのように、オブジェクト指向が前提とされた言語仕様となっているため、C言語に比べて、オブジェクト指向でプログラムが書きやすいです。 しかし、Pythonと違って、オブジェクト指向と言っても、プロトタイプやクラスなど、色々な書き方があります。
とはいえ、オブジェクト指向というのは少し発展的な内容で、プログラミング初心者が、最初から気にすることでもないので、初心者は、あまり気にしなくていいかなと思います。
- 非同期処理が書きやすい
JavaScriptは、Web開発で、よく必要とされる、通信待ちや、操作待ちを、効率的に処理するための非同期処理が非常に書きやすいです。
これも少し発展的な内容で、プログラミング初心者が、最初から気にすることでもないので、初心者は、あまり気にしなくていいと思いますが、非常に大きな強みです。
以上が、JavaScriptの強みのご紹介です。続いて、弱みをご紹介したいと思います。他の言語と同じように、弱みは、強みの裏返しになっています。
弱み
- Web開発以外で、ほとんど使わない
JavaScriptは、Web開発に特化しているので、他の用途ではあまり使えません。 1つの言語で、Web開発以外も色々試したい場合は、Pythonのほうが優れているでしょう。
- プログラムの動作をハードウェアレベルで制御するのは不可能
JavaScriptもPythonと同じように、ハードウェアが高度に抽象化されているため、初心者でも簡単に動かせるというお話をしましたが、 その代わり、プログラムの動作をハードウェアレベルで制御するのは不可能です。PythonもJavaScriptもそもそも、そういった目的で使うことを想定していません。
以上が、JavaScriptの弱みになります。 それでは、JavaScriptの強み・弱みを踏まえた上で、JavaScriptから入門するのに、向いている人と向いていない人についてご説明したいと思います。
入門すべき人
- Web開発がしたい人
JavaScriptは非常にWeb開発に特化した言語です。 目的が定まっていて、Web開発に興味があるなら、JavaScriptから入門するのは、非常におすすめです。 フロントもバックエンドも両方、学習することができます。
- プログラミングを勉強して、最短でマネタイズしたい人
語弊のある言い方をすると、一番簡単で、ある程度市場もあるのが、Web開発です。 個人的な感想ですが、もっとも速く未経験から、実践の場に繰り出せるのではないかと思います。 社会人で、ゆっくりと勉強する猶予がない方に非常におすすめです。
続いて、逆にJavaScriptから入門に向いていない人の紹介です。
入門すべきでない人
- コンピュータの仕組みを理解したい人
JavaScriptでもロジックやアルゴリズムなど、純粋なソフトウェアの勉強はできると思いますが、ハードウェアが高度に抽象化されてしまっているので、 コンピュータの仕組みを学習するには、JavaScriptだけでは不十分です。コンピュータの仕組みを基礎から学びたければ、C言語を頑張りましょう。
- Web開発以外がしたい人
画像処理、データ解析、機械学習等、Web開発以外の目的がある人は、Pythonのほうが、ライブラリやフレームワークが充実しているので、Pythonのほうがいいかなと思います。
はい。以上が、JavaScriptの強み・弱み、そして、向いている人・向いていない人のご紹介になります。
Python、C言語、JavaScriptのそれぞれの紹介が終わったので、最後にまとめを行って、終わりにしたいと思います。
まとめ
本日は、プログラミング初心者向けに、初心者が学ぶべきプログラミング言語3選というテーマでお話しました。
今回は、PythonとC言語とJavaScriptを紹介しましたが、まぁ、正直言って最初の言語は、モチベーションが維持できれば、なんでもよいです。 どの言語でも、きちんと理解して学べば、それなりの知識が得られます。
特に初心者のうちは、なんのプログラミング言語を選択するかに囚われがちですが、 何の言語を知っているかよりも重要なのは、そのプログラミング言語の仕組み・理念を理解していることです。 もっと言うと、コンピュータの仕組みを理解していることです。
どの言語も、根本的な原理は変わりません。しょせん、コンピュータ上で動く、一アプリケーションです。 コンピュータの仕組みさえ理解していれば、これまでに勉強したことがない、新しい言語が必要になっても、すぐにキャッチアップできます。
そして、実は、コンピュータの仕組みを勉強するために最も適しているのは、C言語です。
これが、いまだにコンピュータ科学専攻の高専や大学では、C言語がカリキュラムに含まれている理由です。 しかし、C言語は、プログラミングを学び始めたばかりのころは、なかなか理解できるものではありません。 誰だってそうだと思います。私もかつてはそうでした。
しかし、安心してください。私のチャンネルでは、C言語やコンピュータの仕組みを理解するために必要な、知識を原理から分かりやすく解説しています。 この動画を見ているあなたは、C言語やコンピュータの仕組みを理解できるようになるかと、不安になる必要はまったくありません。
なぜかというと、こんなプログラミング言語を解説しているだけの動画を、30分も聞ける、あなたはポテンシャルの塊だからです。 自信を持って好奇心のままに勉強してください。自信を無くして、投げ出してしまう人が殆どです。 5年後には、天地の差が開いています。
もし、まだどの言語から入門するか、お悩みであれば、是非コメント欄で相談してください。
自分もまだまだ知らないことはあるので、一緒に勉強していきましょう。 私が高専・東大・スタートアップ・日系大手メーカー・外資ハイテク企業と、、、人生の大半をコンピュータに投下して、学んできた全てをこのチャンネルにぶつけるので、私の動画を見ることによって、他では得られないコンピュータの原理的な考え方が身に付きます。
絶対にできます!一緒に頑張りましょう!
本日の動画の内容は以上になります。ここまでご視聴ありがとうございました。