Ratgeber

Vorbereitung auf das Technical Interview? „Ich schreibe Crappy Code ohne jede Scham“

(Foto: Shutterstock)

Um sich auf den technischen Teil im Bewerbungsprozess auf eine Entwicklerposition vorzubereiten, empfiehlt ein Entwickler aus Facebooks Tech-Team in einem Thread auf Twitter eine ungewöhnliche Herangehensweise. Das sagt ein Lernexperte dazu.

Programmieren erfordert neben einer hohen Frustrationstoleranz logisches Denken und ausgeprägte Problemlösungsfähigkeiten. Um sich für ein sogenanntes Technical Interview – gemeint ist der Teil des Bewerbungsprozess, in dem Entwickler und Entwicklerinnen quasi auf Herz und Nieren auf ihre Programmierfähigkeiten geprüft werden – vorzubereiten, wird oft empfohlen, sich an gängigen Problemstellungen zu versuchen – ohne die Lösung zu googeln. Die Begründung: Sich selbst die Lösung zu erschließen, schult die eigene Problemlösungskompetenz – in sogenannten Whiteboard-Interviews habt ihr schließlich oft auch nicht die Möglichkeit, Google zu fragen. Potenziellen neuen Arbeitgebern geht es darum, zu sehen, wie ihr an ein solches Problem herangeht. Aaron Abramov – nicht zu verwechseln mit Dan Abramov – ist Entwickler bei Facebook. Zur Vorbereitung auf den Einstellungsprozess hat er eine andere Taktik gewählt, die sich im Wesentlichen wie folgt zusammenfassen lässt: Fällt ihm die Lösung nicht innerhalb einer Minute ein, googelt er sie.

„Keine Copypasta“ 🍝

Anstatt die Lösung dann einfach zu kopieren, tippt er sie allerdings händisch ab. Auf diese Weise könne er 20 bis 30 solcher Aufgaben täglich bearbeiten, schreibt er. Bei einer Anzahl von etwa 100 gelösten Aufgaben löscht Abramov seine Lösungen aus dem Übungsordner und beginnt von vorn. An die meisten der Lösungen erinnere er sich bereits aus dem ersten Durchgang, einige müsse er erneut googeln. Der Entwickler wiederholt dieses Vorgehen, bis er in der Lage ist, alle in dem Ordner befindlichen Aufgaben ohne Google zu lösen. Auf diese Weise schreibe er in relativ kurzer Zeit sehr viel Code; deutlich mehr als jemand, der versucht, auf eigene Faust ohne Hilfe des Internets zu coden.

Das bewirke zum einen, dass sich eine gewisse mechanische Routine beim Tippen der sich irgendwann wiederholenden Code-Strukturen einstelle, so Abramov. Zum anderen gewinne er so eine Vertrautheit mit der Programmiersprache, die es irgendwann ermögliche, „den for-Loop einfach hinzuschreiben, ohne groß zu überlegen, wie das geht“. Nach Bearbeitung von etwa 200 bis 300 solcher Programmier-Challenges stelle sich dann der Effekt ein, dass es eigentlich keine Aufgaben mehr gäbe, die ihn wirklich überraschten, schildert Abramov auf Twitter. Vielleicht gehe es dann im Einzelnen darum, Münzen innerhalb eines Arrays zu sortieren, anstelle von Gegenständen, die in einen Rucksack gepackt werden müssen, oder um negative Zahlen anstelle von positiven, am Ende sei das zugrundeliegende Prinzip aber dasselbe. Im Job selbst verfolgt Abramov offenbar einen ganzen ähnlichen Ansatz. Im selben Thread gibt er ganz offen zu: „Ich schreibe Crappy Code ohne jede Scham.“ 100 Iterationen später würde dann schon etwas Vernünftiges dabei herauskommen. Seit er sich von dem Gedanken verabschiedet habe, auf Anhieb perfekten Code liefern zu wollen, sei er sehr viel produktiver.

Das sagt der Bildungsexperte

André Niedostadek ist Professor für Wirtschafts-, Arbeits- und Sozialrecht an der Hochschule Harz in Halberstadt; er weiß, welche Rolle die Fähigkeit zum Finden einer geeigneten Strategie beim Lernen spielt. Programmieren sei eine Tätigkeit, bei der sowohl Kreativität, logisches Denkvermögen und eine gewisse Vertrautheit mit der betreffenden Programmiersprache gefordert seien. Es sei zwar richtig, dass, wer eigenständig zur Lösung eines Problems finde, gar keine andere Wahl habe, als eine Fragestellung in Gänze zu durchdringen. Abramov schreibt in seinem Thread,  um eine Aufgabe, deren Lösung ihm nicht sofort einfiele, zu vollenden, würde er ansonsten locker zwei bis drei Stunden benötigen. Zeit, die er zum Großteil damit verbringen würde, auf den Bildschirm zu starren und nachzudenken.

Lies auch: E-Learning: Ohne diese Fähigkeit wird es nicht klappen – laut Bildungsexperte

Logisches Denken, Routine und Kreativität

„Ein solches Vorgehen fordert und fördert zwar logische Denk- und Problemlösungsfähigkeiten und erfordert natürlich auch Kreativität.“ Routine im Schreiben von Code in der gewählten Programmiersprache gewinne man dadurch allerdings nicht. Auch Problemlösungskompetenzen werden unter anderem trainiert, indem man sich bereits vorhandene Problemlösungen aneigne und im Einzelfall dann entscheide, welche das richtige Tool zur Lösung des gestellten Problems sei, so Niedostadek. Abramovs erweiterter Abschreibe- und Auswendiglern-Ansatz, bei dem die mehrmalige Wiederholung und die schiere Menge der bearbeiteten Aufgaben schließlich bewirkt, dass Challenges ihn nicht überraschen können, decke diese beiden Punkte erfolgreich ab, sagt der Experte.

Lernen ist individuell

„Was mir besonders gut an dem Thread gefallen hat, ist, dass der Entwickler für sich ein ganz eigenes System entwickelt hat, sich die geforderten Kompetenzen anzueignen. Ob das für andere Programmierer genauso gut funktioniert, lässt sich so pauschal nicht sagen“, sagt Niedostadek. Am Ende komme es beim Lernen neben anderer Faktoren eben genau darauf an: „verschiedene Methoden zur Aneignung von Wissen und Kompetenzen auszuprobieren und für sich zu entscheiden, welche am besten funktioniert.“

Passend dazu:

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung