Anzeige
Anzeige
Ratgeber
Artikel merken

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

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.

3 Min. Lesezeit
Anzeige
Anzeige

(Foto: Shutterstock)

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“ 🍝

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.

Anzeige
Anzeige

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.“

Anzeige
Anzeige

Passend dazu:

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
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

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

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

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

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

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige