In den letzten Jahren hat plötzlich ein Trend, dass alle Code schreiben, die ganze Welt erfasst; sogar US-Präsident Obama schreibt JavaScript. Aber als Entwickler, der seinen Lebensunterhalt mit dem Schreiben von Code verdient (und während der Arbeitszeit wahllos im Internet surft) – wobei „Entwickler“ die trendigere Bezeichnung für „Softwareentwickler“ ist – möchte ich diejenigen, die Programmieren lernen wollen, an eine wichtige Sache erinnern: Wähle deine erste Programmiersprache sorgfältig aus.

Im Kreis der Softwareentwickler (in China "Programmierer" oder "Code-Bauern" genannt) ist das Phänomen, dass Angehörige desselben Berufs aufeinander herabblicken, sehr ausgeprägt. In jedem Bereich der Programmierung gibt es komplexe "Verachtungsketten". Von Programmiersprachen, Editoren und Plattformen bis hin zu der Frage, ob { in derselben Zeile wie if oder in der nächsten Zeile geschrieben wird, blicken Menschen in verschiedenen Lagern gewohnheitsmäßig aufeinander herab. Darunter ist "Welche Programmiersprache verwendest du?" die Verachtungskette, für die sich alle am meisten begeistern. Für Anfänger, die gerade erst in die Programmierwelt einsteigen, gilt also: Wenn sie ihre Sprache nicht sorgfältig wählen, können sie von Anfang an ganz unten in der Verachtungskette landen.

Wie intensiv und grausam ist die Verachtungskette unter Softwareentwicklern eigentlich?

63918611gw1enbo8tfia9j20jg0dw753

Programmiersprachen

Entwickler, die funktionale Programmierung verstehen, blicken auf Entwickler herab, die ständig über Entwurfsmuster reden; Entwickler, die ständig über Entwurfsmuster reden, blicken auf Entwickler herab, die sagen: "So zu schreiben ist nicht mehr OO!"; Entwickler, die sagen: "So zu schreiben ist nicht mehr OO!", blicken auf Entwickler herab, die sagen: "Hä? Objektorientiert? Reicht es nicht, den wiederholten Code einfach als Funktion zu schreiben?"; Entwickler, die sagen: "Hä? Objektorientiert? Reicht es nicht, den wiederholten Code einfach als Funktion zu schreiben?", blicken auf Entwickler herab, die denselben Code überallhin kopieren und einfügen; Entwickler, die denselben Code überallhin kopieren und einfügen, blicken auf PMs herab.

Entwickler, die statische Sprachen schreiben, blicken auf Entwickler herab, die dynamische Sprachen schreiben.

Entwickler, die Assemblersprache schreiben, blicken auf Entwickler herab, die C schreiben; C-Entwickler blicken auf C++-Entwickler herab; C++-Entwickler blicken auf Java- und C#-Entwickler herab; Java- und C#-Entwickler blicken aufeinander herab; C#-Entwickler blicken auf Visual-Basic-Entwickler und Entwickler herab, die C# als "C well" aussprechen; Entwickler, die C# als "C well" aussprechen, blicken auf Designer herab, die HTML für eine Programmiersprache halten.

Entwickler, die Python 3 verwenden, sehen auf Entwickler herab, die noch Python 2 verwenden; Entwickler, die Python 2 verwenden, sehen auf Entwickler herab, die auf UnicodeEncodeError stoßen.

Entwickler, die iOS entwickeln, sehen auf Entwickler herab, die Android entwickeln; Entwickler, die Android entwickeln, sehen auf Entwickler herab, die Windows Phone entwickeln.

Entwickler mit einem Jahr Swift-Erfahrung sehen auf Entwickler mit fünf Jahren Objective-C-Erfahrung herab; Entwickler, die Objective-C schreiben, sehen auf Entwickler herab, die PhoneGap verwenden, um Apps als native Apps zu verpacken.

Entwickler, die React.js verwenden, sehen auf Entwickler herab, die AngularJS verwenden; Entwickler, die AngularJS verwenden, sehen auf Entwickler herab, die jQuery verwenden; Entwickler, die jQuery verwenden, sehen auf Entwickler herab, die Vanilla JavaScript verwenden; Entwickler, die Vanilla JavaScript verwenden, sehen auf IE-Nutzer herab.

Entwickler, die wissen, wie man einen Debugger verwendet, sehen auf Entwickler herab, die assert verwenden; Entwickler, die assert verwenden, sehen auf Entwickler herab, die nur wissen, wie man print() verwendet; Entwickler, die mit console.log() debuggen, sehen auf Entwickler herab, die mit alert() debuggen.

Entwickler, die Ruby on Rails schreiben, sehen auf Entwickler herab, die alle anderen Sprachen verwenden.

Was? Du hast Ruby gesagt? Ruby ist nur ein Framework von Ruby on Rails, überhaupt keine Programmiersprache!

Alle Entwickler sehen auf PHP-Entwickler herab.

Werkzeuge

Entwickler, die einen Texteditor verwenden, sehen auf Entwickler herab, die eine IDE verwenden.

Entwickler, die Vim verwenden, sehen auf Entwickler herab, die Emacs verwenden; Entwickler, die Emacs verwenden, sehen auf Entwickler herab, die Vim verwenden; Entwickler, die entweder Vim oder Emacs verwenden, sehen auf Entwickler herab, die einen beliebigen anderen Editor verwenden; Entwickler, die Atom, VSCode oder Sublime Text verwenden, sehen auf Entwickler herab, die Windows Notepad verwenden.

Entwickler, die Android Studio oder IntelliJ IDEA verwenden, sehen auf Entwickler herab, die Eclipse verwenden; Entwickler, die Eclipse verwenden, sehen auf Entwickler herab, die NetBeans verwenden.

Entwickler, die Code mit Leerzeichen einrücken, sehen auf Entwickler herab, die mit Tabs einrücken; Entwickler, die mit Tabs einrücken, sehen auf Entwickler herab, die Leerzeichen und Tabs beim Einrücken mischen.

Entwickler, die Git oder Mercurial verwenden, sehen auf Entwickler herab, die Subversion verwenden; Entwickler, die Subversion verwenden, sehen auf Entwickler herab, die Dropbox zur Versionskontrolle verwenden; Entwickler, die Dropbox zur Versionskontrolle verwenden, sehen auf Entwickler herab, die nicht einmal wissen, was Versionskontrolle ist.

Entwickler, die GitHub kennen, sehen auf Entwickler herab, die GitHub nicht kennen; Entwickler, die private Repos auf GitHub haben, sehen auf Entwickler herab, die BitBucket für kostenlose private Repos verwenden.

Entwickler, die Zsh verwenden, sehen auf Entwickler herab, die Bash verwenden; Entwickler, die Bash verwenden, sehen auf Entwickler herab, die Cygwin verwenden; Entwickler, die Cygwin verwenden, sehen auf Entwickler herab, die die Eingabeaufforderung verwenden; Entwickler, die die Eingabeaufforderung verwenden, sehen auf Entwickler herab, die GUI-Oberflächen verwenden.

Entwickler, die IRC verwenden, sehen auf Entwickler herab, die HipChat verwenden; Entwickler, die HipChat verwenden, sehen auf Designer und PMs herab, die Slack verwenden.

Entwickler, die Dokumentation in reStructuredText schreiben, sehen auf Entwickler herab, die Dokumentation in Markdown schreiben; Entwickler, die Dokumentation in Markdown schreiben, sehen auf Entwickler herab, die Dokumentation in HTML schreiben; Entwickler, die Dokumentation in HTML schreiben, sehen auf Entwickler herab, die keine Dokumentation schreiben; und Entwickler, die Dokumentation in LaTeX schreiben, sehen auf alle Entwickler herab.

Entwickler, die Nginx verwenden, sehen auf Entwickler herab, die Apache verwenden; Entwickler, die Apache verwenden, sehen auf Entwickler herab, die IIS verwenden.

Entwickler, die Spark verwenden, sehen auf Entwickler herab, die Hadoop verwenden; Entwickler, die Hadoop verwenden, sehen auf Entwickler herab, die Hadoop verwenden, um nur wenige GB an Daten zu verarbeiten; Entwickler, die Hadoop verwenden, um nur 1GB an Daten zu verarbeiten, sehen auf Entwickler herab, die NoSQL verwenden; Entwickler, die NoSQL verwenden, sehen auf Entwickler herab, die relationale Datenbanken verwenden; Entwickler, die relationale Datenbanken verwenden, sehen auf PMs herab, die Excel verwenden.

Ingenieure, die Docker zum Bereitstellen von Servern verwenden, sehen auf Ingenieure herab, die Ansible oder Puppet zum Bereitstellen von Servern verwenden; Ingenieure, die Ansible oder Puppet zum Bereitstellen von Servern verwenden, sehen auf Ingenieure herab, die Fabric zum Bereitstellen von Servern verwenden; Ingenieure, die Fabric zum Bereitstellen von Servern verwenden, sehen auf Ingenieure herab, die manuell per SSH arbeiten.

Betriebssystem

Ingenieure, die Mac OS X verwenden, sehen auf Ingenieure herab, die Linux verwenden; Ingenieure, die Linux verwenden, sehen auf Ingenieure herab, die Windows verwenden.

Ingenieure, die Debian verwenden, sehen auf Ingenieure herab, die Ubuntu verwenden; Ingenieure, die Ubuntu verwenden, sehen auf Ingenieure herab, die Nicht-LTS-Versionen von Ubuntu verwenden.

Hardware

Ingenieure, die ein MacBook Pro Retina verwenden, sehen auf Ingenieure herab, die ein MacBook Air verwenden; Ingenieure, die ein MacBook Air verwenden, sehen auf Ingenieure herab, die ein ThinkPad verwenden; und Ingenieure, die einen Raspberry Pi verwenden, sehen auf Ingenieure herab, die ein MacBook Pro Retina verwenden.

Ingenieure, die eine Dvorak-Tastatur verwenden, sehen auf Ingenieure herab, die eine Mac-Tastatur verwenden; Ingenieure, die eine Mac-Tastatur verwenden, sehen auf Ingenieure herab, die eine QWERTY-Tastatur verwenden; Ingenieure, die eine QWERTY-Tastatur verwenden, sehen auf Ingenieure herab, die nicht wissen, was eine QWERTY-Tastatur ist; Ingenieure, die nicht wissen, was eine QWERTY-Tastatur ist, sehen auf Designer herab, die ein Grafiktablett verwenden.

Ingenieure, die in Aeron-Stühlen sitzen, sehen auf Ingenieure herab, die in gewöhnlichen Bürostühlen sitzen; Ingenieure, die in gewöhnlichen Bürostühlen sitzen, sehen auf PMs herab, die ebenfalls in gewöhnlichen Bürostühlen sitzen; und Ingenieure, die Code im Stehen schreiben, sehen auf Ingenieure herab, die in Aeron-Stühlen sitzen.

Arbeitsplatz

Ingenieure, die an Hardware arbeiten, sehen auf Ingenieure herab, die an Software arbeiten.

Ingenieure, die Betriebssysteme schreiben, sehen auf Ingenieure herab, die Web-Anwendungen schreiben; Ingenieure, die Web-Anwendungen schreiben, sehen auf Ingenieure herab, die Desktop-Anwendungen schreiben.

Backend-Ingenieure sehen auf Frontend-Ingenieure herab.

Ingenieure und Designer sehen aufeinander herab.

Ingenieure, die an Test-Driven Development glauben, verachten Ingenieure, die zuerst Code schreiben und später Tests hinzufügen; Ingenieure, die zuerst Code schreiben und später Tests hinzufügen, verachten Ingenieure, die keine Tests schreiben; Ingenieure, die keine Tests schreiben, verachten PMs, die, verdammt noch mal, ständig willkürlich die Anforderungen ändern.

Ingenieure ohne Zertifizierungen verachten Ingenieure, die einen Haufen Zertifizierungen erworben haben.

Ingenieure, die Freizeitkleidung zur Arbeit tragen, verachten Ingenieure, die Anzüge tragen, und Ingenieure, die Anzüge zur Arbeit tragen, verachten Ingenieure, die Abteilungsuniformen tragen.

———

Wenn nach dem Lesen dieser absolut schrecklichen Ketten der Verachtung oben deine Lust, Programmieren zu lernen, noch nicht zunichtegemacht wurde, muss ich dich an das Wichtigste erinnern: Such dir zuerst eine Freundin und lerne dann, Code zu schreiben; denn sobald du Softwareentwickler wirst, wirst du keine Freundin mehr finden können.

Originalquelle: http://vinta.ws/blog/695