4 Dinge, die ich in meinem ersten Jahr als professioneller Programmierer gelernt habe

Dieser Essay richtet sich an alle, die sich entschieden haben, etwas später als die meisten ihrer Kollegen auf den Entwickler zu steigen. Vielleicht haben Sie gerade Ihre erste "index.html" -Datei erstellt und möchten wissen, wie professionelle Softwareentwicklung aussieht. Vielleicht haben Sie gerade Ihren ersten Job in der Webentwicklung erhalten. Vielleicht haben Sie sogar ein paar Jahre Erfahrung und überlegen, in eine höhere Position in Ihrem Unternehmen zu wechseln. Hier erzähle ich demütig einige Dinge, die ich in meinem ersten Jahr als selbstentwickelnder Programmierer gelernt habe, ohne eine formale Ausbildung in Informatik zu erhalten

Einstieg in die Welt der professionellen Softwareentwicklung ohne Ausbildung in einem relevanten Bereich ist nicht ganz einfach. Meine ersten Erfahrungen mit der Entwicklung einer Enterprise-Webanwendung hatte ich in meiner Rolle als Werkstudent in einer großen Anwaltskanzlei, für die ich während meines Studiums für Sozialanthropologie arbeitete. Irgendwann wurde ich gebeten, die Ergebnisse eines neuen Onboarding-Systems zu überwachen, das das interne IT-Team für neue Kunden entwickelte. Im Austausch mit einem QA-Manager habe ich die neue Anwendung monatelang getestet, bevor sie zur Veröffentlichung freigegeben werden konnte.

Als ich sah, was im Rahmen einer „modernen“ () Webanwendung möglich war, wurde mir klar, wie sehr es mir Spaß machen würde, wenn ich mich selbst auf dem Bildschirm bewegen könnte. Also begann ich nach Online-Kursen für Web-Entwicklung zu suchen, in Javascript-Tutorials zu blättern, herauszufinden, wie man mit jQuery Buttons bewegen kann und wie man einen einfachen Blog mit Ruby (on Rails) und meinem SPA-Framework AngularJs erstellt.

Ich hatte Glück und hatte die Chance, als Werkstudent bei einem lokalen Startup zu arbeiten. Das Unternehmen wollte gerade neue Frontend-Entwickler für die Weiterentwicklung ihrer Webanwendungen einstellen. Sie gaben mir die Chance, mich zu beweisen, und das tat ich auch. Auch ohne viel Arbeitserfahrung und umfangreiche technische Fähigkeiten wurde ich prompt als Vollzeit-Frontend-Entwickler eingestellt. Schließlich schlossen sich immer mehr Entwickler und Praktikanten dem Team an und mussten in unseren drei Kernprodukten organisiert werden. Der CTO, der zu diesem Zeitpunkt ein guter Freund von mir geworden war, fragte mich, ob ich mich wohl fühle, das Team für eines dieser Produkte als Leiter der Disziplinareinteilung zu leiten, und ich nahm dieses Angebot zuversichtlich an.

Zu diesem Zeitpunkt hatte ich eine gute Vorstellung davon, wie unsere Frontend-Anwendungen funktionierten, aber ich war weit davon entfernt, mich selbst als "erfahrenen" Webentwickler zu bezeichnen. Ich sprach mit dem CTO und er war überzeugt, dass es genauso wichtig ist, mit den Menschen zu sprechen und zu verstehen, was sie motiviert, als wenn man die inneren Abläufe eines Produkts von einem Unternehmen und von einer technischen Seite kennt.

Nach fast zwei Jahren in dieser Position habe ich eine Liste von Dingen zusammengestellt, die ich in meiner Rolle als Teamleiter gelernt habe, während ich kontinuierlich meine Fähigkeiten als professioneller Webentwickler verbessern möchte. Ich hoffe, es hilft oder motiviert Sie, eine Entscheidung zu treffen, wohin Sie als Nächstes gehen sollen!

# 1 Bei der Softwareentwicklung geht es nicht nur darum, eloquenten Code zu schreiben

Seit ich dem Team beigetreten bin, hatte ich den Produkten, die ich entwickeln und warten sollte, mehr als 150.000 Codezeilen hinzugefügt. Das hat Github mir wenigstens erzählt

Zwischen den Codierungssitzungen lernte ich jedoch, dass eine gute Schnittstelle zu Interessengruppen und Benutzern ebenso wichtig war. Ohne die Notwendigkeit eines Features zu verstehen, könnte ich meinen Kollegen eine Entwicklungsaufgabe nicht vollständig erklären. Die Stakeholder sind nicht immer perfekt und es kommt selten vor, dass sie Sie mit einer vollständig vorbereiteten User-Story kontaktieren. Daher ist es wichtig, dass Sie als Benutzeroberfläche in der Lage sind, zu verstehen, was sie von Ihrem Produkt benötigen, und es in ein umsetzbares Element in den Aufgabenlisten Ihrer Entwickler zu übersetzen.

Wenn Ihr Unternehmen keine dedizierten Designer oder Produktmanager beschäftigt, müssen Sie den Entwicklern möglicherweise die Möglichkeit geben, Features auf einer nicht technischen Ebene zu konzipieren. In beiden Fällen müssen Sie und Ihre Entwickler einen Weg finden, um Objektmodelle zu definieren und die passende Architektur für Ihr System zu wählen. Wenn Sie jedoch keine funktionale und zugängliche Schnittstelle erstellen können, profitieren Ihre Benutzer davon nicht.

Wenn Sie sich mit UI / UX-Themen vertraut machen und lernen, Ihr Produkt mit den Augen verschiedener Anwendertypen zu sehen, können Sie als Vorreiter Funktionsanfragen so vorbereiten, dass am Ende Geschäftswert entsteht.

# 2 Sie müssen nicht der beste Programmierer im Team sein, um einen guten Vorsprung zu haben

Als ich in das Unternehmen eintrat, hatte ich weniger als ein Jahr privat Webanwendungen entwickelt. Ich war definitiv auf einem Junior-Niveau und außerdem war ich das einzige Mitglied des Teams, das keinen Abschluss in Informatik gemacht hat. Tatsächlich hatte ich vor ein paar Jahren einen Bachelor-Abschluss in „Sozialanthropologie“ absolviert und wollte gerade meine Diplomarbeit für meinen Master-Abschluss auf demselben Gebiet abschließen. Nicht gerade eine technische Ausbildung im traditionellen Sinne. Mein Team bestand aus einem Vollzeit-Praktikanten, der gerade seinen Master in Informatik abschloss, und einem jungen Berufstätigen, der bereits seit vielen Jahren Software als Leidenschaft entwickelte. Es war eine riskante Entscheidung, mich zur Führungsmannschaft eines Teams zu ernennen, aber es stellte sich heraus, dass ich einige Fähigkeiten in die Position gebracht habe, die uns dabei geholfen haben, als Team sehr produktiv zu sein

Sich in die Lage einer Person versetzen zu können, ist ein wesentliches Talent, wenn Sie zwischen Stakeholdern und Entwicklern übersetzen müssen. Diese Fähigkeit kombiniert mit einem gewissen Gefühl von Empathie ermöglicht es Ihnen, ein Team auf sehr produktive Weise zu führen. Wenn Sie die Stärken eines Kollegen erkennen und deren Schwächen verstehen, können Sie sie effizient ergänzen. Wenn Sie zum Beispiel das Gefühl haben, dass sich jemand mit der Menge der Verantwortung, die ihm in einem bestimmten Projekt übertragen wurde, unwohl fühlt, können Sie ihn betreuen und sich unabhängiger machen. Zu verstehen, was Ihre Kollegen und Benutzer anregt und motiviert, ist ebenso wichtig wie zu verstehen, was sie frustriert.

Ein Lead zu sein bedeutet nicht, dass niemand Ihnen etwas beibringen kann…

Ich erinnere mich an ein Gespräch mit einem neu eingestellten Entwickler, der mich um Rat gefragt hat, wie ein Problem im Backend gelöst werden kann. Zu diesem Zeitpunkt arbeitete ich nur an den Frontends unserer Anwendungen und wusste nicht, wie ich helfen sollte. Trotzdem war sie überzeugt, dass ich als Lead auf jeden Fall einen besseren Weg als sie kennen würde, um das Problem zu lösen. Anstatt diese Welle zu reiten, gab ich zu, dass ich wahrscheinlich weniger talentiert war als sie, aber ich würde ihr gerne helfen, das Problem zu lösen, indem sie mir erklärte, was genau sie wollte. Am Ende haben wir es gemeinsam herausgefunden und beide haben unterwegs etwas gelernt.

# 3 Startups sind ein erstaunlicher Ort, um zu wachsen

Wenn Sie gerade erst mit Ihrer Karriere in der Softwareentwicklung beginnen, sind Startups ein fantastischer Einstieg. Je nach Produktkategorie können Sie sich einem kleinen Team von Entwicklern anschließen, das über ein breites Know-how verfügt und aus einer Leidenschaft für die Lösung komplexer Probleme und die Entwicklung fantastischer Produkte besteht.

In kleinen, miteinander verbundenen Teams kann die Unternehmenskultur in der Regel genauso wichtig sein wie die Qualifikation. Wenn Sie sich bemühen, zu wachsen und sich den Bemühungen um das Wachstum Ihres Unternehmens anzuschließen, werden Sie von den Talenten um Sie herum begeistert sein Sie lernen viel, wenn Sie mit Leuten aus verschiedenen Abteilungen sprechen, Ideen für Freizeitprojekte austauschen und an externen Veranstaltungen mit Ihren Kollegen teilnehmen. Die Menschen teilen gerne ihr Wissen. Es liegt vielleicht in Ihrer Verantwortung, einen Raum zu schaffen, in dem sie ihn mit Ihnen teilen können. Wichtig ist in diesem Zusammenhang, dass Sie nicht aufhören, Herausforderungen zu suchen. Höre nicht auf dich und andere herauszufordern.

Während Sie sich selbst herausfordern, können Sie sich Ziele setzen, z. B. in Ihrer Freizeit kleine Projekte entwickeln, einen neuen Rahmen oder die Programmiersprache verwenden, von der Ihnen Ihr Kollege während eines Bieres auf der Terrasse erzählt hat.

Während Sie andere herausfordern, können Sie versuchen, sich mit Ihren mehr "meinungsfähigen" Kollegen und Freunden zu streiten. Fragen Sie sie nach „Tabs vs. Leerzeichen“ und sagen Sie ihnen, dass nur „schlechte Programmierer ihren Code kommentieren, weil sie vergessen, was sie tun“. Eine Diskussion über „vim“ ist auch eine nette Belohnung für Ihre Mittagspause.

# 4 Humbleness zahlt sich immer aus

In vielen Karrierepfaden neigen die Menschen dazu, sich hinter einer Maske zu verstecken, bis sie es schaffen. Dies kann auf jeden Fall nützlich sein, wenn Sie versuchen, eine Idee zu verkaufen, aber Sie müssen immer wissen, wo Ihre Grenzen liegen. Ein guter Freund von mir sagt gerne: Wenn Sie Ihre Position für uneingeschränkte Entscheidungen nutzen, werden die Personen mit echter Qualifikation bald bemerken. Auf der anderen Seite, wenn Sie „real“ bleiben und Konflikte mit Ehrlichkeit und Vertrauen in Ihr Wissen angehen, werden Sie definitiv von Ihren erfahrenen Kollegen belohnt. Zuzugeben, dass Sie etwas nicht verstehen, ist eine gute Sache und wird Sie höchstwahrscheinlich schneller zu einer Lösung führen, als sich hinter einem Vorhang aus Fachbegriffen und oberflächlichem Wissen zu verstecken.

Wenn Sie mit sich selbst real sind und Ehrlichkeit und Transparenz als Führungsinstrument einsetzen, werden Ihre Kollegen Sie für die positiven Auswirkungen, die Sie in Ihrem Team haben, respektieren, während Sie gleichzeitig die Position einnehmen, die Ihnen gegeben wurde.

Dieser Essay war inspiriert von einem Gespräch, das ich mit einem guten Freund führte, der damals überlegte, wo er in seiner Karriere als Entwickler als nächstes vorgehen sollte. Das Schöne an der Kunst der professionellen Softwareentwicklung ist, dass Sie in verschiedene Richtungen gehen können. von einem Experten für die zugrunde liegende Technologie zu werden und sich als Programmierer auszeichnen, um in die Führung und Überwachung der umgebenden Prozesse der Schaffung erstaunlicher Produkte zu gehen, von denen die Welt profitieren kann.

Der Himmel ist die Grenze!