Die Karriere eines Programmierers ist eine interessante Reise voller Höhen und Tiefen. Angesichts der steilen Lernkurve ist es völlig vorhersehbar, dass man Phasen der Frustration, der Erleuchtung und der Arroganz durchläuft, zusammen mit verschiedenen emotionalen Erfahrungen dazwischen. In diesem Artikel wollen wir es etwas lockerer angehen und jede dieser Phasen anhand einer Reihe urkomischer GIF-Bilder Revue passieren lassen.

Phase 1 – Neuling

In den ersten Tagen des Einstiegs in die Arbeitswelt sind wir alle voller Leidenschaft. In dieser Zeit hast du keinen Schimmer und weißt einfach nicht, was du tun sollst. Wie ein Fisch auf dem Trockenen ist jede Zeile Code ein Rätsel für dich. Doctype? Hä? Wofür zum Teufel ist dieses <div> eigentlich gut? Die erste Phase ist entmutigend, nervenaufreibend und doch spannend. Wie viele verdammte Sprachen gibt es bloß zu lernen?

Dein größter Vorteil ist vielleicht, dass du nicht weißt, wie tief das Wasser ist(Anmerkung des Übersetzers: Der Originaltext „you have no idea how deep the rabbit hole goes“ spielt darauf an, wie Alice in Alice im Wunderland in einen bodenlosen Kaninchenbau fällt). HTML zu lernen ist nur ein kleiner Schritt nach vorn.

Phase 2 - Erste Schritte

Obwohl es einige Mühe gekostet hat, hast du schließlich genug Wissen erworben, um deinen ersten Schritt in die Programmierwelt zu wagen. Während die erste Phase völlig ein verwirrter Zustand von „Wie soll ich / Wo fange ich an?“ war, hast du in der zweiten Phase begonnen, langsam dein eigenes Kompetenzsystem aufzubauen. Natürlich ist dir die CSS-Syntax zum Definieren von Stilen noch fremd, aber zumindest kannst du den Code in deinem neu gekauften Code-Editor ändern und die Auswirkung der Änderungen im Browser sehen. Das ist ein wunderbares Gefühl!

Phase 3 - Extreme Frustration

Stell dir vor, du hast dich in einer Höhle verirrt und leuchtest mit einer Taschenlampe durch jeden Tunnel, um einen Ausweg zu finden. Mit jedem Schritt hoffst du, einen Lichtschimmer zu sehen. Leider ist die Lernkurve in unserem Bereich sehr steil. Ich muss dir leider sagen, dass dieser Lichtschimmer nicht lange anhalten wird. Du musst darauf vorbereitet sein, in dieser Phase Hunderte von Stunden zu verbringen. Wenn du verzweifelt versuchst, herauszufinden, was diese Dinge, die dich in den Wahnsinn treiben, bedeuten, musst du technische Bücher immer und immer wieder lesen.

Wenn du so frustriert bist, dass du es kaum noch aushältst, beruhige dich bitte und denk darüber nach, wie jeder von uns irgendwann in seiner Karriere genauso empfunden hat wie du. Du kämpfst nicht allein. Mach weiter, und bald wirst du die Phase der "Erleuchtung" erreichen.

Phase 4 – Moment der Erleuchtung

Der Moment der "Erleuchtung" ist eines der besten Gefühle der Welt: Von einem Augenblick auf den anderen, plötzlich, hast du es "kapiert" – "Ohhh, jetzt verstehe ich es endlich." Bei mir ist es so, dass große Durchbrüche in der Programmierung meist nachts passieren, während andere tief und fest schlafen. Nachdem ich den Code acht Mal gelesen habe, wird das, was einst schwer fassbar war, zumindest ein wenig klarer.

In dieser Phase beginnen all die Fähigkeiten und Sprachen, die du gelernt hast, nützlich zu werden.

Phase 5 – Zerbrechlicher Code

Wie in den vorherigen Phasen ist auch die "zerbrechliche" Phase ziemlich lang. In dieser Phase baust du erfolgreich Anwendungen und erreichst die gewünschten Ergebnisse, aber der zugrunde liegende Code kann plötzliche Änderungen der Kundenanforderungen nicht bewältigen(An diesem Punkt baust du erfolgreich Anwendungen und erreichst dein gewünschtes Endergebnis, aber der zugrunde liegende Code ist nur eine Kunden-Feature-Anfrage davon entfernt, zu platzen. Anmerkung des Übersetzers: Die zweite Hälfte des "aber"-Satzes ist ziemlich schwer zu übersetzen; hoffentlich kann ein Experte sie retten.). Zu diesem Zeitpunkt sind die Methoden, die du schreibst, Dutzende Zeilen lang, und das Konzept des Testens muss sich in deinem Kopf erst noch bilden.

Aber zumindest erschaffst du etwas Echtes. Beschränke deine Pull Requests auf GitHub vorerst bitte darauf, Dokumentation zu schreiben und Tippfehler zu korrigieren. Unterschätze nicht, wie hilfreich diese Bemühungen für andere sein können.

Phase 6 – Nachahmung

Die Nachahmungsphase ist sehr wichtig. Es gibt keinen besseren Weg, ordentliche Programmiertechniken zu lernen, als den Code nachzuahmen, den die Meister geschrieben haben, die du bewunderst – sogar ihren Code Zeile für Zeile zu kopieren. Lass dich nicht entmutigen; jede künstlerische Laufbahn umfasst eine Nachahmungsphase. Zum Glück macht GitHub diese stille Bewunderung einfacher denn je. Natürlich kann dir das Kopieren von Code nur bis zu einem gewissen Punkt helfen, aber es ist ein guter Anfang. Ahme diejenigen nach, die dich inspirieren, und irgendwann wirst du beginnen, deinen eigenen Stil zu entwickeln.

Phase 7 - Selbstgerechtigkeit

An diesem Punkt beginnst du endlich, in eine Situation zu geraten, in der du sicherlich noch enormes Verbesserungspotenzial hast, dein Selbstvertrauen aber auch rapide wächst – vielleicht zu schnell! Man sagt oft, dass du in den ersten paar Jahren noch nicht erkennen kannst, wie unwissend du bist!

Vermeide in dieser Phase den Impuls, zu arrogant zu werden. Arroganz ist für niemanden gut, und sie wird nur dafür sorgen, dass dein besseres zukünftiges Ich den Kopf schüttelt, wenn es auf die Vergangenheit zurückblickt. Wenn du auf GitHub, Reddit oder StackOverflow einen sarkastischen Kommentar hinterlassen willst wie "Alter, lern programmieren", dann tu es nicht. Vor nicht allzu langer Zeit warst du selbst ein kompletter Anfänger. Bitte verbreite positive Energie, anstatt andere herabzusetzen. Wir stehen alle auf derselben Seite, nur in unterschiedlichen Phasen.

Phase 8 - Vim lernen

Wenn du jemals einen Entwickler, mit dem du zusammenarbeitest, beobachtet hast und darüber gestaunt hast, wie schnell er im Code-Editor arbeitet, dann verwendet er wahrscheinlich Vim. Obwohl Vims Lernkurve sehr steil ist, wird dein Workflow, sobald du ihn beherrschst, für Außenstehende ebenfalls so magisch wie Magie wirken.

Dies ist die Phase, in der du beginnst, deine Programmierfähigkeiten und deinen Workflow zu beherrschen, und die richtigen Werkzeuge sind genauso wichtig wie die Fähigkeiten.

Phase 9 - Wenn Code zur Kunst wird

Obwohl es Tausende von Stunden dauert, schaust du eines Tages auf deinen Code, liest ihn so mühelos wie die Bedienung einer Kommandozeile, und erkennst, dass er praktisch ein Kunstwerk ist. Dein Code hat Versionskontrolle, gute Abstraktion, perfekte Testbarkeit, Skalierbarkeit und ist leicht zu lesen. Irgendwann in deiner Karriere magst du es genossen haben, mysteriösen, verwirrenden, aber funktionsfähigen Code schreiben zu können. Allerdings sind die Nutzung jedes möglichen Tricks und versteckten Features einer Programmiersprache oder das Vereinfachen komplexer Logik in eine einzige Zeile, nur um deine Cleverness zu zeigen, keine Zeichen eines reifen Entwicklers. Im Gegenteil, sie offenbaren einen arroganten Entwickler, der keinerlei Rücksicht auf zukünftige Code-Maintainer nimmt.

Wenn die Lesbarkeit von Code für dich genauso wichtig wird wie die Funktionalität, die er umsetzt, wird Code zur Kunst. In dieser Phase schreibst du Code für Menschen, nicht für Maschinen.

Stufe 10 - Erfahren

Wenn Programmieren zum Instinkt wird, erreichst du die nächste Stufe deiner Karriere. An diesem Punkt denkst du nicht mehr über Sprachen und Frameworks nach, sondern identifizierst einfach Probleme und wählst die richtigen Werkzeuge aus deinem Entwicklungs-Werkzeugkasten, um Lösungen zu liefern. Ein erfahrener Entwickler versteht, warum der einsame Cowboy-Ansatz, ganz allein zu arbeiten, selten der richtige Weg ist. Jedes neue Feature mit allen Mitgliedern des Projektteams zu besprechen, Whiteboards vorzubereiten, Stories zu schreiben (Anmerkung des Übersetzers: Story) und Tests zu generieren – all das sind Aufgaben, die erledigt werden, bevor die erste Zeile tatsächlichen Codes geschrieben wird.

An diesem Punkt bist du ein reifer, umsichtiger Entwickler geworden, mit dem alle anderen zusammenarbeiten möchten. Herzlichen Glückwunsch!

Stufe 11 - Rock Star

Nur sehr wenige Menschen erreichen diese Stufe. Die Rockstar-Stufe ist der Höhepunkt einer Karriere. Zusätzlich zu deiner täglichen Arbeit sprichst du oft auf Seminaren und wirst zu einer führenden Figur hinter unzähligen Open-Source-Projekten; du findest Zeit, dich über Mailinglisten an der zukünftigen Entwicklung des Webs zu beteiligen und dazu beizutragen, und hilfst gleichzeitig Neulingen im IRC. Du bist die Art von Person, die gerne Compiler und Parser schreibt.

Andere nennen dich einen Rockstar oder einen Ninja, aber du hasst solche Etiketten. Du weißt es besser als jeder andere – Lernen kennt kein Ende!

Quelle: http://blog.jobbole.com/56252/