Welche Programmiersprache sollte ich im Jahr 2021 zuerst lernen? ʇdıɹɔsɐʌɐɾ :ɹǝʍsuɐ

Die Reise der meisten Menschen in Richtung Programmieren beginnt mit einer einzigen nächtlichen Google-Suche.

Normalerweise ist es etwas wie „Lerne ______“

Aber wie entscheiden sie, nach welcher Sprache sie suchen?

„In Silicon Valley machen sie immer Witze über Java. Ich denke, ich sollte das lernen.“

Oder:

„Haskell. So heiß im Moment. Haskell.“

Oder:

„Dieses Go-Gopher ist einfach so verdammt süß.“

Und dann ist da noch der Rest von uns. Wir suchen wahrscheinlich nach etwas wie:

„Welche Programmiersprache sollte ich zuerst lernen?“

Wenige Fragen werden so häufig gestellt, dass sie die volle Infografik-Behandlung bekommen. Aber dies ist eine davon:

Bildnachweis

Die Entscheidung über Ihre erste Programmiersprache kann ein lustiger Prozess sein – ähnlich wie eines dieser „Welcher Quentin Tarantino-Charakter sind Sie?“

Aber bevor Sie losrennen, um Ruby zu lernen, weil es Ihnen als Kind Spaß gemacht hat, mit Play-Doh zu spielen, lassen Sie mich Sie daran erinnern: Der Einsatz ist hier ziemlich hoch.

Es wird Sie hunderte von Übungsstunden kosten, um mit Ihrer ersten Programmiersprache auch nur annähernd kompetent zu werden.

Daher sollten Sie die folgenden Faktoren berücksichtigen:

  • Der Arbeitsmarkt für die Sprache
  • Die langfristigen Aussichten für die Sprache
  • Wie einfach die Sprache zu lernen ist
  • Welche Projekte Sie bauen können, während Sie lernen (und mit Freunden teilen, damit Sie motiviert bleiben)

Jedes Jahr bringt neue Programmiersprachen, und mit ihnen neue akademische Arbeiten. Und neue Web-Comics.

Ernsthaft. Schauen Sie sich dieses Kleinod vom letzten Monat an:

Wenn es darum geht, eine erste Programmiersprache zu wählen, gibt es keinen Mangel an Optionen. Um die Auswahl ein wenig einzugrenzen, hier die häufigsten Google-Suchanfragen zum Thema Programmieren lernen in den letzten 12 Jahren:

Java hatte seine Höhen und Tiefen.

Python ist allmählich zur beliebtesten Wahl aufgestiegen.

Aber versteckt unter diesen ist die Little Engine That Could, die in den letzten Jahren langsam an Popularität gewonnen hat. Und diese Maschine ist JavaScript.

Bevor ich über diese Programmiersprachen spreche, lassen Sie mich etwas klarstellen:

  • Ich behaupte nicht, dass eine Sprache objektiv besser ist als eine andere
  • Ich stimme zu, dass Entwickler letztendlich mehr als eine Sprache lernen sollten
  • Ich behaupte, dass sie zuerst eine Sprache gut lernen sollten. Und – wie Sie wahrscheinlich aus dem auf dem Kopf stehenden Text in meiner Überschrift erraten können – sollte diese Sprache JavaScript sein.

Lassen Sie uns die Dinge beginnen, indem wir untersuchen, wie Programmieren derzeit in der Schule unterrichtet wird.

Computer Science 101

Universitäten haben das Programmieren traditionell unter dem Dach der Informatik gelehrt, die ihrerseits oft als Erweiterung der Mathematik oder als Anknüpfung an ein Studium der Elektrotechnik gesehen wird.

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

„Eine Informatik-Ausbildung kann niemanden zu einem erfahrenen Programmierer machen, genauso wenig wie das Studium von Pinseln und Pigmenten jemanden zu einem erfahrenen Maler machen kann.“ – Eric S. Raymond

Im Jahr 2016 behandeln viele Universitäten das Programmieren immer noch so, als wäre es Informatik, und die Informatik so, als wäre sie Mathematik.

Als Ergebnis konzentrieren sich viele Einführungskurse in die Programmierung auf Sprachen mit niedrigem Abstraktionsgrad wie C oder auf mathematisch fokussierte Sprachen wie MATLAB.

Und die Lehrstühle bleiben in der Regel bei diesem Kurs und verweisen auf jährliche Ranglisten für Programmiersprachen wie den TIOBE-Index oder diese vom IEEE:

Die meisten dieser Ranglisten sehen praktisch identisch aus wie vor 10 Jahren.

Aber es gibt Veränderungen. Sogar in der akademischen Welt.

Im Jahr 2014 überholte Python Java als beliebteste Unterrichtssprache an den führenden US-Informatik-Studiengängen.

Und noch eine weitere Änderung wird… irgendwann… passieren.

Denn wenn man sich die Sprachen ansieht, die von den Mitarbeitern tatsächlich verwendet werden, ergibt sich ein ganz anderes Bild:

JavaScript ist die mit Abstand beliebteste Sprache, die von den 49.397 Entwicklern verwendet wird, die an der Stack Overflow-Umfrage 2016 teilgenommen haben.

Mehr als die Hälfte aller Entwickler verwenden JavaScript. Es ist unverzichtbar für die Front-End-Webentwicklung und zunehmend relevant für die Back-End-Entwicklung. Und es expandiert schnell in Bereiche wie Spieleentwicklung und das Internet der Dinge.

Auch in Stellenausschreibungen wird JavaScript häufiger erwähnt als jede andere Programmiersprache außer Java:

Daten des weltweit größten Stellenausschreibungsaggregators, Indeed.com

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

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

Aber ist JavaScript das Richtige für Sie? Ist es würdig, Ihre erste Programmiersprache zu sein? Lassen Sie uns die Faktoren untersuchen, die ich vorhin erwähnt habe.

Faktor 1: Der Arbeitsmarkt

Wenn Sie das Programmieren nur aus intellektueller Neugier lernen, können Sie diesen Faktor getrost überspringen. Aber wenn Sie – wie die überwiegende Mehrheit der Menschen, die programmieren lernen – diese Fähigkeit nutzen wollen, um einen Job zu bekommen, ist dies eine wichtige Überlegung.

Wie ich bereits erwähnt habe, wird Java in mehr Stellenausschreibungen erwähnt als jede andere Programmiersprache. JavaScript liegt dicht dahinter.

Aber hier ist die Sache mit JavaScript: Obwohl es diese Sprache schon seit 20 Jahren gibt, wurde sie erst vor kurzem zu einem ernstzunehmenden Werkzeug, um das Firmen wie Netflix, Walmart und PayPal ganze Anwendungen bauen.

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

Daten von Indeed.com

Für jede offene Java-Stelle gibt es 2,7 Java-Entwickler im Wettbewerb. Die Konkurrenz für PHP- und iOS-Stellen ist ähnlich groß.

Aber für jede offene JavaScript-Stelle gibt es nur 0,6 JavaScript-Entwickler. Es ist also ein Verkäufermarkt für Entwickler mit JavaScript-Kenntnissen.

Faktor #2: Die langfristigen Aussichten

Das durchschnittliche JavaScript-Projekt erhält doppelt so viele Pull-Requests wie das durchschnittliche Java-, Python- oder Ruby-Projekt. Und obendrein wächst JavaScript schneller als jede andere beliebte Sprache.

Quelle: GitHub’s 2016 State of the Octoverse

Das Ökosystem von JavaScript profitiert auch von hohen Investitionen in Geld und Ingenieurskunst von Unternehmen wie Google, Microsoft, Facebook und Netflix.

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

Diese Art der unternehmensübergreifenden Zusammenarbeit ist bei Java schwieriger zu finden. Oracle – das Java durch die Übernahme von Sun Microsystems effektiv besitzt – verklagt oft Firmen, die versuchen, es zu erweitern.

Faktor #3: Schwierigkeit zu lernen

Dies ist eine Parodie auf einen XKCD-Comic.

Die meisten Programmierer würden zustimmen, dass High-Level-Skriptsprachen relativ einfach zu erlernen sind. JavaScript fällt in diese Kategorie, zusammen mit Python und Ruby.

Auch wenn an Universitäten immer noch Sprachen wie Java und C++ als erste Sprachen gelehrt werden, sind sie wesentlich schwieriger zu erlernen.

Faktor #4: Projekte, die Sie damit bauen können

Hier glänzt JavaScript wirklich. JavaScript läuft auf jedem Gerät, das einen Browser hat, direkt im Browser. Sie können im Grunde alles mit JavaScript bauen und es überall teilen.

Aufgrund der Allgegenwärtigkeit von JavaScript hat Stack Overflow-Mitbegründer Jeff Atwood sein mittlerweile berühmtes Gesetz geprägt:

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

Und mit jedem Monat, der vergeht, hält Atwoods Gesetz stärker an.

Java versprach einst, ebenfalls überall zu laufen. Sie erinnern sich vielleicht an Java Applets. Oracle hat sie Anfang des Jahres offiziell abgeschafft.

Python leidet unter den gleichen Problemen:

„Wie kann ich dieses Spiel, das ich gemacht habe, meinem Freund geben? Noch besser: Gibt es eine Möglichkeit, es auf mein Handy zu laden, damit ich es den Kindern in der Schule zeigen kann, ohne dass sie es installieren müssen? Ähm.“ – James Hague in Retiring Python as a Teaching Language

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

Simon-Spiel im Stil der 1970er
Conway’s Game of Life
Star Wars-thematische Wikipedia-Suche
Ein roguelike Dungeon-Crawler-Spiel

Lernen Sie eine Sprache gut. Dann lernen Sie eine zweite.

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

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

Von dort aus können Sie sich verzweigen und ein vielseitigerer Entwickler werden, indem Sie viele Sprachen lernen:

  • C ist ein großartiger Weg, um zu lernen, wie Computer tatsächlich in Bezug auf die Speicherverwaltung arbeiten, und ist nützlich für High-Performance-Computing
  • C++ ist großartig für die Spieleentwicklung.
  • Python ist großartig für Wissenschaft und Statistik.
  • Java ist wichtig, wenn Sie bei großen Tech-Firmen arbeiten wollen.

Aber lernen Sie zuerst JavaScript.

OK, jetzt werde ich das Unmögliche versuchen – ich werde versuchen, Einwände aus dem Kommentarbereich vorwegzunehmen.

Einwand 1: Aber ist JavaScript nicht langsam?

JavaScript ist – für die meisten praktischen Zwecke – genauso 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 #2: Aber JavaScript ist nicht statisch typisiert

Wie Python und Ruby ist auch JavaScript dynamisch typisiert, was praktisch ist. Aber man kann in Schwierigkeiten geraten. Hier möchte ich, dass exampleArray ein Array ist. Ich setze seine Werte und prüfe dann seine Länge – also die Anzahl der Elemente, die es enthält.

exampleArray = -> exampleArray.length-> 2

Aber dann weise ich ihm versehentlich einen String zu.

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

Diese Art von Fehlern passiert in dynamisch typisierten Sprachen ständig. Die meisten Entwickler setzen einfach Überprüfungen ein, um sie zu verhindern, und schreiben Tests entsprechend.

Wenn Sie unbedingt statische Typisierung in Ihrer ersten Programmiersprache haben müssen, dann empfehle ich Ihnen immer noch, zuerst JavaScript zu lernen. Dann können Sie sich schnell in TypeScript einarbeiten.

„Typescript hat eine Lernkurve, aber wenn Sie JavaScript bereits kennen, wird es eine glatte Kurve 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 mehrere Tools für die Erstellung von nativen mobilen Apps, wie Angular Cordova und React Native.
  2. Damit Ihre mobile App auch wirklich etwas Interessantes tut, braucht sie wahrscheinlich ein ordentliches Backend, das Sie mit einem ordentlichen Webentwicklungs-Framework wie Node.js + Express.js erstellen sollten.

Außerdem ist es erwähnenswert, dass die besten Tage der mobilen App-Entwicklung vielleicht schon hinter ihr liegen.

Zum Einstieg: So sehr die Menschen auch mobile Apps nutzen, fast die Hälfte aller Entwicklerjobs sind Webentwicklung. Im Vergleich dazu sind nur 8 % der Jobs mit mobiler App-Entwicklung verbunden.

Die Berufe von 49.525 Entwicklern, basierend auf den Antworten auf die Stack Overflow-Umfrage 2016.

Die große Vision von „Dafür gibt es eine App“ hat sich nicht erfüllt. Stattdessen haben die meisten Smartphone-Besitzer aufgehört, neue Apps herunterzuladen.

Sicher – sie nutzen noch Apps. Vor allem Facebook, Google Maps und eine Handvoll anderer. Daher konzentriert sich ein Großteil der Nachfrage nach mobilen App-Entwicklern auf einige wenige große Arbeitgeber.

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

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

Und das bedeutet JavaScript.

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

JavaScript hat eine skurrile Geschichte.

Sie werden zweifellos hören, wie Leute Witze auf seine Kosten machen.

Nun, die Leute lieben es auch, C++ zu hassen. Und genau wie JavaScript hat sich C++ trotz dieses Hasses durchgesetzt, und jetzt ist es auch so ziemlich überall zu finden.

Wenn Ihnen also jemals jemand das Leben schwer macht, weil Sie JavaScript statt der Elite-Sprache der Woche lernen, erinnern Sie sich einfach an die berühmten Worte des Mannes, der C++ erschaffen hat:

„Es gibt nur zwei Arten von Programmiersprachen: die, über die die Leute immer meckern, 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. ?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.