Der größte Faktor, der mich davon abhält, ein herausragender Entwickler zu sein, ist mein Vertrauen in andere. Ich habe das Gefühl, dass ich zu viele Fragen stelle, weil ich die Konsequenzen fürchte, wenn ich alles kaputt mache und alle zurückhalte. Deshalb bin ich zu vorsichtig, wenn ich so viele Fragen stelle, dass ich die Antworten im Grunde nach genügend Fragen bekomme. Ich habe erkannt, dass das schlecht ist, aber ich möchte es aufhalten. Ein Teil davon ist, dass ich manchmal den Code einfach nicht kenne (entweder eine Branche, mit der ich noch nie gearbeitet habe, oder ein brandneues Produkt), aber ich möchte mich weniger auf andere verlassen. Vorab geht es bei diesen Fragen nicht um allgemeine Muster oder Sprachen: In der Regel dreht sich meine Frage darum, wie wir in unserem Unternehmen Code erstellen und wie wir die Dinge in unserem Ökosystem zum Laufen bringen. Ich möchte in der Lage sein, Brillen zu nehmen und mit ihnen zu rollen, ohne das Gefühl zu haben, bei jedem Schritt Hilfe zu benötigen. Ist das normal? Haben Sie das durchgemacht und wenn ja, wie sind Sie darüber hinweggekommen?
quelle
Antworten:
Ich sehe, dass einige neue Entwickler einen Job bekommen und sich sofort unzulänglich fühlen. Das habe ich schon früh in meiner Karriere gemacht. Ich denke, es gibt mindestens zwei Hauptprobleme, die die meisten Schlauen überwinden müssen: Zeitwahrnehmung und ihre eigenen natürlichen Fähigkeiten.
Zeitwahrnehmung
Kluge Köpfe sind es gewohnt, Probleme relativ schnell zu lösen. Ich erinnere mich, dass ich entsetzt war, als ich eine Stunde mit einem einzelnen Kalkülproblem verbringen musste. 60 Minuten für ein Problem aufzuwenden, ist nichts mehr. Diese Tage sind vorbei ... begrabe sie und verabschiede dich. Die Komplexität und Größe der meisten Software ist heutzutage ungeheuerlich. Die Leute verstehen nicht alle Werkzeuge, die sie benötigen, um die Dinge länger zu erledigen. Douglas Crockford, einer der wichtigsten Männer der JavaScript-Sprache, sagte:
"Misapplication of standard tools...is the new standard."
Es ist einfach nicht genug Zeit auf der Welt, um alle Entwicklerwerkzeuge zu erlernen.
Natürliche Fähigkeiten
Ihre Intelligenz, Ihre Fähigkeiten zur Problemlösung und Ihre natürlichen Fähigkeiten haben Sie in erster Linie in den gesamten Entwickler-Gig mit einbezogen. In diesem Bereich gibt es einfach keinen Platz für weniger. Also, was machen Sie mit 100.000 Zeilen Code, Sprachen und Frameworks, die Sie kaum kennen, Designmustern und Paradigmen, die die Leute auf Sie ausüben, Leute, die das meiste wie ihre Westentasche wissen, Kunden, die es gestern wollen, und ein Chef wer erwartet die welt von dir Freak out als Ihre natürliche Fähigkeit versagt.
Ja, das ist normal. Ich flippe immer noch mit einigen Sachen aus, die mir in die Quere kommen.
Was kann getan werden?
Es ist Zeit, diese natürlichen Fähigkeiten mit guter, altmodischer harter Arbeit zu verbessern. Arbeiten Sie daran, Probleme in kleinere Teile zu zerlegen. Und stellen Sie fest, dass diese Probleme im Gegensatz zu vielen Dingen, die Sie in der Vergangenheit getan haben, sehr viel Zeit in Anspruch nehmen, um gelöst zu werden. Geben Sie also nicht nach nur 15 Minuten Untersuchung eines komplexen Problems auf. Brechen Sie stattdessen die Probleme auf und hören Sie auf, auf die Uhr zu schauen. Nach einer Weile ist die Arbeit von 30 Minuten mit einem Problem nicht mehr das, was es früher war.
Selbstvertrauen spielt eine große Rolle bei der Fähigkeit zur Selbstverwaltung. Dies gilt auch für das Team, insbesondere für die erfahreneren Senioren. Es ist gut, vorsichtig zu sein, um Dinge nicht zu zerbrechen, aber das bedeutet nicht, dass Sie einen ständigen Strom von Fragen stellen müssen.
Verwenden Sie stattdessen die Quellcodeverwaltung. Solange Sie keine Änderung einchecken, können Sie das Hauptprodukt nicht beschädigen und andere Entwickler verärgern. Nehmen Sie außerdem Änderungen vor, die Sie verstehen und testen können, und stellen Sie sicher, dass Sie diese vor dem Einchecken gut testen.
Ich habe sogar ein kleines Testprojekt, mit dem ich einmalige, einfache Programme schreibe, damit ich mich nicht um alle Vorgänge in der Hauptanwendung kümmern muss.
Denken Sie schließlich daran, dass jede Entscheidung mit einem gewissen Maß an Geben und Nehmen verbunden ist. Es gibt keine Fortschritte, ohne auf irgendeiner Ebene Opfer zu bringen. Strebe nicht nach Perfektion, strebe nicht nach Ehrfurcht und achte auf deine Handlungen. Weil Sie immer bereit sein müssen, Kritik zu üben und Ihre Ideen zu erklären und warum Sie sie gemacht haben. Seien Sie stolz auf Ihre Entscheidungen. Auch wenn sie falsch liegen, gibt es viel zu lernen.
quelle
Das erste ist , keine Angst davor zu haben, Fragen zu stellen. Ich habe sogar erfahrene Architekten gesehen, die Fragen zum Code stellten. Es wird nicht erwartet, dass sie alles wissen. Von ihnen wird erwartet, dass sie genug wissen, um die Arbeit zu erledigen und den Rest herauszufinden.
Die wahrscheinlich beste Taktik wäre:
quelle
Haben Sie keine Angst, "Big Picture" -Fragen zu stellen
Früher habe ich versucht, die kleinste Frage zu finden, die ich stellen konnte, und trotzdem konnte ich meine Arbeit fortsetzen. Aus Angst, ich wäre inkompetent, wenn ich umfassende Fragen stelle, auf die alle anderen die Antwort zu wissen scheinen. Ich habe den Unterschied zwischen Unwissenheit und Inkompetenz nicht verstanden. Ignoranz bedeutet nur, dass Sie noch nichts gelernt haben, und ist vollkommen akzeptabel, solange es nicht andauert. Vorgeben, nicht unwissend zu sein, ist viel schlimmer.
Wenn Sie feststellen, dass die Antworten der Leute Sie nur so weit bringen, müssen Sie sie bitten, Ihnen das Fischen beizubringen, anstatt Ihnen einen anderen Fisch zu geben. Fragen Sie, wie Ihr Teil zum Ganzen passt. Wenn Ihre Frage so einfach zu sein scheint wie "Was ist SQL überhaupt?", Fragen Sie sie eher früher als später. Sie sehen jetzt vielleicht ein bisschen dumm aus, aber später werden Sie viel dummer aussehen.
Gönnen Sie sich eine Wartezeit
Stelle keine Fragen, sobald du sie hast. Geben Sie sich je nach Komplexität zwischen einer halben Stunde und einem Tag Zeit, um es selbst herauszufinden. Oft wirst du es selbst lösen. Wenn nicht, können Sie Ihrem Kollegen mitteilen, was nicht funktioniert hat, wodurch er Ihnen eine bessere Antwort geben kann.
Wenn Ihr Kollege keine klare Antwort kennt, achten Sie auch darauf, wie er darauf kommt. Oft brauchst du nicht so viel Hilfe, wie du denkst. Wenn ich keine Zeit für eine Frage habe, zeige ich jemandem oft in eine vage Richtung und sage ihm, dass ich nachverfolgt werde, wenn ich eine Minute Zeit habe, und sie haben es in der Regel gelöst, bis ich dort bin.
Wirf ein paar Zugluft weg
Haben Sie keine Angst, Code zu schreiben, der es nie in eine Veröffentlichung schafft. Je mehr Erfahrung Sie sammeln, desto eher können Sie feststellen, dass Sie den falschen Weg eingeschlagen haben, aber es kommt immer noch vor, dass Sie den falschen Weg eingeschlagen haben. Oft ist der Wert einer Lösung erst dann ersichtlich, wenn Sie zuerst gesehen haben, dass sie falsch funktioniert.
quelle
Selbstgenügsamkeit würde mit sich kommen
Wenn Sie häufig Fragen stellen, besteht die Gefahr, dass Ihnen beides fehlt.
Wenn Sie Ihre Domain, Technologie, Plattform oder Sprache ändern, sind Sie wieder auf dem ersten Platz (fast ohne Berücksichtigung Ihrer gesteigerten Fähigkeit, ähnliche Probleme und übertragbares Wissen anzugehen).
Keine Fragen zu stellen, wenn es wirklich gebraucht wird, würde viel wertvolle Produktionszeit verschwenden.
Es könnte zu Ihrem Vorteil sein, wenn Sie ein Wort über Ihre Vermutung über das Ausmaß des möglichen Schadens verlieren, wenn Sie es falsch machen. oder was Sie denken, könnte brechen, um eine tatsächliche Einschätzung Ihrer Annahmen zu erhalten. Oft können Sie Punkte und Winkel aufdecken, die Sie verpasst haben.
Vorsicht ist gut. Aber am besten bestimmen Sie die Art Ihrer Fragen. Es ist am besten, wenn Sie es auf Papier schreiben und seine Schwierigkeit / Würdigkeit untersuchen.
quelle
Ich würde sagen, Sie schauen sich die Dinge an, an denen Sie arbeiten, und fangen an, selbst Entscheidungen zu treffen (halten Sie sich natürlich an die Anwendungsspezifikationen). Inzwischen sollten Sie ein gutes Gefühl dafür haben, was eine weitreichende Veränderung und was eine einfache Veränderung ist. Beginnen Sie mit den einfachen. Wenn Sie denken, was Sie tun, ist richtig, tun Sie es.
Sie WILL Fehler machen und die sind von unschätzbarem Wert. Lernen Sie von ihnen alles, was Sie können, wenn sie passieren, denn sie werden Sie das nächste Mal besser machen.
Sobald Sie mit den kleineren Entscheidungen vertraut sind, treffen Sie die größeren. Sie müssen entscheiden, wie weit dies gehen soll, basierend auf Ihrem Projekt / Ihrer Umgebung / Ihrem Team.
Das ist die Seite, die Entscheidungen trifft. Das andere, was Sie tun müssen, ist, Ihr Gehirn weiter zu füttern, damit es Ihre Entscheidungen leiten kann. Folgen Sie Websites, die Ihre Technologie abdecken. Es gibt Online-Tutorials für fast alles, von einfachen bis hin zu bizarren Komplexen. Haben Sie keine Angst, Menschen zu fragen, warum sie bestimmte Entscheidungen treffen - als Informationssuchender, nicht um konfrontativ zu sein. Die meisten Menschen erklären gerne Dinge und man kann einiges daraus lernen.
Sobald Sie das technische Wissen haben, ist der Rest Weisheit und Vertrauen und die mit Erfahrung kommen.
quelle
Wenn ich ein Neuling war, der Fragen stellte, versuchte ich immer, mit den verfügbaren Tools eine teilweise Antwort auf die Sache zu bekommen. und wenn ich so weit kam wie ich konnte, würde ich genau herausfinden, wie ich meine Frage formulieren sollte, um so klar und prägnant wie möglich zu sein, unter der Annahme, dass die Person, zu der ich Hilfe suchte, beschäftigt war. Ich glaube, mit dieser Vorbereitung hat es niemanden gestört, ihnen Fragen zu stellen, und tatsächlich hatte ich den Eindruck, dass sie es genossen haben. Später, als ich Domain-Experte wurde, half ich gerne Menschen, die deutlich machten, dass sie meine Zeit respektierten.
Das andere, was ich getan habe, war, jeden Tag die Architektur des Systems durchzugehen. Andere Plakate haben kommentiert, was für ein massives Unterfangen moderne Systeme sind, wie schwer es ist, sich damit abzufinden. Also machte ich eine Tour durch den Code: Beginnen Sie an einem vernünftigen Einstiegspunkt, gehen Sie ihn durch, notieren Sie sich, wie er funktioniert, und stellen Sie Fragen, die ich manchmal für mich selbst beantworte, manchmal andere Leute nachfragen. Diese Art der übergreifenden Vertrautheit und Domänenkompetenz braucht Zeit, aber Sie können sie beschleunigen. und je mehr Sie tun, desto eher sind Sie in der von Ihnen gewünschten Weise autark.
quelle