4 Min

Ein Programmierer bekämpft Software Bugs Links: Ein Software-Bug, böse und nervtötend. Rechts: Ein Hacker, glänzend und majestätisch

Die unbequeme Wahrheit

Lass mich raten: Du hast dreihundert Coding-Tutorials beendet und noch immer das Gefühl, nicht wirklich etwas gelernt zu haben. Die unbequeme Wahrheit ist, dass du nie ein richtiger Hacker werden wirst, wenn du nur Anweisungen befolgst. Du musst das System crashen können. Du musst dein eigenes Code-Fu entwickeln. Du musst das feine Manual durchlesen.

Die meisten Informatik-Professoren dort draußen wollen dir D.R.Y. empfehlen. DRY bedeutet Don’t Repeat Yourself und meint die Vorgehensweise, Programmcode niemals ein zweites Mal zu schreiben. Alles schön und gut, nur ist das überhaupt nicht die Live-Action Methode von Überfliegern wie John Carmack, Linus Torwalds oder Pavel Durov, die gefährlich leben. Die echten P R O G R A M M I E R E R dort draußen schreiben endlose Varianten des gleichen Algorithmus, um das Problem, das sie beschäftigt, wirklich zu meistern.

Quake wurde nicht einmal entwickelt, sondern zweimal, dreimal, viermal, und die Codebase begann bei jeder Iteration bei Null. Die Loser von der Uni sind faul. Sie gehen den gemütlichen Weg und investieren so wenig Grips wie möglich in die Umsetzung ihrer Projekte. Doch das sind keine Programmierer. Es sind End-Anwender von Software, die von echten P R O G R A M M I E R E R N entwickelt wurde.

Coding ist schwer. Und schwer muss es sein. Es ist kein Zufall, dass echte P R O G R A M M I E R E R gewisse Sympathien für Kung-Fu Filme zeigen. Das Mindset von Perfektion, routinierter Übung und der Erweiterung seiner Fähigkeiten ist true Shaolin, und nur Anwärter, die den harten Weg gehen, werden in der Lage sein, die Technologie unserer Gesellschaft auf das nächste Level zu bringen.

Es gibt verschiedene Begriffe fĂĽr das, was ich meine, doch unter Web-Devs und Programmierern im Allgemeinen nennt man es das Hacker Mindset.

Falls du dich wunderst, warum ich im vorherigen Absatz von Programmierern schrieb, und nicht von echten P R O G R A M M I E R E R N? Weil das Auschreiben von P R O G R A M M I E R E R N aufwändiger zu tippen ist, und ich den Aufwand nur solchen zolle, die ihn sich verdient haben. Die 08/15 Programmierer, die nutzlose Wordpress-Plugins für lahme Mittelstandsfirmen entwickeln, verdienen die Betonung nicht. Die Erfinder von jQuery hingegen haben ganze Arbeit geleistet; dies sind P R O G R A M M I E R E R

ZurĂĽck zum Hacker-Mindset

Das Hacker Mindset ist gekennzeichnet von einer offensiven Neugier, einem gefährlichen Umgang mit Code, der Normen umgeht und das Ziel an oberste Stelle setzt. Ich meine nicht das Hacken von Kreditkarten oder Passwortgeschützten Verzeichnissen, sondern die Neugier an Technik, gepaart mit der geistigen Exzellenz, etwas wirklich cooles rauszuholen. Mag sein, dass ein Hacker-Mindset in der Praxis mit dem Gesetz in Konflikt kommt, doch wenn das Gesetz im Weg steht, ist das Gesetz selber Schuld.

Das Hacker-Mindset denkt nicht an Konsequenzen. Es operiert im Hier und Jetzt, und konzentriert sich frei von jedem Zweck fĂĽr die Stellschrauben einer Technologie, egal welche Technologie das ist. Und wenn dabei der Rechner angeschrien wird? Egal, so muss das sein, du Drecksmaschine machst jetzt was ich sage!

Die Loser von der Uni wollen davon nichts wissen. Sie wollen genau das, was du bis gerade eben auch wolltest: Anweisungen befolgen, sich durch Tutorials klicken, und am Ende einen stinklangweiligen Job im Cubicle absitzen (GlĂĽckwunsch Neo). Ist dir nie klar geworden, dass die Entwicklung von Pirate Bay, Elastic Search oder WebGL mehr erfordert?

Das Hacker-Mindset ist idealistisch getrieben. Das Ziel ist, den ultimativen Code zu schreiben. Um dadurch die Augmentierung der Gesellschaft und sich selbst zu erfahren. Das Hacker-Mindset findet etwas neues heraus. Das Hacker-Mindset gräbt tiefer in die obskuren Bereiche, in die sich noch nie jemand getraut hat, arbeitet nah an den Einsen und Nullen, den HTMl-Headern und untersten Schichten des OSI-Modells.

Beispiel gefälligst??

Square ist dafür ein gutes Beispiel. Jack Dorsey und Jim McKelvey entwickelten einen Payment-Processing-Service, der über das Kopfhörer-Kabel abgewickelt wird, und nannten ihn Square. Die Idee, Zahlungsverkehr über Audiosignal abzuwickeln ist genau das, was das Hacker-Mindset ausmacht. Man kommt nicht auf derartige Ideen, indem man einfach nur Tutorials befolgt. Man muss tiefer schauen, um das Herzstück des Programmierens zu finden : Elektrische Signale, codiert in verschiedene Formate. Versteht man die Codierungen, versteht man die Möglichkeiten, jede Form von Traffic über jede Form von Infrastruktur zu transportieren. Das zu verstehen, ist ein müßiger Weg, doch es lohnt sich: Jack Dorsey’s Vermögen wird auf etwa 18 Milliarden Dollar geschätzt, und große Anteile daran nimmt sein Payment-Service Square. Wer weiß, vielleicht entwickelst du ja das nächste Square?

Der Weg zur Wahrheit

Ich möchte dir das Buch empfehlen, das unter Programmierern weithin als die schwarze Bibel des Hackens gilt. Autor des Buches ist Jon Erickson, ein echter Hacker. Einer dieser Hacker, die wissen, wie man den ARP-Cache eines Endgeräts manipuliert, um einen Man-in-the-Middle auszuführen. Du musst nicht das ganze Buch lesen. Um sich in die Denkweise eines Hackers hineinzuversetzen, reicht es aus, einzelne Kapitel zu lesen und Herrn Erickson dabei zuzusehen, wie er Betriebssysteme auseinandernimmt (es ist wunderschön).

Keine Programmierkenntnisse erforderlich (obwohl ich möchte, dass du das Programmieren so schnell wie möglich lernst, zum Beispiel mit meinen Super-Duper Javascript-Tutorials). Erickson verwendet C als seine primäre Programmiersprache. C mag in der Community veraltet erscheinen, wo Rust heute der letzte Schrei ist. Aber das Problem mit Rust ist, dass Rust sicher ist und ein Hacker nicht an sicheren Technologien interessiert ist. C war schon immer die einzige ECHTE Programmiersprache für echte P R O G R A M M E R und das wird auch so bleiben.

Probier es doch mal aus, hier ist der Amazon-Link. Oder willst du zurĂĽck zu den langweiligen Tutorials?

Updated: