Wenn ich darüber nachdenke, mit wem ich als Programmierer zusammenarbeiten möchte, muss ich viel mehr an die nicht technischen Fähigkeiten als an die technischen denken. Alle Soft-Skills in diesem Beitrag tragen dazu bei guten Code zu schreiben und technische Projekte zu verbessern. Die meisten davon sind außerhalb einer Programmierkarriere auch sehr hilfreich. Hier soll es jedoch darum gehen, warum sie speziell für Programmierer nützlich sind.
1. Empathie
Um ein gutes neues Produkt zu „bauen“, musst du dich in die Lage der Benutzer versetzen können. Wie wird das Produkt verwendet? Welche Funktionen sind hilfreich? Wie kann dein Programm den Benutzern helfen ihr Leben zu verbessern? Und umgekehrt – wie könnte es ihnen schaden oder ihr Leben negativ beeinflussen? Was sind die ethischen Auswirkungen deiner App?
Einfühlungsvermögen ist für viele deiner zukünftigen Projekte unerlässlich. Wenn deine Programme z.B. nicht sicher sind, können die Informationen der Benutzer von Dritten negativ verwendet werden. Oder wenn deine App nicht gut zugänglich ist, begrenzt du so automatisch die Anzahl deiner Benutzer. Und wenn dein Programm langsam arbeitet oder hohe Bandbreiten benötigt, verlassen dich die Benutzer ganz schnell wieder und Personen in Gebieten mit langsamen Internet können gar nicht erst darauf zugreifen.
Empathie ist außerdem wichtig, um ein gutes Teammitglied oder Mentor zu sein. Kannst du dich in die Lage deines Managers oder eines anderen Entwicklers versetzen und überlegen, warum sie gewissen Entscheidungen treffen? Was kannst du tun, um ihnen zu helfen? Empathie hilft dir auf jeden Fall dabei ein besserer Teamkollege zu sein. Wenn du Arbeitgeber bist, dann kannst du mit Empathie und Verständnis deine Mitarbeiter definitiv länger halten.
Hab außerdem Geduld mit Programmierern, besonders mit denen, die neue Dinge lernen. Erinnere dich doch einmal daran, wie es für dich war, als du das Programmieren gelernt hast. Wahrscheinlich hast du dich ähnlich gefühlt. Unhöflich zu sein und den Fortschritt der Neulinge so zu verringern ist für alle schlecht und macht die Situation nur noch schwieriger.
2. Probleme lösen
Wenn ich Menschen Programmieren beibringe, sehe ich viel öfter, dass sie mit der Problemlösung zu kämpfen haben, anstatt mit dem Code selbst. Die Fähigkeit ein großes Problem in viele kleinere zu zerteilen und diese zuerst zu lösen erfordert viel Übung. Wenn du also gut im Probleme lösen bist, hast du beste Chancen ein guter Programmierer zu werden.
Für die meisten Probleme gibt es meist mehr als nur eine Lösung. Ein großer Teil der Arbeit als Softwareentwickler besteht darin, verschiedene Lösungen zu überdenken und die beste auszuwählen. Lässt sich eine Lösung schneller implementieren? Läuft das Programm effizienter? Oder wird es günstiger sein? All dies sind wichtige Fragen, bei denen man verschiedene Antworten abwägen muss.
3. Zusammenarbeit
In den meisten Fällen arbeitest du als Programmierer mit anderen Menschen zusammen. Du musst mit anderen Entwicklern, Geschäftsleuten, Managern, freien Mitarbeitern, Stakeholdern und unzählig anderen Personen gemeinsam arbeiten, selbst wenn du Freelancer bist. Wichtig ist dass du lernst, wie man mit verschiedenen Menschen und ihren Persönlichkeiten umgeht.
Für eine gute Zusammenarbeit sind viele Dinge zu beachten. Punkt 1 ist das Bewusstsein, dass eine Person nicht alles oder zumindest nicht alles gut kann. Unterschiedliche Menschen haben unterschiedliche Fähigkeiten, Sichtweisen und Lebenserfahrungen, die kombiniert immer stärker sind als alleine. Du musst nicht das gesamte Team alleine tragen oder für alle immer da sein. Jeder kann sein Bestes geben, wenn man anderen Menschen ebenso erlaubt ihren Beitrag zu leisten.
Bitte deine Kollegen um Hilfe und sei im Gegenzug bereit deine Hilfe anzubieten. Du musst nicht in allem Experte sein. Du kannst dich auch auf andere Menschen und ihre Expertise verlassen und um Hilfe bitten, um nicht zu lange steckenzubleiben. Außerdem hat es immer einen guten Lerneffekt, wenn man anderen etwas gut erklären kann. Das zeigt, dass du es wirklich gut verstehst.
Wenn du in einer Führungsposition bist, solltest du deinen Mitarbeitern Zeit für Mentoring und effektive Zusammenarbeit geben. Sprich außerdem mit den Menschen, anstatt über sie, und höre dir ihre Meinung und Ideen an. Wenn du aktiv zuhörst, wirst du deine Mitarbeiter motivieren auch in Zukunft wertvolle Ideen zu teilen und zu diskutieren. An einem guten Ansatz könnt ihr weiter gemeinsam arbeiten. Sobald du die großartigen Ideen deines Teams umgesetzt hast, solltest du die Leistung anerkennen. Nichts hat mich als Mitarbeiter unproduktiver gemacht als in einem Team zu arbeiten, wo Ideen ständig abgelehnt und unterbewertet wurden.
4. Kommunikation
Beim Zusammenarbeiten mit anderen Personen ist gute Kommunikation von entscheidender Bedeutung, ganz egal ob es sich dabei um Kollegen, Kunden, Projektmanager oder Mitarbeiter handelt. Gib immer aufrichtige Informationen über den aktuellen Stand des Projekts, sowie deine Meinung – ehrlich und respektvoll. Menschen sind von Natur aus weniger empfänglich für Rückmeldungen, wenn diese unhöflich oder nicht konstruktiv sind. Achte jedoch auf die feine Linie zwischen ehrlichen und beschönigten Aussagen, sollte es keine positive Entwicklung des Projekts geben.
Hier ein Beispiel aus dem echten (meinem) Leben: ein Blogleser schrieb mir eine ziemlich lange Mail, in dem er sich darüber beschwerte wie blöde meine Texte aufgrund meines Schreibstils klingen würden. Ich verwende meist eine lockere Sprache und achte nicht auf Schul-Grammatik. Mir ist es wichtiger, dass der Artikel spannend ist und den Leser bis zum Ende führt.
Der Verfasser der E-Mail wurde ziemlich ausfallend. Davon abgesehen meinte die Person, dass ich vermutlich noch mehr Leute fürs Programmiere begeistern könnte, wenn ich weniger Ausrufezeichen verwenden würde. Für diesen Kritikpunkt wäre ich viel empfänglicher gewesen, wenn die Person ihre Kritik konstruktiv und im richtigen Ton verfasst hätte.
Wenn die Dinge also einmal nicht gut laufen, dann solltest du das auch so kommunizieren. Sei ehrlich, wenn du eine Frist verschieben musst oder wenn etwas bei der Arbeit nicht gut läuft. Somit hast du eine viel bessere Chance etwas zu ändern und machst dein eigenes Arbeitsumfeld viel angenehmer.
5. Geduld
Die erste Person, mit der du beim Programmieren Geduld haben musst, bist du selbst. Programmieren lernen ist nicht einfach und manchmal musst du an schwierigen Problemen arbeiten und Fehler beheben. Wenn alles immer einfach ist, forderst du dich selber nicht heraus und wirst nicht wirklich besser als Programmierer. Arbeite mit Hartnäckigkeit an den Problemen und gib nicht auf, wenn es mal schwieriger wird.
Du solltest aber auch den richtigen Zeitpunkt kennen, um eine Pause einzulegen und später zum Problem zurückzukommen. Manchmal helfen Pausen sogar Probleme effizienter zu lösen, da du es vielleicht aus einem anderen Blickwinkel siehst, wenn du zurück kommst.
Mit anderen Menschen solltest du auch Geduld haben. Lernen kann immer eine Weile dauern und kein Mensch ist perfekt. Fehler machen und scheitern sind die wichtigsten Erfahrungen im Lernprozess. Berücksichtige das, anstatt eine Arbeitsumgebung zu schaffen, in der man sich unwohl fühlt. Behalte also immer im Hinterkopf, dass jeder Mensch mit einer unterschiedlichen Geschwindigkeit lernt.
6. Kreativität
Das Beste am Programmierer sein ist meiner Meinung nach, dass ich meine kreative Energie nutzen kann, um Dinge zu erschaffen, von denen andere Leute profitieren können. Es ist oft hilfreich quer zu denken, um wirklich coole Dinge zu kreieren.
Kreative Ideen sind wichtig, um neue Funktionen, Schnittstellen und Anwendungen zu entwickeln. Darüber hinaus erfordern viele Probleme Kreativität, um sie zu lösen. Da es oft mehr als nur eine richtige Lösung gibt, können kreative Lösungsansätze kombiniert werden und zur optimierten und besten Lösung führen.
7. Demut
Du kannst so viel von anderen Programmierern lernen – es gibt keine Person in der Welt des Codes, die über alles Bescheid weiß. Sei also selber auch empfänglich für konstruktive Kritik, anstatt in die Defensive zu gehen. Du kannst deine Fähigkeiten im Code schreiben nur durch Feedback verbessern – das führt dann zu Wachstum. Sei dir bewusst, dass du nicht immer Recht hast und sei für die Ideen anderer Menschen offen.
8. Selbstvertrauen
Sei zuversichtlich und vertraue in deine eigenen Fähigkeiten. Ich muss gestehen, dass ich zum Anfang meiner Programmier-Karriere das "Hochstapler-Syndrom" hatte. Das hat jedoch dazu geführt, dass ich mich mit sehr schwierigen Aufgaben befasst habe und jedes Feedback als motivierende Kritik ansah, um mich weiter zu verbessern. Doch mit jeder guten Kritik kamen trotzdem große Selbstzweifel. Ich kann (und werde wahrscheinlich) einen eigenen Blogartikel dazu schreiben, aber kann dir jetzt schon mitgeben, dass es wirklich wichtig ist, an sich selbst und seine Fähigkeiten zu glauben!
Vertraue zunächst darauf, dass du Projekte übernehmen kannst. Nimm dabei nicht nur die einfachen Sachen an, stelle dich den schwierigeren Aufgaben. Versuche so viel wie möglich davon alleine zu lösen, bevor du um Hilfe bittest.
Du musst auch nicht sofort alles googeln, sondern probiere zuerst ein paar Dinge aus. Oder google nur Teile des Problems, anstatt alles auf einmal. Es schadet niemandem, wenn du zuerst ein paar Dinge ausprobierst und du wirst vielleicht sogar überrascht sein, wie viel du weißt du lösen kannst.
Ein weiterer Tipp ist es die Gewinne und positives Feedback immer im Auge zu behalten. Ich habe ein Dokument auf meinem Computer mit coolen Dingen, die ich programmiert habe und wirklich schönem Feedback meiner Kunden. An einem harten Tag oder wenn ich mal wieder von Selbstzweifeln geplagt bin, schaue ich mir dieses Dokument wieder an und normalerweise fühlt man sich gleich etwas besser.
9. Anpassungsfähigkeit
Die Programmierwelt ist immer noch Neuland und entwickelt sich schnell und ständig weiter. Sich anpassen zu können ist entscheidend. Wenn ein neues Framework, eine neue Bibliothek oder eine neue Sprache auf den Markt kommt und scheinbar die Kontrolle übernimmt, ist es wichtig, dass man sich damit auseinander setzt und gegebenenfalls lernt. Die IT Branche wäre ziemlich grausam, wenn alle ihren Code noch mit Fortran schreiben würden.
Wir Programmierer müssen uns weiterentwickeln und anpassen können, um Schritt zu halten. Außerdem ändern sich bei Projekten oft die Ziele oder Funktionen, insbesondere wenn man mit Kunden zusammenarbeitet. Neue Anfoderungen sollte man annehmen und im Rahmen des Möglichen umsetzen.
10. Beteiligung in der Community
Die Community ist unter Programmieren super wichtig – Konferenzen, Blogposts, soziale Medien oder Meet Ups helfen beim Lernen und Weiterentwickeln. Open Source Software und die dazu gehörenden Communities sind das Lebenselixier der IT Branche. Durch die Möglichkeit sich zu vernetzen und Kontakte zu knüpfen, kann man Erfahrungen viel schneller austauschen und sich so gegenseitig mit neuen Ideen und Möglichkeiten helfen.
Selbst wenn du introvertiert oder kein Fan von persönlichen Kontakten bist, gibt es eine Menge großartiger Online Communities, in denen du viel lernen kannst. Innerhalb von Unternehmen erbringt ein Team mit einem starken Zusammenhalt bessere Leistung.
Fazit
Die Fähigkeiten von denen ich hier spreche werden als "Soft Skills" bezeichnet. Sie helfen sowohl beim Schreiben von gutem Code als auch dabei ein guter Teamkollege zu sein. Soft Skills sind genauso wichtig wie das Wissen über Programmiersprachen, Frameworks oder Bibliotheken.
All diese Fähigkeiten sind essenziell, um als Programmierer und Mensch gut zu arbeiten. Davon abgesehen ist niemand perfekt und man hat immer Raum zum Wachsen. Versuche jeden Tag zu wachsen und in kleinen Schritten auch diese Soft Skills immer besser zu beherrschen.
- Programmiere echte Apps als Anfänger
- Keine Installation, sofort loslegen
- Komplett praxisbezogen
- Zugriff auf Online-Editor