Sandeep Chouksey verrät seine Tipps für den Berufseinstieg als Programmierer

Tipps für den Berufseinstieg – Wie man ein guter Programmierer wird

Sandeep Chouksey

© Shutterstock.com / Olivier Le Moal

Es gibt Dinge, die man an der Universität studiert. Und es gibt Dinge, die man nur in der echten Welt lernen kann. Der Leiter der Engineering-Abteilung von Shutterstock, Sandeep Chouksey, verrät uns seine Tipps, wie und wo man die besten praktischen Erfahrungen sammelt, um ein wirklich guter Programmierer zu werden.

Während meiner gesamten Karriere als Softeware-Entwickler und Technologie-Leader habe ich Unternehmen dabei geholfen, Talente zu finden und weiter zu entwickeln. Dabei war eine immer wieder kehrende Beobachtung, wie unvorbereitet die meisten Uni-Absolventen sind, wenn sie ins Berufsleben starten. Auf dem Weg zu einem Bachelor-Abschluss werden Informatik-Studenten zwar stetig mit neuen Ideen konfrontiert. Ihnen wird auch beigebracht, wie man lernt. Um aber die in der realen Welt benötigten Skills zu erwerben, müssen Informatiker ihren eigenen Lehrplan entwerfen und die Kontrolle darüber übernehmen.

Praktische Erfahrung in der Software-Entwicklung sammeln

Praktika sind der beste Weg, um Erfahrungen in der realen Welt zu sammeln. Die handgreifliche Anwendung tatsächlich genutzter Technologien und die Verbindung echter Daten mit echten Kunden, trägt zu einer Lernerfahrung bei, die in einem Hörsaal gar nicht möglich ist. In den besten Praktika arbeiten Sie als Mitglied eines Teams daran, Kundenprobleme zu lösen. Das ist eine Erfahrung von unschätzbarem Wert, egal, welche Art von Unternehmen man schlussendlich als Arbeitgeber wählt oder welche Firma man gründen möchte.

Es gibt viele Dinge, die Sie in der dynamischen Umgebung eines Praktikums schnell erlernen können und die das Verständnis für die Thematik vergrößern. Agile Entwicklungsmethoden und die Verwendung einer Quellcode-Versions-Kontrolle sind zwei davon. Ebenso gehören Packaging, Distribution und Deployment von Software-Projekten dazu. Best Practices für das Schreiben von Unit-Tests, Integration-Tests und Load-Tests kann auch zu den vermittelten Lerninhalten gehören. Im Team werden Sie Erfahrungen in der Anwendung von Source Management Tools sammeln oder in einer Continuous-Deployment-Umgebung arbeiten und darüber hinaus mitbekommen, wie man mit Spezialisten aus anderen Fachgebieten kooperiert.

Wenn Sie das große strategische Ganze und alle dafür auszuführenden Schritte effektiv im Auge behalten können, haben Sie die Art von Erfahrung gesammelt, die heute in Unternehmen gefordert wird. Ein Praktikum kann Ihnen hierbei helfen. Diese Art von Erfahrung hilft Ihnen auch dabei, sich mit dem Lebenslauf von anderen Bewerbern abzuheben. Damit ist auch das Versprechen verbunden, dass der Übergang von der Uni ins Berufsleben leichter wird, einfach weil sie die Anlaufzeit im neuen Job enorm verkürzen können.

Sei Teil der Community

Konzentrieren Sie sich auf eine Technologie, Sprache oder einen Technology Stack, der Ihr Interesse weckt und besuchen Sie die örtlichen Treffen der entsprechenden Community. So können sie einerseits ein Netzwerk aufbauen und andererseits mit verfolgen, wie sich verschiedene Technologien weiterentwickeln.

Ein anderer Weg, um Teil der Community zu werden und praktische Erfahrungen zu machen, ist die Beteiligung an einem Open Source Projekt. Dadurch sammeln Sie Erfahrungen im Teamwork, besonders während der Arbeit in weit verstreuten Teams. Zudem ist Ihre gesamte Arbeit dann öffentlich, was zukünftigen Arbeitgebern die Möglichkeit gibt, Ihren Code zu bewerten. Ich kann zwei großartige Projekte empfehlen, die in diesem Zusammenhang Struktur und Führung bieten können: Mozilla und der Google Summer of Code.

Tests schreiben und verstehen, was Coverage bedeutet

Gewöhnen Sie sich an, jedes mal Tests zu schreiben, wenn Sie Code schreiben. Für Aufgaben aus dem Studium sollten sie erst Unit Tests schreiben um den Code zu testen, den Sie schreiben werden. Dadurch wird sich zeigen, ob Ihre Ideen richtig sind, bevor Sie den Code schreiben. Schreiben Sie dann den Code. Gewöhnen Sie sich das früh an und es wird Ihr Leben als Informatiker stark vereinfachen.

Lernen Sie das Test-Framework für die von Ihnen gewählte Sprache zu nutzen, egal welche es ist. Während eines Vorstellungsgesprächs ist es wahrscheinlich, dass der Personal-Verantwortliche Ihnen ein Problem präsentieren und Sie nach der Lösung fragen wird. Um hier einen guten Eindruck zu machen, empfiehlt es sich, schriftlich oder zumindest mündlich darzulegen, wie Sie Ihre Lösung testen würden. Das ist eine einfache Methode, um im Auswahlprozess hervorzustechen.

Lernen Sie, Ihrem Code Profil zu geben

In der realen Welt werden Sie kaum mit Code arbeiten, der Ihnen die Möglichkeit zur Evaluation aller Methoden gibt, die alle relevanten Bibliotheken aufrufen. Es ist wichtig zu lernen, wie man Bottlenecks im Code findet, weil man als Informatiker einen Großteil seiner Zeit genau damit verbringt.

Ein Profiler lässt Ihre Anwendung laufen und erkennt „Hotspots“, die mehr Zeit brauchen um zu laufen, relativ zu den anderen Teilen des Codes gesehen. Es gibt Tools zum Profilen von Code für viele Sprachen. SQL-Queries können mit „explain“ analysiert werden oder mit von der Datenbank abhängigen Query-Analyse-Tools. Es gibt auch Tools, die die Auslastung end-to-end testen. Unabhängig vom Tool sollten Sie lernen, wie Profiler oder irgendeine Art von Analyzer funktionieren und wie die Ergebnisse ausgewertet werden.

Gewöhnen Sie sich an Unklarheiten

Im Geschäftsleben gibt es keine einfachen Antworten und keine eindeutigen Lösungen. Die einzige Lösung ist die, die Sie finden. Manchmal probieren Sie alles aus, was Sie können und kriegen es trotzdem nicht hin. So ist das Leben. Mit Unsicherheit umzugehen, ist eine der wichtigsten Fähigkeiten, die Informatiker entwickeln können.

Um zu sehen, ob Bewerber damit klar kommen, etwas wirklich nicht zu wissen, stelle ich offene und mehrdeutige Fragen. Eine Frage, die ich oft stelle, lautet: „Erklären Sie mir, wie der Browser funktioniert“. Mein Ziel ist es dabei, mehr Einblick in den Denkprozess der Bewerber zu bekommen. Zu anderen Gelegenheiten konzentriere ich mich auf Kunden-Beschwerden: „Wir haben einen Anruf bekommen, dem zufolge es bis zu 30 Sekunden dauert unsere Homepage zu laden. Was tun Sie und wie untersuchen Sie die Angelegenheit?“

Noch besser ist die Frage, die uns wirklich verraten hat wie potentielle Kandidaten denken: „Sie haben gerade einen Computer ans Netzwerk angeschlossen. Er verbindet sich nicht mit dem Internet. Was tun Sie?“. Es gibt keine richtige Antwort, aber egal, was der Kandidat gesagt hat, haben wir mit „Diese Lösung hat nicht funktioniert, der Computer ist nicht online“ geantwortet. Wenn der Bewerber Fragen zur Klärung gestellt hat, haben wir einen sehr allgemein gehaltenen Fall entworfen und den Fokus auf die Lösung des Hauptproblems gelegt. Ausdauer, ohne Frust – solche Bewerber sind schwer zu finden.

Alle Erfahrungen sind gute Erfahrungen

Ihre Karriere wird ein lebenslanger Lernprozess sein. Es besteht kein Zweifel daran, dass Sie einen Job finden werden – es geht immer nur darum, was Sie aus ihren Chancen machen. Mit einem starken Fundament, einem offenen Geist und robusten Werkzeugkasten können Sie in jeder Umgebung Erfolg haben und sich anpassen, während Technologien, Sprachen und Branchen sich verändern.

Aufmacherbild: One compass needle pointing the word career von Shutterstock.com / Urheberrecht: Olivier Le Moal

Geschrieben von
Sandeep Chouksey
Sandeep Chouksey
Sandeep Chouksey ist der Leiter der Engineering-Abteilung bei Shutterstock, einem global führenden Technologie-Konzern, der qualitative hochwertige, lizenzierte Bilder und Musik für Firmen, Marketing-Agenturen und Medien-Unternehmen anbietet. Sandeep konzentriert sich darauf, die Produkt-Qualität zu steigern, indem der die Produkt-Entwicklung durch die Erstellung von Self-Service-Tools und Frameworks beeinflusst, die im Entwicklungsprozess verwendet werden können.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: