最初にどのプログラミング蚀語を孊ぶ必芁がありたすか ʇdıɹɔsɐʌɐɟɯǝʚɯПņıqÐœqvОʚɐdu

倚くの人は、倜遅くにGoogleを開くこずでプログラミング孊習の旅を始めたす。 通垞、圌らは「孊ぶ方法...」のようなものを探しおいたす。 しかし、そのような決定を求める人は、どのプログラミング蚀語を遞択するかをどのように決定するのでしょうか



倧手コンピュヌタヌ䌚瀟のサむトやブログを読んだ人は、次のように䞻匵しおいたす。「シリコンバレヌでは、Javaは蚀葉ではありたせん。 これが必芁だず思いたす。」 これは次のように起こりたす。「Haskell。 圌は人気のピヌクです。 次に䜕が起こるか考えるのは怖いです。 間違いなくハスケル。」 たずえそうであっおも「Goロゎのこのgopherはずおも甘いものです。 Goに぀いお知りたい。」



䞀郚の人は、プログラミングの方法を孊びたいずいう欲求に駆られお、「最初に孊ぶプログラミング蚀語は䜕ですか」を探しおいたす。



頻繁に尋ねられる質問があり、それらに答えるために、スキヌム党䜓が䜜成されたす。 たずえば、そのうちの1぀は、 このサむトのチヌムによっお準備された、最初のプログラミング蚀語の遞択専甚です。



クリック可胜







このスキヌムを芋るず、䟋えば、Rubyは子䟛の頃に粘土から圫るのが奜きな人に適しおいるこずがわかりたす。



最初のプログラミング蚀語の遞択は、「ク゚ンティン・タランティヌノの登堎人物は誰ですか」のような半真面目なアンケヌトのように、刺激的な経隓になる可胜性がありたす。



しかし、Rubyの研究に真っ向から取り組む前に、幌少期に粘土なしでは生きられなかったずいう理由だけで、最初のプログラミング蚀語が非垞に重芁であるずいう事実に泚目しおください。 あたりにも圌に䟝存しおいたす。



遞択した蚀語を少なくずも䞀般的に扱うには、数癟時間の緎習が必芁です。 したがっお、かわいいロゎず独創的なスキヌムはあなたを混乱させるべきではありたせん。



最初の蚀語を遞択するこずは、次の芁因を冷静に評䟡する䟡倀がありたす。





幎に数回、新しいプログラミング蚀語が登堎したす。 科孊雑誌にそれらに぀いおの蚘事が曞かれおおり、りェブ䞊で芋぀けられる挫画はそれらに捧げられおいたす。









最初のプログラミング蚀語の遞択に関しおは、さたざたな遞択肢に盎面する必芁がありたす。 怜玢を少し絞り蟌むために、プログラミングに関する孊習に関する過去12幎間のGoogle怜玢の分析を以䞋に瀺したす。







怜玢ク゚リの分析から、Javaに浮き沈みがあるこずがわかりたす。 たた、たずえば、Pythonの評䟡は埐々に成長しおおり、ほずんどの最も人気のあるプログラミング蚀語になりたした。 ここには1぀の蚀語がありたす。シンプルですが、驚くべき機胜を備えおおり、関心のあるグラフは幎々ゆっくりず成長しおいたすが、最䞋郚にありたす。 これはJavaScriptです。



これらのプログラミング蚀語に぀いお話す前に、䜕か明確にしたしょう。





私たちは、今日の人々がどのようにプログラミングを孊ぶかを芋お、第䞀蚀語の議論を始めたす。



情報技術ずプログラミングトレヌニングの基瀎









倧孊は通垞、情報技術の科目のフレヌムワヌクでプログラムするように教えられおいたす。これは、数孊コヌスぞの远加のように芋えるか、電気工孊などの特定の䞻芁な専門分野に結び぀いおいたす。



゚リック・レむモンドによる次の声明はご存じでしょう。「コンピュヌタヌ技術の分野での教育は、筆や絵の具を勉匷しおも偉倧な芞術家にはならないのず同じように、優秀なプログラマヌになるわけではありたせん。」



今日、以前ず同様に、ほずんどの教育機関はプログラミングず情報技術の間に等号を付けおおり、情報技術は数孊ず同䞀芖されおいたす。



その結果、倚くの入門プログラミングコヌスは、Cなどの蚀語、たたはMATLABなどの数孊パッケヌゞで䜿甚される蚀語のかなり䜎レベルの抜象化を䞭心に構築されおいたす。



そしお、プログラミングコヌスで䜕を教えるかを決定する人は、通垞、蚀語の評䟡を含むレポヌトを定期的に発行するあらゆる皮類の公匏゜ヌスに埓いたす。 そのようなレポヌトの䞭で、䟋えば、 TIOBE Index 。 そしお、これがIEEEリヌダヌボヌドです。









このような「リヌダヌボヌド」は、10幎前ずほが同じように芋えたす。 ただし、孊界であっおもすべおが倉化しおいたす。



そのため、2014幎、PythonはJavaをバむパスし、米囜の情報技術の䞻芁なコヌスで最も人気のあるプログラミング蚀語になりたした。









そしお、私は別の倉化が間違いなく起こるず確信しおいたすが、私が蚀えるこず-これはすでに起こっおいたす。



実際のプロゞェクトを実行するプログラマヌが䜿甚する蚀語を芋るず、たったく異なる状況がわかりたす。



以䞋は、2016幎にStack Overflowで実斜された調査の結果です。 49397人の開発者が参加したした。 それらの半分以䞊がJavaScriptを䜿甚しおいたす。







JavaScriptなしではWebむンタヌフェヌスの開発は䞍可胜であり、最近では、Node.jsのおかげで、サヌバヌコヌドでのJavaScriptの関連性が高たっおいたす。 この蚀語は、ゲヌム開発やモノのむンタヌネットなど、他の分野に急速に広がっおいたす。



プログラマヌの仕事の䞭で、Javaを考慮に入れない堎合、JavaScriptは他の蚀語よりも頻繁に蚀及されたす。 最倧のゞョブアグリゲヌタヌであるIndeed.comからのデヌタは次のずおりです。







freecodecamp.comで 、オヌプン゜ヌスJavaScriptプロゞェクトに携わる開発者のコ​​ミュニティを集めたこずは偶然ではありたせん。 過去2幎間で、5,000人以䞊がFree Code Campを䜿甚しおプログラマヌずしおの最初の仕事を芋぀けたした。



ずころで、私は圌にプログラミングの方法を教えるずいう理由だけでJavaScriptを提唱しおいたせん。 すべおが正反察です。 JavaScriptの知識はプログラマヌの最初の仕事ぞの正しい方法だからです。



しかし、JavaScriptはあなたに適しおいたすか 圌はあなたの最初のプログラミング蚀語になるべきですか 䞊蚘で話した蚀語遞択の芁因をさらに詳しく考えおみたしょう。



芁因1劎働垂堎



玔粋な奜奇心ず知的゚ンタヌテむメントぞの愛からプログラミングを孊んでいるのであれば、このセクションはスキップできたす。 しかし、他の倚くの人々のように、習埗した知識ずスキルの助けを借りお仕事を芋぀けるためにプログラミングを勉匷する堎合は、ここで説明する内容に泚意を払う必芁がありたす。



前にも蚀ったように、求人情報はほずんどの堎合Javaに蚀及しおいたす。 2番目はJavaScriptです。



ただし、JavaScriptの堎合、考慮すべき重芁な点が1぀ありたす。 この蚀語は20幎前から存圚しおいたしたが、比范的最近になっお、Netflix、Walmart、PayPalなどの巚人が本栌的なアプリケヌションを䜜成するための深刻なツヌルになりたした。



その結果、倚くの䌁業がJavaScript開発者を雇甚しおいたすが、開発者はそれほど倚くありたせん。



Indeed.comからのデヌタは、求職者に察する空垭率を瀺しおいたす。









だから私たちが芋るもの。 Java開発者には、2.7プログラマヌが1か所にいたす。 PHPの知識が必芁な求人分野やiOS開発環境でも、同様の状況が発生しおいたす。



JavaScriptでデヌタを芋るず、空垭ごずにプログラマが0.6人しかいないこずがわかりたす。 JavaScript開発者にずっお、これは間違いなく売り手の垂堎です。



芁因2長期的な芋通し



GitHubのJavaScriptプロゞェクトは、平均しお、Java、Python、たたはRubyプロゞェクトの2倍のプルリク゚ストを受け取りたす。 さらに、JavaScriptは他の䞀般的な蚀語よりも速く成長しおいたす。



関連するGitHub Octoverseデヌタは次のずおりです。







さらに、JavaScript゚コシステムは、Google、Microsoft、Facebook、Netflixなどの䌁業の人的資本で衚明された、金銭的および才胜のある゚ンゞニアの䞡方の深刻な投資から有益な圱響を受けたす。



たずえば、100人以䞊の開発者がオヌプン゜ヌスプログラミング蚀語TypeScript静的型付けを備えたJavaScriptの拡匵バヌゞョンに貢献したした。 圌らの倚くは、この仕事の報酬を受け取るマむクロ゜フトずグヌグルの埓業員です。



Java環境における䌁業間のこの圢匏のコラボレヌションは、芋぀けるのがより困難です。 たずえば、Sun Microsystemsを吞収しお実際にJavaを所有しおいるOracleは、 倚くの堎合 、この蚀語に取り組む䌁業を蚎えおいたす。



芁因3蚀語孊習の難しさ



XKCDのプログラミング蚀語の耇雑さの䌌顔絵です。







ほずんどのプログラマヌは、高レベルのスクリプト蚀語は比范的簡単に習埗できるこずに同意するでしょう。 JavaScriptは、PythonずRubyずずもにこのカテゎリに分類されたす。



たた、教育機関では、プログラミングの方法を習埗し始める蚀語はただJavaやC ++などですが、それらを理解するこずははるかに困難です。



芁因4埗られた知識を䜿甚しお䜜成できるプロゞェクト



これは、JavaScriptが誰にも負けないずころです。 ブラりザを備えたどのデバむスでも動䜜したす。 はい、少なくずもここであなたがそれを読んだずころ。 基本的に、JavaScriptを䜿甚するず、コンピュヌタヌや携垯電話に䌌たほがすべおのもので動䜜するずいう自信を持っお、ほがすべおのものを䜜成しお䞖界䞭に配垃できたす。



JavaScriptの普遍性は、Stack Overflowの共同蚭立者であるJeff Atwoodによる「JavaScriptで䜜成できるアプリケヌションは、いずれJavaScriptで䜜成される」ずいう有名な蚀葉を生み出したした。



時間の経過ずずもに、「アトりッドの法埋」ずも呌ばれるこの声明は、 関連性を倱いたせん 。



他の蚀語の䞭でも、わずかに異なる傟向を芳察できたす。 䟋えば、圌らはか぀おJavaが文字通りどこでも動䜜するこずを玄束しおいたした。 Javaアプレットを芚えおいたすか 今幎の初めに、Oracleは正匏にそれらを攟棄したした。



Pythonも同様の問題に苊しんでいたす。 James Hagがこれに぀いお、プログラミングを教える際に䜿甚される䞻芁蚀語ずしおPythonを攟棄すべき時であるず述べた蚘事で曞いたものがありたす。 生埒は次のように尋ねたす。「自分が曞いたこのゲヌムを友達にどうやっお枡すこずができたすか たたは、それはさらに良いでしょう、どうにかしお電話で蚘録しお孊校の党員に芋せるこずができたすが、圌らはそれをむンストヌルする必芁はないでしょうか」 教垫は、Pythonに぀いお蚀えば、うなり声を䞊げるこずしかできたせん。 䞀蚀で蚀えば、ここでは答えたせん。



JavaScriptに぀いお話す堎合、䞊蚘の質問に察する実際の回答がありたす。 これらは、Free Code Campコミュニティのメンバヌがブラりザヌを䜿甚しおCodePenで䜜成したアプリケヌションです。



1970幎代のスタむルで䜜成されたサむモンゲヌムです。









ゞョンコンりェむの数孊ゲヌム"ラむフ"の実装です。







りィキペディアの怜玢ペヌゞで 、スタむルはスタヌりォヌズです。







そしお、これは䌝統的なダンゞョンを䜿ったベヌグルゲヌムです。







第䞀蚀語䞘を登るか、もう少し深く掘り䞋げたすか



最初に1぀の蚀語を孊びたす。 次に、次ぞ進んでください。



本圓にどこでも止たらずに、ある蚀語から別の蚀語にゞャンプした堎合、 あなたは遠くに行けたせん 。 「Hello World」をさらに進めるには、母囜語を適切に孊習する必芁がありたす。 その埌、2番目以降の蚀語を扱うのがはるかに簡単になりたす。



最初の蚀語を十分に習埗したので、他の蚀語を孊習し、プログラマヌずしお開発するこずで知識を広げるこずができたす。 JavaScriptを十分に習埗した埌に考慮すべき蚀語に぀いお、いく぀かの蚀葉を玹介したす。





しかし、最初に、JavaScriptを孊ぶ䟡倀がありたす。



だから、今私は䞍可胜をやりたい。 䞀郚の読者の反察、JavaScriptに察する批刀、およびコメントに衚瀺される可胜性のある私のアむデアを想像し、この批刀に察応しようずしたす。



異議第1 JavaScript-遅い蚀語



JavaScriptは、最も実甚的な目的で、埓来は高性胜ず芋なされおいた蚀語ず同じくらい高速です。



JavaScriptNode.jsに぀いお話しおいるは、Python、Ruby、およびPHPよりも桁違いに高速です。 そのパフォヌマンスは、C ++、Java、Goに近いです。 以䞋は、さたざたなプログラミング蚀語の1぀の非垞に深刻なパフォヌマンステストの結果です。







異議第2 JavaScriptには静的型付けがありたせん



PythonやRubyず同様に、JavaScriptは動的型付け蚀語です。 そしお、これは䞀方では䟿利であり、他方では、開発者を゚ラヌの迷路に導く可胜性がありたす。 ここで、たずえば、ここでexampleArray倉数を配列にしたいです。 配列に倀を曞き蟌み、その長さ、぀たり配列に含たれる芁玠の数を確認したす。 次のようになりたす。



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





, , , JavaScript, , , length:



exampleArray = "text"
-> "text"
exampleArray.length
-> 4
      
      





, . . , .



, , , JavaScript. TypeScript. : « , TypeScript, , , JavaScript, ».



№3. , JavaScript



, JavaScript. , , , , , . :



  1. JavaScript . , Angular Cordova React Native.
  2. , - - , , , , Node.js + Express.js.


, , .



, , Stack Overflow, 49525 , -. .







, , . .



, . Facebook, Google Maps . . .



. , , JavaScript. , Facebook Google, JavaScript- .

2016- , -. , « ». , , , – .



: JavaScript.



№4: JavaScript , ?



, . , JavaScript, , . . , - .



, C++. , JavaScript, C++ . , , .



JavaScript – .



!



. - , JavaScript, « », , , C++: « : , , , ».



!



All Articles