paint-brush
Was die besten Entwickler von der Masse unterscheidet: 10 entscheidende Merkmalevon@trueseniordev
11,911 Lesungen
11,911 Lesungen

Was die besten Entwickler von der Masse unterscheidet: 10 entscheidende Merkmale

von TrueSeniorDev10m2023/05/01
Read on Terminal Reader
Read this story w/o Javascript

Zu lang; Lesen

Wir arbeiten hart daran, unsere technischen Fähigkeiten und Soft Skills zu verbessern. Aber wir betrachten unsere Charaktereigenschaften als selbstverständlich – als einen festen Teil dessen, wer wir sind. Diese Denkweise ist schädlich. Ihre Eigenschaften sind für eine erfolgreiche Karriere als Softwareentwickler noch wichtiger als Ihre Fähigkeiten. Und sie stehen unter Ihrer Kontrolle. Echte Senior-Entwickler erkennen das und entwickeln ihre Eigenschaften bewusst weiter. Das ist die Superkraft, die sie aus der Masse hervorhebt und ihre Karriere beschleunigt.
featured image - Was die besten Entwickler von der Masse unterscheidet: 10 entscheidende Merkmale
TrueSeniorDev HackerNoon profile picture
  • Wir arbeiten hart daran, unsere technischen Fähigkeiten und Soft Skills zu verbessern. Aber unsere Charaktereigenschaften, unsere Denkweise – wir halten das für selbstverständlich. Ein angeborener, fester Teil dessen, wer wir sind. Und so ließen wir es auf Autopilot laufen.


  • Diese Denkweise ist schädlich. Ihre Denkweise ist nicht nur entscheidend für eine erfolgreiche Karriere in der Softwareentwicklung (vielleicht sogar wichtiger als Ihre Fähigkeiten), sondern liegt auch in Ihrer Hand.


  • Echte Senior-Entwickler erkennen an, dass Charaktereigenschaften formbar sind, sind sich ihrer Denkweise bewusst und arbeiten bewusst daran. Das ist die Superkraft, die sie aus der Masse hervorhebt und ihre Karriere beschleunigt.


  • In diesem Beitrag bespreche ich die 10 wichtigsten Eigenschaften eines erfolgreichen Entwicklers, warum sie wichtig sind, und gebe ein paar Tipps, wie Sie sie gestalten können.

3 Dinge, die Sie brauchen, um als Softwareentwickler erfolgreich zu sein

Professionelle Softwareentwicklung ist eine komplexe Disziplin, die vielfältige Fähigkeiten erfordert, um erfolgreich zu sein. Wir können sie in drei Hauptkategorien einteilen:

Technische Fähigkeiten

Dies ist die offensichtlichste Gruppe. Um ein erfolgreicher Entwickler zu sein, müssen Sie Ihr Handwerk gut beherrschen: Programmiersprachen und Frameworks, Clean-Code-Prinzipien, Architektur, Tests, Debugging und so weiter. Sie müssen auch mit Ihren Tools vertraut sein: Versionskontrolle, Befehlszeile und IDE.


Mit technischen Fähigkeiten allein kommen Sie in einem professionellen, teambasierten Aufbau jedoch nicht weit. Deshalb brauchen Sie auch Soft Skills.

Soft Skills

Um an großen, kommerziellen Projekten arbeiten zu können, benötigen Sie solide Soft Skills: Teamarbeit, Kommunikation, Projektmanagement und -planung, Fernarbeit, Selbstorganisation, Lernen, persönliche Produktivität und Ähnliches.


Vielen von uns machen diese Fähigkeiten weniger Spaß als die technischen und daher vernachlässigen wir sie oft – so können sie bereits solide, professionelle Entwickler aus der Masse hervorheben. Aber zumindest erkennen wir sie an.


Es gibt jedoch auch eine dritte Kategorie, die ebenso wichtig ist, aber von fast allen, selbst den ansonsten guten Entwicklern, kaum wahrgenommen wird.

Denkweise

Die Denkweise ähnelt in gewisser Weise den Soft Skills, aber die „Fähigkeiten“, aus denen sie besteht, sind grundlegendere Kernmerkmale: Neugier, Geduld, Empathie, Mut, Anpassungsfähigkeit und so weiter.


Wir wissen, dass diese Eigenschaften in gewisser Weise wichtig für eine erfolgreiche Karriere in der Softwareentwicklung sind. Aber weil sie ein angeborener, fester Teil unserer Persönlichkeit zu sein scheinen, versuchen wir nicht, sie bewusst zu erlernen, so wie wir Projektmanagement oder persönliche Produktivitätstechniken erlernen.


Dies macht uns für einen großen und wichtigen Teil unserer Fähigkeiten blind und kann unseren Fortschritt stark beeinträchtigen.


[Eine noch umfassendere Perspektive zur Weiterentwicklung Ihrer Karriere als professioneller Entwickler finden Sie in meinem „Definitive Guide to Becoming a TRUE Senior Dev“ auf GitHub.]

Warum Blindheit gegenüber Ihrer eigenen Denkweise Ihre Karriere gefährden kann

Softwareentwicklung ist ein komplexes, manchmal frustrierendes und wahnsinnig schnelllebiges Feld. Um als Entwickler zu lernen, sich weiterzuentwickeln und relevant zu bleiben (und dabei nicht auszubrennen), ist eine bestimmte Mischung von Charaktereigenschaften erforderlich.


Gleichzeitig ist es ein 100-prozentiges Teamspiel. Einsame Hacker haben in der professionellen Softwareentwicklung keinen Platz, egal wie gut sie technisch sind. Und um in einem Team gut zu funktionieren, sind weitere, scheinbar gegensätzliche Eigenschaften erforderlich.


Mindset ist etwas anderes als Fähigkeiten. Das Verständnis der Prinzipien der agilen Entwicklung bedeutet nicht, anpassungsfähig und offen für häufige Veränderungen zu sein.


Und wenn man die Debugging-Techniken kennt, bedeutet das nicht, dass man die Neugier und Beharrlichkeit hat, das Problem tatsächlich mehrere Stunden lang zu verfolgen, ohne ausgebrannt oder entmutigt zu werden.


Auch wenn diese Eigenschaften unserer Persönlichkeit fest und angeboren erscheinen mögen, sind sie ebenso erlernbar wie Fähigkeiten.


Ohne zu verstehen, welche Eigenschaften für einen Programmierer entscheidend sind, und diese im Laufe der Zeit gezielt zu verfeinern, werden Sie nie Ihr volles Potenzial erreichen. Echte erfahrene Entwickler wissen das, sind sich ihrer Denkweise bewusst und arbeiten kontinuierlich daran, sie zu verbessern.


Dies ist das Unterscheidungsmerkmal, die Supermacht, die die besten Entwickler von der Masse unterscheidet.


Ok, aber welche Eigenschaften sind die wichtigsten? Lassen Sie uns etwas tiefer in die Details eintauchen.

10 Merkmale eines echten Senior-Entwicklers

1. Neugier

Wenn ich in einem Satz zusammenfassen müsste, worum es bei der Softwareentwicklung geht, würde ich sagen, dass es um Lernen geht. Sie müssen über die sich ständig weiterentwickelnden Technologien und Softwareentwicklungsprozesse auf dem Laufenden bleiben.


Sie müssen sich mit den tiefgreifenden Details komplexer Geschäftsbereiche vertraut machen (mehrere davon im Laufe Ihrer Karriere). Anforderungen analysieren und klären ist Lernen. Forschung ist Lernen.


Leistungsoptimierung und Debugging – mit anderen Worten, tief in das Innenleben des Codes einzudringen – sind ebenfalls eine Art Lernen.


Bei der Softwareentwicklung geht es auch darum, mit Menschen (und für Menschen) zu arbeiten.


Sie arbeiten in funktionsübergreifenden Teams mit einer vielfältigen Gruppe von Menschen mit unterschiedlichen Spezialisierungen und Hintergründen (heutzutage, im Zeitalter der Fernarbeit, höchstwahrscheinlich aus mehreren Ländern und Kulturen).


Sie müssen „Geschäft“ verstehen. Sie müssen die Schwachstellen und Probleme der Benutzer verstehen und lösen.


Ohne eine gesunde Portion Neugier wirst du bei all diesen Dingen nicht nur weniger effektiv sein, sondern auch ziemlich schnell ausbrennen.

2. Affinität zur Problemlösung

Softwareentwicklung ist ein riesiges Rätsel – eine unendliche Flut von Problemen, die es zu lösen gilt. Der Grund, warum Sie als Entwickler eingestellt werden, besteht darin, die Probleme Ihres Unternehmens und Ihrer Kunden zu lösen.


Dazu müssen Sie organisatorische Probleme (wie Sie als Team funktionieren, wie Sie Ihre Arbeit organisieren, welche Prozesse Sie verwenden) und technische Probleme (Logik, Architektur, Leistung usw.) lösen.


Diese Probleme bestehen aus noch kleineren, verschachtelten Problemen bis hin zu atomaren Problemen wie dem Entwurf und der Benennung einer bestimmten Funktion oder eines Komponententests.


Wenn es Ihnen keinen Spaß macht, solche Rätsel zu lösen, wenn Sie kein Talent dafür haben, Probleme aufzuschlüsseln und zu entwirren, wird Ihre Karriere in der Softwareentwicklung ein Kampf sein.

3. Geduld

Um ein echter Senior-Entwickler zu werden, bedarf es jahrelanger bewusster Übung. Unterwegs werden Sie auch viele Rückschläge erleben. Die Weiterentwicklung Ihrer Karriere ist lohnend, aber auch ein langsamer und manchmal schmerzhafter Prozess.


Um Spitzenleistungen zu erbringen und an die Spitze zu gelangen, müssen Sie zu lebenslangem Engagement bereit sein. Und das erfordert viel Geduld.


Geduld ist auch bei vielen Dingen rund um unseren Job von entscheidender Bedeutung: beim Umgang mit technischem Support, bei der Arbeit mit nicht sehr technikaffinen Benutzern und bei der Bewältigung organisatorischer Bürokratie. Außerdem ist es eine großartige Hilfe bei der Problemlösung.


Und ohne Geduld wird man in einer so schnelllebigen und sich ständig verändernden Branche wie der Technologiebranche nicht durchhalten können.

4. Körnung (genau in der richtigen Menge)

Softwareentwicklung erfordert viel Ausdauer. Jagd auf Käfer. Entschlüsselung schlecht dokumentierter APIs und Bibliotheken. Entwirrung von Legacy-Code. Leistungsengpässe aufspüren. Selbst wenn man einfach über einen längeren Zeitraum einen tiefen Fokus aufrechterhält.


Sie werden Schwierigkeiten haben, scheitern, stecken bleiben und oft frustriert sein – egal, wie alt Sie sind. Und Sie werden eine Menge Sand brauchen, um sich durchzuarbeiten, damit Sie nicht ausbrennen.


Sie müssen aber auch wissen, was die richtige Menge an Splitt ist. Was ist der Vorteil zwischen stunden- und tagelangem unproduktivem Kopfstoß gegen die Wand und der ständigen Störung Ihres Teams, indem Sie sofort Hilfe anfordern, wenn Sie auch nur auf die kleinste Unebenheit auf der Straße stoßen?

5. Emotionale Intelligenz

Bei der Softwareentwicklung stehen Menschen und Teams im Mittelpunkt. Sie arbeiten auf individueller Ebene sehr eng mit Ihren Kollegen zusammen: Koppeln Sie Programme, debuggen Sie gemeinsam und überprüfen Sie deren Code.


Sie arbeiten auch im Team mit ihnen zusammen: Brainstormen Sie, planen Sie und treffen Sie Entscheidungen als Gruppe. Und diese Zusammenarbeit ist chaotisch: Ihre Arbeit wird sich überschneiden oder in Konflikt geraten, und Sie werden unterschiedliche Meinungen haben.


Sie verhandeln Ihre Roadmap mit dem Management. Um ein großartiges Produkt zu entwickeln, müssen Sie sich schließlich in die Lage Ihrer Benutzer versetzen.


Darüber hinaus haben alle diese Menschen unterschiedliche Hintergründe, sowohl technische als auch nichttechnische. Sie sind leidenschaftlich. Sie haben starke Meinungen. Sie können manchmal schwierige Charaktere haben.


Und Ihr Erfolg als Entwickler hängt davon ab, wie gut Sie eine Beziehung zu ihnen aufbauen können. Ohne hohe emotionale Intelligenz wird es einfach unmöglich sein.

6. Fähigkeit, Ihr Ego unter Kontrolle zu halten

Softwareentwicklung (und die Arbeit im Team im Allgemeinen) ist ein Balanceakt. Einerseits werden Sie aufgrund Ihrer Fachkenntnisse eingestellt. Von Ihnen wird erwartet, dass Sie eine klare Meinung haben und weniger technisch versierte oder jüngere Leute anleiten.


Auf der anderen Seite arbeiten Sie mit ebenso erfahrenen und eigensinnigen Teamkollegen zusammen, die Ihren Standpunkt in Frage stellen und mit denen Sie Gruppenentscheidungen treffen müssen.


Ihr Ego wird dabei oft verletzt. Sie müssen in der Lage sein, es unter Kontrolle zu halten – aber ohne sich zurückzuziehen und loszulassen.


Sie müssen eine Meinung haben, aber kein Eiferer. Haben Sie einen starken Standpunkt, vertreten Sie ihn aber schwach; Seien Sie offen dafür, sich vom Gegenteil überzeugen zu lassen. Sie müssen bereit sein, Ihre Meinung zu verteidigen, aber auch wissen, wann Sie loslassen müssen, um kein herablassender, brillanter Idiot zu sein.


Sie müssen das Team, das Geschäft und die Kunden respektieren. Seien Sie in der Lage, anderer Meinung zu sein, sich aber zu verpflichten. Und nehmen Sie konstruktives (und sogar rein negatives) Feedback mit Würde entgegen. Andernfalls können Sie nicht effektiv im Team arbeiten.

7. Anpassungsfähigkeit

Alles in der Softwareentwicklung geht so schnell. Technologien verändern sich ständig. Neue Methoden werden immer beliebter. Unternehmen schwenken um.


Im Laufe Ihrer Karriere werden Sie auch Projekte, Teams, Unternehmen und Geschäftsbereiche wechseln. Selbst ein einzelnes Projekt ist ein ständiger Akt der Überprüfung und Anpassung (insbesondere bei agilen Ansätzen). Und auch Ihr Team wird sich ständig neu organisieren.


Die meisten Menschen reagieren allergisch auf Veränderungen. Veränderung ist schwer. Es ist unangenehm. Es ist stressig. Wenn Sie anpassungsfähig und offen für Veränderungen sind, werden Sie sich sofort von anderen abheben. Damit erklimmen Sie nicht nur die Spitze der Dienstaltersleiter, sondern können dort auch lange bleiben .

8. Zuverlässigkeit

Ich wiederhole es bis zum Überdruss, aber Softwareentwicklung ist ein Teamspiel. Ihre Kollegen, Ihr Vorgesetzter und Ihr Unternehmen – sie alle zählen darauf, dass Sie Ihren Beitrag leisten.


Niemand wird Sie jemals als echten Senior-Entwickler betrachten – unabhängig von Ihrer technischen Fachkenntnis –, wenn er sich nicht darauf verlassen kann, dass Sie sich um Ihre Arbeit kümmern und Ihre Versprechen einhalten, ohne dass ein Mikromanagement erforderlich ist.


Das bedeutet nicht, dass Sie niemals Fehler machen können. Es kommt zu Ausfällen. Und die besten Unternehmen sehen darin wertvolle Lernmöglichkeiten.


Um dies zu ermöglichen, müssen Sie jedoch in der Lage sein, einen fallengelassenen Ball aufzuheben, sich elegant zu erholen und darauf vertrauen zu können, dass Sie aus Ihrem Fehler lernen und ihn in Zukunft nicht wiederholen.

9. Pragmatismus

Professionelle Softwareentwicklung ist eine Kunst der Kompromisse. Sie müssen ständig Kompromisse zwischen Entwicklungsgeschwindigkeit und Qualität eingehen. Bringen Sie Neues und Vielversprechendes mit Bewährtem und Stabilem in Einklang.


Bewegen Sie sich auf einem schmalen Grat zwischen Under- und Over-Engineering.


Um in der professionellen Softwareentwicklung erfolgreich zu sein, muss man sehr pragmatisch vorgehen. Sie müssen verstehen, dass nichts schwarz und weiß ist und dass kein Prinzip oder Muster in jeder Situation gilt.


Sie müssen über ein ausgeprägtes Gespür für Kompromisse zwischen verschiedenen Ansätzen, Technologien und Lösungen verfügen. Fühlen Sie sich wohl, Abstriche zu machen, haben Sie aber ein gutes Gespür dafür, wie viel.

10. Positiver Ausblick

Ihr Leben als Programmierer besteht nicht nur aus Sonnenschein und Regenbögen. Sie werden auf nervige Kunden treffen. Stellen Sie sich engen Fristen gegenüber. Ihr Projekt wird möglicherweise abgebrochen. Möglicherweise sind Sie mit Ihrem Team oder Management nicht einverstanden, müssen sich aber trotzdem verpflichten und umsetzen.


Sie werden auch mit hässlichem Code arbeiten. (Ja, jede Codebasis hat gute und schlechte Teile, selbst bei Top-Unternehmen wie Google.)


Sie werden müde, frustriert und verärgert sein.


Wenn Sie zulassen, dass Negativität die Oberhand gewinnt, wenn Sie anfangen zu kritisieren und sich zu beschweren, demotivieren Sie nicht nur sich selbst, sondern zerstören auch die Moral Ihres Teams – was Ihre Karriere nicht sehr weit bringen wird.


Sie müssen auf das Positive ausgerichtet sein. Seien Sie optimistisch und fröhlich. Suchen Sie immer nach einem Silberstreif am Horizont. Seien Sie die Person, die ihr Team mobilisiert, schlechte Laune vertreibt und die Moral wiederherstellt. Dadurch werden Sie nicht nur wahrgenommen und befördert, sondern Ihre Karriere wird auch angenehmer und nachhaltiger.

Bonus: Ein paar Tipps, wie Sie Ihre Denkweise bewusst gestalten können

Natürlich können Fähigkeiten trainiert werden – sowohl weiche als auch technische. Sie können sowohl beim Debuggen als auch bei der Kommunikation besser werden. Aber was ist mit scheinbar angeborenen Eigenschaften wie Neugier oder einer positiven Einstellung? Kann man sich wirklich antrainieren, optimistischer oder neugieriger zu sein?


Ja, du kannst! Dies ist ein umfangreiches Thema, das mehrere Bücher wert ist („Mindset“ von Carol S. Dweck ist ein guter Ausgangspunkt). Aber lassen Sie mich kurz ein paar Tipps geben:


  • Erkennen Sie an, dass Ihre Denkweise nicht festgelegt ist und dass Ihre Eigenschaften formbar sind.


  • Bauen Sie Selbstbewusstsein auf. Beobachten Sie, wie Sie in verschiedenen Situationen reagieren. Versuchen Sie zu verstehen, was Sie auf eine bestimmte Weise auslöst (neugierig vs. gelangweilt, positiv vs. mürrisch, eifrig vs. defensiv).


  • Betrachten Sie Ihr Verhalten aus der Perspektive von ein oder zwei Tagen. War Ihre Meinung wirklich pragmatisch oder sprach Ihr Ego? Wie hätten Sie anders handeln können?


  • Im voraus vorbereiten. Planen Sie im Voraus, wie Sie sich das nächste Mal in einer ähnlichen Situation verhalten werden, und identifizieren Sie den richtigen Auslöser, der Sie zu gegebener Zeit an Ihren Plan erinnert.


  • Setzen Sie sich Situationen aus, in denen Sie die gewünschten Eigenschaften trainieren und stärken können. Suchen Sie aktiv nach solchen Möglichkeiten.


  • Konzentrieren Sie sich für einige Zeit auf ein einzelnes Merkmal. Dadurch wird es einfacher, Gelegenheiten zu finden, diese Eigenschaft auszuüben, und Ihr Selbstbewusstsein für diese Eigenschaft wird gestärkt.


  • Umformulieren. Seien Sie bewusst und überlegt, wie Sie mit sich selbst sprechen. Die Idee ist nicht dumm, sie ist überraschend. Dieses Schauern ist keine Angst, es ist Aufregung. Das Problem ist nicht frustrierend, es ist interessant.


  • Bitten Sie um Hilfe. Scheuen Sie sich nicht, Ihren Kollegen oder Vorgesetzten um Feedback zu bitten – oder sogar Ihr „Verantwortungspartner“ zu werden, der Ihr unerwünschtes Verhalten erkennt und darauf hinweist.


Ich ermutige Sie auch, etwas über kognitive Vorurteile und Gewohnheitsbildung zu lernen. Dies ist eine gut entwickelte Disziplin mit einem riesigen Wissensschatz und es macht ziemlich viel Spaß, sie zu erkunden.

Endeffekt

Wenn Sie ein echter Senior-Entwickler sein wollen, müssen Sie ein kompletter Entwickler sein. Sie müssen über die richtige Mischung aus technischen Fähigkeiten, Soft Skills und Charaktereigenschaften verfügen und können keinen Teil dieses Trios ignorieren.


Charaktereigenschaften sind der schwierigste Teil. Die meisten Entwickler vernachlässigen sie, weil sie sich ihrer entweder nicht bewusst sind, nicht wissen, welche wichtig sind, oder weil sie nicht glauben, dass sie formbar sind.


Aber wenn Sie diese fehlerhafte Denkweise überwinden können – wenn Sie Ihre Denkweise ändern können – können Sie sie in eine Supermacht verwandeln, die Ihre Karriere voranbringt und Sie wirklich hervorstechen lässt.