2020年に最初に学ぶべきプログラミング言語はどれですか?ʇdıɹɔsɐʌɐɾ:ɹǝʍsuɐ

プログラムを学ぶためのほとんどの人の旅は、1回の深夜のGoogle検索から始まります。

通常は「Learn______」のようなものです

しかし、どの言語を検索するかをどのように決定するのでしょうか。

「彼らは常にシリコンバレーのJavaについて冗談を言っています。私はそれを学ぶべきだと思います。」

または:

「Haskell。今とても暑い。Haskell。」

または:

「あのゴーゴーファーはとてもかわいいです。」

そして、私たちの残りの部分があります。おそらく次のようなものを検索します。

「最初にどのプログラミング言語を学ぶべきですか?」

完全なインフォグラフィック処理を受けるほど一般的に尋ねられる質問はほとんどありません。しかし、これはそのうちの1つです。

最初のプログラミング言語を決定するのは楽しいプロセスです。「あなたはクエンティン・タランティーノのどのキャラクターですか?」のようなものです。性格クイズ。

しかし、子供の頃にPlay-Dohで遊んで楽しんでいたために、Rubyを学ぶために逃げる前に、私に思い出させてください。

最初のプログラミング言語にリモートで対応できるようになるには、何百時間もの練習が必要です。

したがって、次の要因を考慮する必要があります。

  • 言語の求人市場
  • 言語の長期的な見通し
  • 言語の習得がいかに簡単か
  • 学習中に構築できるプロジェクト(およびモチベーションを維持できるように友達と共有する)

毎年、新しいプログラミング言語がもたらされ、それらとともに新しい学術論文がもたらされます。そして新しいウェブコミック。

真剣に。先月からこの宝石をチェックしてください:

最初のプログラミング言語を選択することになると、オプションが不足することはありません。少し絞り込むために、過去12年間でプログラミングの学習に関連する最も一般的なGoogle検索を次に示します。

Javaには浮き沈みがありました。

Pythonは徐々に上昇し、最も人気のある選択肢になりました。

しかし、これらの下に隠れているのは、過去数年間でゆっくりと人気が高まっているリトルエンジンでした。そして、そのエンジンはJavaScriptです。

これらのプログラミング言語について話す前に、はっきりさせておきましょう。

  • 私は、ある言語が他のどの言語よりも客観的に優れていると主張しているのではありません。
  • 開発者は最終的に複数の言語を学ぶ必要があることに同意します
  • 私は、最初に彼らが1つの言語を上手に学ぶべきであると主張しています。そして—おそらく私の見出しの逆さまのテキストから推測できるように—その言語はJavaScriptでなければなりません。

プログラミングが現在学校でどのように教えられているかを探求することから始めましょう。

コンピュータサイエンス101

大学は伝統的にコンピュータサイエンスの傘下でプログラミングを教えてきましたが、それ自体は数学の延長、または電気工学の学位との結びつきと見なされることがよくあります。

もちろん、あなたが今まで聞いたことがあるかもしれませんが:

「コンピュータサイエンス教育は、ブラシと顔料を研究することで誰かを専門の画家にすることができる以上に、誰もが専門のプログラマーになることはできません。」—エリック・S・レイモンド

2016年の時点で、多くの大学はまだプログラミングをコンピューターサイエンスのように扱い、コンピューターサイエンスを数学のように扱っています。

その結果、多くの入門プログラミングコースは、Cのような低レベルの抽象化言語、またはMATLABのような数学に焦点を当てた言語に焦点を当てています。

そして、部門の議長は通常、コースに留まり、TIOBEインデックスのような年次プログラミング言語のリーダーボード、またはIEEEのこれを指しています。

これらのリーダーボードのほとんどは、10年前とほぼ同じように見えます。

しかし、変化は起こります。学界でも。

2014年、Pythonは、米国のトップコンピュータサイエンスプログラムで最も人気のある教授言語としてJavaを追い抜きました。

そして、さらに別の変化が起こります…最終的には…起こります。

なぜなら、従業員が実際に使用している言語を見ると、まったく異なる絵が描かれているからです。

すべての開発者の半数以上がJavaScriptを使用しています。フロントエンドのWeb開発に不可欠であり、バックエンドの開発との関連性が高まっています。そして、ゲーム開発やモノのインターネットなどの分野に急速に拡大しています。

求人情報では、Java以外のプログラミング言語よりもJavaScriptについて言及しています。

JavaScriptを中心にオープンソースコミュニティのカリキュラムを構築したのは偶然ではありません。過去2年間で、5,000人以上がFree CodeCampを使用して最初の開発者の仕事に就きました。

私はJavaScriptを教えているので、JavaScriptを支持していません。JavaScriptを教えるのは、JavaScriptが最初の開発者の仕事への最も確実な道だからです。

しかし、JavaScriptはあなたに適していますか?それはあなたの最初のプログラミング言語になる価値がありますか?先に述べたこれらの要因を調べてみましょう。

要因#1:雇用市場

純粋に知的好奇心からプログラミングを学んでいる場合は、この要素をスキップしてください。しかし、プログラミングを学ぶ大多数の人々のように、このスキルを使用して仕事を得たい場合、これは重要な考慮事項です。

先に述べたように、Javaは他のどのプログラミング言語よりも多くの求人情報で言及されています。JavaScriptはすぐ近くにあります。

しかし、JavaScriptについては次のとおりです。JavaScriptは20年前から存在していますが、Netflix、Walmart、PayPalなどの企業がアプリケーション全体を構築する本格的なツールになったのはごく最近のことです。

その結果、多くの企業がJavaScript開発者を採用していますが、求人市場にはそれほど多くはありません。

オープンなJavaポジションごとに2.7人のJava開発者が競い合っています。PHPとiOSの仕事をめぐる競争も同様に熾烈です。

しかし、開いているJavaScriptの位置ごとに、JavaScript開発者は0.6人しかいません。これは、JavaScriptスキルを持つ開発者にとって非常に売り手の市場です。

要因#2:長期的な見通し

平均的なJavaScriptプロジェクトは、平均的なJava、Python、またはRubyプロジェクトの2倍のプルリクエストを受け取ります。さらに、JavaScriptは他の一般的な言語よりも急速に成長しています。

JavaScriptのエコシステムは、Google、Microsoft、Facebook、Netflixなどの企業からの多額の投資とエンジニアリングの才能からも恩恵を受けています。

たとえば、TypeScript(JavaScriptの静的に型付けされたスーパーセット)には100を超えるオープンソースの寄稿者がおり、その多くはMicrosoftとGoogleの従業員がそれに取り組んでいます。

この種の企業間協力は、Javaでは見つけるのが困難です。サン・マイクロシステムズの買収を通じてJavaを効果的に所有しているOracleは、Javaを拡張しようとする企業を訴えることがよくあります。

要因#3:学ぶのが難しい

ほとんどのプログラマーは、高レベルのスクリプト言語を比較的簡単に習得できることに同意します。JavaScriptは、PythonやRubyとともに、このカテゴリに分類されます。

大学はまだJavaやC ++のような言語を第一言語として教えていますが、学ぶのはかなり難しいです。

要因4:それを使って構築できるプロジェクト

これがJavaScriptが本当に優れているところです。JavaScriptは、ブラウザーを備えた任意のデバイスで実行されます。基本的にJavaScriptを使用して何でも作成し、どこでも共有できます。

JavaScriptが広く普及しているため、StackOverflowの共同創設者であるJeffAtwoodは、今では有名な法則を考案しました。

「すべてのアプリケーションことができますJavaScriptで書かれたことは、なり最終的にJavaScriptで記述すること。」

そして、月を追うごとに、アトウッドの法則は強力になります。

Javaはかつてどこでも実行できると約束していました。Javaアプレットを覚えているかもしれません。オラクルは今年初めに彼らを公式に殺害した。

Pythonにもほぼ同じ問題があります。

「自分で作ったこのゲームを友達に渡すにはどうすればよいですか?さらに良いことに、これを携帯電話に置いて、学校の子供たちにインストールせずに見せることができる方法はありますか?ええと。」—Pythonを教育言語として引退させるJamesHague

対照的に、ここに私たちのオープンソースコミュニティのメンバーがCodePenのブラウザに組み込んだいくつかのアプリがあります。クリックして、ブラウザで次の情報を使用できます。

1つの言語を上手に学びましょう。次に、2番目のものを学びます。

言語から言語へとジャンプし続けると、遠くまで行くことはできません。

基本を超えて進むためには、あなたはあなたの第一言語をよく学ぶ必要があります。そうすれば、あなたの第二言語ははるかに簡単になります。

そこから、多くの言語を学ぶことで、分岐し、より総合的な開発者になることができます。

  • Cは、メモリ管理の観点からコンピュータが実際にどのように機能するかを学ぶための優れた方法であり、ハイパフォーマンスコンピューティングに役立ちます。
  • C ++はゲーム開発に最適です。
  • Pythonは科学と統計に最適です。
  • 大規模なテクノロジー企業で働きたいのであれば、Javaは重要です。

しかし、最初にJavaScriptを学びましょう。

OK、今度は不可能を試みます—コメントセクションからの反対意見を予想してみます。

反対意見#1:しかし、JavaScriptは遅いのではないですか?

JavaScriptは、ほとんどの実用的な目的で、高性能言語と同じくらい高速です。

JavaScript(Node.js)は、Python、Ruby、およびPHPよりも桁違いに高速です。

また、C ++、Java、Goなどの高性能言語とほぼ同じ速度です。

最近の最も包括的なクロスランゲージベンチマークの結果は次のとおりです。

反対意見#2:しかしJavaScriptは静的に型付けされていない

PythonやRubyと同様に、JavaScriptは動的に型指定されるため、便利です。しかし、あなたはトラブルに巻き込まれる可能性があります。ここで私exampleArrayは配列になるつもりです。値を設定してから、長さを確認します。つまり、含まれる要素の数を確認します。

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

しかし、誤って文字列に割り当ててしまいました。

exampleArray = “text” -> “text” exampleArray.length -> 4

この種のエラーは、動的に型付けされた言語で常に発生します。ほとんどの開発者は、それらを防ぐためにチェックを配置し、それに応じてテストを作成します。

どうしても最初のプログラミング言語で静的型付けが必要な場合でも、最初にJavaScriptを学ぶことをお勧めします。次に、TypeScriptをすばやく取得できます。

「Typescriptには学習曲線がありますが、JavaScriptをすでに知っている場合は、スムーズなものになります。」—TypeScriptのAlexEwerlöf

反対意見#3:でも私は本当にモバイルアプリを作りたい

私はまだJavaScriptを最初に学ぶことをお勧めします。

  1. JavaScriptは、AngularCordovaやReactNativeなど、ネイティブモバイルアプリを作成するためのいくつかのツールを備えています。
  2. モバイルアプリが実際に何か面白いことをするためには、おそらく適切なバックエンドが必要です。これは、Node.js + Express.jsなどの適切なWeb開発フレームワークで構築する必要があります。

また、モバイルアプリ開発の最高の日が遅れている可能性があることも指摘しておく価値があります。

手始めに、人々がモバイルアプリを使用するのと同じくらい、すべての開発者の仕事のほぼ半分はWeb開発です。これを、モバイルアプリ開発を伴う仕事のわずか8%と比較してください。

「そのためのアプリがある」という壮大なビジョンは実現していません。代わりに、ほとんどのスマートフォン所有者は新しいアプリのダウンロードを停止しています。

確かに—彼らはまだアプリを使用しています。主にFacebook、Googleマップ、およびその他の少数。そのため、モバイルアプリ開発者の需要の多くは、少数の大規模な雇用者に集中しています。

これらのモバイル開発の仕事の見通しを予測するのは難しいです。JavaScriptを使用すると、モバイルアプリの開発、保守、配布の多くの側面が簡単になります。そのため、FacebookやGoogleなどの企業は、JavaScriptを使用してこれらを構築するためのより優れたツールに多額の投資を行っています。

2016年の時点で、ほとんどすべての開発はWeb開発です。すべてが「ウェブ」であるその大きなプラットフォームに触れます。そして、あなたが家の周りで話すであろうデバイスの次の波、そしてあなたの子供を学校から迎えに行く車-それらはすべてウェブを使って一緒にパイプで送られるでしょう。

そしてそれはJavaScriptを意味します。

異論#4:JavaScriptは10日で書かれたおもちゃの言語ではありませんか?

JavaScriptには風変わりな歴史があります。

あなたは間違いなく人々がその費用で冗談を言うのを聞くでしょう。

よく人々はC ++も嫌いです。そしてJavaScriptのように、C ++はこの憎しみにもかかわらず成功し、今ではほとんどどこにでもあります。

したがって、エリート言語の代わりにJavaScriptを学ぶのに苦労している人がいたら、C ++を作成した人の有名な言葉を覚えておいてください。

「プログラミング言語には2種類しかありません。それらの人々は常に愚痴をこぼし、誰も使用しません。」—ビャーネ・ストロヴルプ

私はプログラミングとテクノロジーについてのみ書いています。Twitterでフォローしていただければ、時間を無駄にすることはありません。?