Welche Programmiersprache solltest du zuerst lernen? ʇdıɹɔsɹɔ: ɹǝʍsuɐ

Die Reise der meisten Menschen zum Erlernen des Programmierens beginnt mit einer einzigen nächtlichen Google-Suche.

Normalerweise ist es so etwas wie "Learn ______".

Aber wie entscheiden sie, nach welcher Sprache sie suchen?

„Sie scherzen immer über Java im Silicon Valley. Das sollte ich wohl lernen. “

Oder:

„Haskell. So heiß jetzt. Haskell. "

Oder:

"Das Go Gopher ist einfach so verdammt süß."

Und dann ist da noch der Rest von uns. Wir werden wahrscheinlich nach Folgendem suchen:

"Welche Programmiersprache soll ich zuerst lernen?"

Nur wenige Fragen werden so häufig gestellt, dass sie die vollständige Infografik-Behandlung erhalten. Aber das ist einer von ihnen:

Bildnachweis

Die Entscheidung für Ihre erste Programmiersprache kann ein unterhaltsamer Prozess sein - ähnlich wie bei einem der Persönlichkeitstests „Welcher Quentin Tarantino-Charakter bist du?“.

Aber bevor du wegläufst, um Ruby zu lernen, weil du es als Kind genossen hast, mit Play-Doh zu spielen, möchte ich dich daran erinnern, dass hier ziemlich viel auf dem Spiel steht.

Sie werden Hunderte von Übungsstunden benötigen, um Ihre erste Programmiersprache auch aus der Ferne zu beherrschen.

Sie sollten also die folgenden Faktoren berücksichtigen:

  • der Arbeitsmarkt für die Sprache
  • die langfristigen Aussichten für die Sprache
  • wie leicht die Sprache zu lernen ist
  • Welche Projekte können Sie während des Lernens aufbauen (und mit Freunden teilen, um motiviert zu bleiben)

Jedes Jahr kommen neue Programmiersprachen und neue wissenschaftliche Arbeiten hinzu. Und neue Webcomics.

Ernst. Schauen Sie sich dieses Juwel aus dem letzten Monat an:

Bei der Auswahl einer ersten Programmiersprache mangelt es nicht an Optionen. Um es ein wenig einzugrenzen, hier sind die häufigsten Google-Suchanfragen zum Thema Programmieren in den letzten 12 Jahren:

Java hat seine Höhen und Tiefen gehabt.

Python hat sich allmählich zur beliebtesten Wahl entwickelt.

Aber unter diesen verbirgt sich der Little Engine That Could, der in den letzten Jahren immer beliebter wurde. Und diese Engine ist JavaScript.

Bevor ich über diese Programmiersprachen spreche, möchte ich Folgendes erläutern:

  • Ich behaupte nicht, dass eine Sprache objektiv besser ist als eine andere
  • Ich bin damit einverstanden, dass Entwickler irgendwann mehr als eine Sprache lernen sollten
  • Ich bin der Meinung, dass sie zuerst eine Sprache gut lernen sollten. Und - wie Sie wahrscheinlich anhand des verkehrten Texts in meiner Überschrift erraten können - sollte diese Sprache JavaScript sein.

Beginnen wir damit, wie das Programmieren derzeit in der Schule gelehrt wird.

Informatik 101

Die Universitäten haben traditionell das Programmieren unter dem Dach der Informatik unterrichtet, die selbst oft als Erweiterung der Mathematik oder als Verbindung zu einem Abschluss in Elektrotechnik angesehen wird.

Natürlich, wie Sie vielleicht schon gehört haben:

„Die Informatikausbildung kann niemanden mehr zu einem erfahrenen Programmierer machen, als das Studium von Pinseln und Pigmenten jemanden zu einem erfahrenen Maler machen kann.“ - Eric S. Raymond

Ab 2016 behandeln viele Universitäten das Programmieren immer noch wie Informatik und Informatik wie Mathematik.

Infolgedessen konzentrieren sich viele Einführungskurse in die Programmierung auf einfache Abstraktionssprachen wie C oder mathematisch ausgerichtete Sprachen wie MATLAB.

Und Abteilungsleiter bleiben im Allgemeinen auf Kurs und verweisen auf jährliche Programmiersprachen-Bestenlisten wie den TIOBE-Index oder den folgenden vom IEEE:

Die meisten dieser Bestenlisten sehen fast genauso aus wie vor 10 Jahren.

Aber es kommt zu Veränderungen. Auch in der Wissenschaft.

Im Jahr 2014 hat Python Java als beliebteste Unterrichtssprache in den US-amerikanischen Informatikprogrammen abgelöst.

Und noch eine Änderung muss… irgendwann… geschehen.

Denn wenn man sich die tatsächlich von der Belegschaft verwendeten Sprachen ansieht, ergibt sich ein ganz anderes Bild:

JavaScript ist bei weitem die beliebteste Sprache, die von 49.397 Entwicklern verwendet wird, die auf die Umfrage von Stack Overflow von 2016 geantwortet haben.

Mehr als die Hälfte aller Entwickler verwendet JavaScript. Dies ist für die Front-End-Webentwicklung von entscheidender Bedeutung und wird für die Back-End-Entwicklung immer relevanter. Und es expandiert rasant in Bereiche wie Spieleentwicklung und das Internet der Dinge.

Stellenausschreibungen erwähnen außerdem JavaScript mehr als jede andere Programmiersprache als Java:

Daten von Indeed.com, dem weltweit größten Aggregator für Stellenausschreibungen

Es ist kein Zufall, dass wir den Lehrplan unserer Open-Source-Community auf JavaScript aufbauen. In den letzten zwei Jahren haben mehr als 5.000 Menschen Free Code Camp genutzt, um ihren ersten Job als Entwickler zu bekommen.

Ich befürworte kein JavaScript, weil ich es unterrichte. Ich unterrichte JavaScript, weil dies der sicherste Weg zu einem ersten Entwicklerjob ist.

Aber ist JavaScript das richtige für Sie? Lohnt es sich, Ihre erste Programmiersprache zu sein? Untersuchen wir die Faktoren, die ich bereits erwähnt habe.

Faktor 1: Der Arbeitsmarkt

Wenn Sie lernen, nur aus intellektueller Neugier zu programmieren, können Sie diesen Faktor überspringen. Aber wenn Sie - wie die große Mehrheit der Menschen, die das Programmieren lernen - diese Fähigkeit nutzen möchten, um eine Arbeit zu finden, ist dies ein wichtiger Gesichtspunkt.

Wie ich bereits erwähnt habe, wird Java in mehr Stellenanzeigen erwähnt als jede andere Programmiersprache. JavaScript ist eine knappe Sekunde.

Aber hier ist das Problem mit JavaScript: Obwohl es seit 20 Jahren besteht, wurde es erst vor kurzem zu einem ernstzunehmenden Tool, mit dem Unternehmen wie Netflix, Walmart und PayPal ganze Anwendungen erstellen.

Infolgedessen stellen viele Unternehmen JavaScript-Entwickler ein, aber es gibt nicht so viele auf dem Arbeitsmarkt.

Daten von Indeed.com

Es gibt 2.7 Java-Entwickler, die um jede offene Java-Position kämpfen. Der Wettbewerb um PHP- und iOS-Jobs ist ähnlich hart.

Für jede offene JavaScript-Position gibt es jedoch nur 0,6 JavaScript-Entwickler. Es handelt sich in hohem Maße um einen Verkäufermarkt für Entwickler mit JavaScript-Kenntnissen.

Faktor 2: Die langfristigen Aussichten

Das durchschnittliche JavaScript-Projekt erhält doppelt so viele Pull-Anforderungen wie das durchschnittliche Java-, Python- oder Ruby-Projekt. Darüber hinaus wächst JavaScript schneller als jede andere populäre Sprache.

Quelle: The GitHub’s 2016 State of the Octoverse

Das JavaScript-Ökosystem profitiert auch von einer hohen Investition von Geldern und Ingenieurtalenten von Unternehmen wie Google, Microsoft, Facebook und Netflix.

Zum Beispiel hat TypeScript (eine statisch typisierte Obermenge von JavaScript) mehr als 100 Open Source-Mitarbeiter, von denen viele Microsoft- und Google-Mitarbeiter dafür bezahlt werden, daran zu arbeiten.

Diese Art der unternehmensübergreifenden Zusammenarbeit ist mit Java schwerer zu finden. Oracle, dem Java durch die Übernahme von Sun Microsystems effektiv gehört, verklagt häufig Unternehmen, die versuchen, darauf zu expandieren.

Faktor 3: Schwierigkeit zu lernen

Dies ist eine Parodie auf einen XKCD-Comic.

Die meisten Programmierer sind sich einig, dass Skriptsprachen auf hohem Niveau relativ einfach zu erlernen sind. JavaScript fällt zusammen mit Python und Ruby in diese Kategorie.

Auch wenn Universitäten immer noch Sprachen wie Java und C ++ als Muttersprachen unterrichten, ist das Erlernen dieser Sprachen erheblich schwieriger.

Faktor 4: Projekte, die Sie damit erstellen können

Hier strahlt JavaScript wirklich. JavaScript läuft auf jedem Gerät, das einen Browser hat, genau dort im Browser. Mit JavaScript können Sie grundsätzlich alles erstellen und überall freigeben.

Aufgrund der Allgegenwart von JavaScript hat der Mitbegründer von Stack Overflow, Jeff Atwood, sein berühmtes Gesetz geprägt:

"Jede Anwendung, die in JavaScript geschrieben werden kann, wird irgendwann in JavaScript geschrieben."

Und mit jedem Monat gilt das Atwood-Gesetz.

Java hat einmal versprochen, auch überall zu laufen. Sie können sich an Java-Applets erinnern. Oracle hat sie Anfang des Jahres offiziell getötet.

Python leidet unter den gleichen Problemen:

„Wie kann ich meinem Freund dieses Spiel geben, das ich gemacht habe? Noch besser, gibt es eine Möglichkeit, wie ich das auf mein Handy stecken kann, damit ich es den Kindern in der Schule zeigen kann, ohne dass sie es installieren müssen? Ähm. ”- James Hague im Ruhestand von Python als Unterrichtssprache

Im Gegensatz dazu finden Sie hier einige Apps, die Mitglieder unserer Open Source-Community in ihren Browsern auf CodePen erstellt haben. Sie können sich durchklicken und diese direkt in Ihrem Browser verwenden:

Simon-Spiel im Stil der 1970er JahreConways Spiel des LebensStar Wars-thematische Wikipedia-SucheEin schurkenhaftes Dungeon-Crawler-Spiel

Lerne eine Sprache gut. Dann lerne einen zweiten.

Wenn Sie von Sprache zu Sprache springen, werden Sie nicht weit kommen.

Um über die Grundlagen hinauszugehen, müssen Sie Ihre erste Sprache gut lernen. Dann wird Ihre zweite Sprache viel, viel einfacher.

Von dort aus können Sie sich verzweigen und zu einem vielseitigeren Entwickler werden, indem Sie viele Sprachen lernen:

  • C ist eine großartige Möglichkeit, um zu lernen, wie Computer in Bezug auf die Speicherverwaltung tatsächlich funktionieren, und es ist nützlich für Hochleistungscomputer
  • C ++ eignet sich hervorragend für die Spieleentwicklung.
  • Python ist fantastisch für Wissenschaft und Statistik.
  • Java ist wichtig, wenn Sie bei großen Technologieunternehmen arbeiten möchten.

Aber lernen Sie zuerst JavaScript.

OK, jetzt werde ich das Unmögliche versuchen - ich werde versuchen, Einwände aus dem Kommentarbereich zu antizipieren.

Einwand Nr. 1: Ist JavaScript nicht langsam?

JavaScript ist - für die meisten praktischen Zwecke - so schnell wie Hochleistungssprachen.

JavaScript (Node.js) ist um Größenordnungen schneller als Python, Ruby und PHP.

Es ist auch fast so schnell wie Hochleistungssprachen wie C ++, Java und Go.

Hier sind die Ergebnisse des umfassendsten aktuellen sprachübergreifenden Benchmarks:

Einwand Nr. 2: JavaScript ist jedoch nicht statisch typisiert

Wie Python und Ruby wird JavaScript dynamisch eingegeben, was praktisch ist. Aber Sie können in Schwierigkeiten geraten. Hier beabsichtige ich zum Beispiel, ein Array zu sein. Ich setze seine Werte und überprüfe dann seine Länge - also die Anzahl der darin enthaltenen Elemente.

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

Aber dann weise ich es versehentlich als Zeichenfolge zu.

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

Diese Art von Fehlern tritt ständig in dynamisch getippten Sprachen auf. Die meisten Entwickler setzen nur Überprüfungen ein, um dies zu verhindern, und schreiben Tests entsprechend.

Wenn Sie in Ihrer ersten Programmiersprache unbedingt statisch schreiben müssen, empfehle ich Ihnen trotzdem, zuerst JavaScript zu lernen. Dann können Sie TypeScript schnell erlernen.

"Typescript hat eine Lernkurve, aber wenn Sie bereits JavaScript kennen, wird es eine reibungslose sein." - Alex Ewerlöf über TypeScript

Einwand # 3: Aber ich möchte wirklich eine mobile App machen

Ich empfehle immer noch, zuerst JavaScript zu lernen.

  1. JavaScript bietet verschiedene Tools zum Erstellen nativer mobiler Apps, z. B. Angular Cordova und React Native.
  2. Damit Ihre mobile App tatsächlich etwas Interessantes bewirken kann, ist wahrscheinlich ein geeignetes Back-End erforderlich, das Sie mit einem geeigneten Webentwicklungsframework wie Node.js + Express.js erstellen möchten.

Es sei auch darauf hingewiesen, dass die besten Tage der Entwicklung mobiler Apps möglicherweise dahinterstecken.

Für den Anfang ist fast die Hälfte aller Entwicklerjobs Webentwicklung, so oft Menschen mobile Apps nutzen. Vergleichen Sie dies mit nur 8% der Jobs, die die Entwicklung mobiler Apps beinhalten.

Die Beschäftigung von 49.525 Entwicklern, basierend auf den Antworten auf die Stapelüberlauf-Umfrage 2016.

Die große Vision, dass es dafür eine App gibt, hat sich nicht erfüllt. Stattdessen haben die meisten Smartphone-Besitzer das Herunterladen neuer Apps eingestellt.

Klar - sie benutzen immer noch Apps. Hauptsächlich Facebook, Google Maps und einige andere. Daher konzentriert sich ein Großteil der Nachfrage nach Entwicklern mobiler Apps auf einige wenige große Arbeitgeber.

Die Aussichten für diese Arbeitsplätze in der mobilen Entwicklung sind schwer zu prognostizieren. Viele Aspekte der Entwicklung, Wartung und Verteilung mobiler Apps sind mit JavaScript einfacher. Daher investieren Unternehmen wie Facebook und Google stark in bessere Tools, um diese mithilfe von JavaScript zu erstellen.

Seit 2016 ist so ziemlich die gesamte Entwicklung die Webentwicklung. Alles berührt diese große Plattform, das „Web“. Und die nächste Welle von Geräten, mit denen Sie zu Hause sprechen, und Autos, mit denen Ihre Kinder von der Schule abgeholt werden - alle werden auch über das Web miteinander verbunden .

Und das bedeutet JavaScript.

Einwand Nr. 4: Ist JavaScript keine Spielzeugsprache, die in 10 Tagen geschrieben wurde?

JavaScript hat eine eigenartige Geschichte.

Sie werden zweifellos Leute hören, die auf ihre Kosten Witze machen.

Nun, die Leute lieben es auch, auf C ++ zu hassen. Und wie JavaScript hat C ++ trotz dieses Hasses Erfolg gehabt, und jetzt ist es auch so ziemlich überall.

Wenn es Ihnen also jemals schwer fällt, JavaScript zu lernen, anstatt die Elite-Sprache der Woche zu verwenden, erinnern Sie sich an die berühmten Worte des Mannes, der C ++ erstellt hat:

„Es gibt nur zwei Arten von Programmiersprachen: Diese Leute meckern immer und die, die niemand benutzt.“ - Bjarne Stroustrup

Ich schreibe nur über Programmierung und Technologie. Wenn Sie mir auf Twitter folgen, werde ich Ihre Zeit nicht verschwenden.