Wir haben alle wahrscheinlich jemanden wie diesen getroffen, diesen Entwickler, der nur weiß, dass seine Sprache die einzig wahre Sprache ist und nicht den Mund halten wird. Wie gehst du mit so jemandem um? Ich möchte niemanden beleidigen (zumal der Fanboy an meinem Arbeitsplatz der leitende Entwickler ist). Aber ich möchte in der Lage sein, meine eigene Wahl der Skriptsprache zu verwenden, wenn ich ein Einweg-Skript schreiben muss, das es nie in das Repository schafft und von dem niemand etwas weiß.
Gedanken, mit denen ich mich auseinandersetzen musste:
- Laugh it off - "Haha ja, vielleicht ist Sprache X ein bisschen einfacher, ich denke ich bin ein Masochist!"
- Machen Sie es mit - ich würde es wirklich vorziehen, dies zu vermeiden, da ich mir den Produktivitätsverlust, der mit dem Erlernen einer neuen Sprache verbunden ist, nicht leisten kann.
- Verstecke meine Sprache - Werde ein Schrankprogrammierer und verstecke meinen Monitor, wenn ich Skripte schreibe oder etwas automatisiere.
Was würden Sie für diese Situation vorschlagen?
programming-languages
teamwork
language-choice
Daniel Gratzer
quelle
quelle
Antworten:
Wenige Dinge kommen nicht in Frage.
Ich verstehe den Fan-Boy-Teil ein bisschen, weil ich mich von einer Seite manchmal ein bisschen wie ein Fan-Boy benehme, während ich meine wenigen Sprachen der Wahl schütze. Und ich habe mich auch mit anderen Fan-Boys beschäftigt, die versuchen, neue Sachen hereinzubringen.
Meine Sicht auf diese Situation ist wie folgt:
Es liegt daran, dass niemand weiß, wie man sichere und schnelle Software in einer unbekannten Sprache schreibt, und es hat alle Fallstricke, die Entwickler lernen müssen. Das blöde Skript muss über 20 Jahre unterstützt oder umgeschrieben werden. In 20 Jahren wechseln mindestens 50 Entwickler in einem durchschnittlichen Shop. Wenn jeder einzelne wenige ausgefallene Skripte in einer neuen Sprache schreibt, benötigen Sie 50 Sprachlaufzeiten, 50 verschiedene Expertisen im Team und die Codebasis enthält fehlerhaften Code in 50 Sprachen. Einige der Sprachen werden unter Windows oder Linux nicht mehr unterstützt. Und benötigt diesen nicht gepatchten, 10 Jahre alten, benutzerdefinierten Server, ohne verfügbare Ersatzteile, rund um die Uhr.
Außerdem möchte niemand wirklich tote Sprachen wie VB, Silverlight, D usw. unterstützen, wenn die Codebasis wahrscheinlich die Sprache selbst überlebt.
quelle
Entscheidet er, was Sie verwenden, basierend auf den Unternehmensrichtlinien? Appellieren Sie Ihren Fall an ihn; Wenn er sich immer noch dagegen entscheidet, halten Sie die Klappe und arbeiten Sie mit den Werkzeugen, die Ihr Chef Ihnen empfiehlt.
Du arbeitest dort, nicht spielst dort. Letztendlich liegt es nicht in Ihrer Hand.
Auch wenn er nicht Ihr Chef ist, würde ich hier alle Blickwinkel berücksichtigen. Würde es Ihnen gefallen, wenn er Fortran kennen würde und Sie eines Tages seinen gesamten Code geerbt hätten? Man müsste im Handumdrehen eine brandneue Sprache von Grund auf lernen , das ist fürchterlich stressig. Stellen Sie sich jetzt seine Seite vor, Sie könnten Ihre Skripte mit Cobol schreiben und er könnte Cobol nicht kennen.
Verwenden Sie etwas, das die Mehrheit Ihres Teams kennt.
quelle
Dies ist die einzig vernünftige Antwort. Sie haben hier eine großartige Gelegenheit.
Verwenden Sie die Kommentare des Senior-Programmierers, um Ihr Unternehmen zu ermutigen, für Zeit und / oder einen Kurs und / oder eine Zertifizierung zu zahlen, um die neue Sprache zu lernen. Worst-Case-Szenario: Die Zertifizierung und die Sprache verbessern Ihren Lebenslauf, Sie erhalten möglicherweise eine gute Empfehlung als Teamplayer, und Sie können den ganzen Weg zu einem besseren Job an einem anderen Ort lachen.
Ich habe aus jeder Sprache, die ich gelernt habe, wertvolle Erkenntnisse über das Programmieren gewonnen. Selbst die unpraktischste Sprache ( Husten XSLT- Husten ) hatte ihre Schwäche und war voller interessanter Lernmöglichkeiten (und bezahlte meine Rechnungen für mehrere Jahre). Ständiges Lernen ist einer der großen Vorteile eines Programmierers.
Alle coolen Projekte verwenden wahrscheinlich die Lieblingssprache des Senior-Entwicklers. Wenn Sie diese Sprache kennen, werden Sie in den Pool der Talente aufgenommen, die an diesen Projekten arbeiten können.
Jemand bezahlt Sie vermutlich dafür, bestimmte Arbeiten auf eine bestimmte Weise auszuführen. Jede andere Antwort ist wahrscheinlich insubordination und wird wahrscheinlich schlecht enden.
Der leitende Entwickler / Architekt wählt normalerweise die in einem Geschäft verwendete Primärsprache aus und stellt sicher, dass jeder diese Sprache verwendet. Auf diese Weise baut ein Unternehmen eine Wissensbasis für bestimmte Technologien auf, sodass ein Mitarbeiter (Sie) Urlaub machen kann und ein anderer Mitarbeiter Ihren Code abholen und reparieren kann, während Sie fort sind. Das Unternehmen kann auch relevante Schulungstalente einbringen, und die Personalabteilung weiß, nach welchen Schlagwörtern in den Lebensläufen zu suchen ist.
Indem Sie seine Sprache lernen und für die Arbeit verwenden, sammeln Sie das politische Kapital an, das Sie benötigen, um Ihre Lieblingssprache effektiv zu vertreten . Viele Unternehmen haben eine offizielle Infrastruktursprache und eine offizielle Skriptsprache für Berichte. Erstellen Sie eine Liste mit Vor- und Nachteilen, aus der hervorgeht, wo seine Sprache herausragend ist und wo Ihre Sprache am besten ist, und wo jede einzelne Sprache zu kurz kommt. Sie müssen diese Liste im Kontext einer bestimmten Anwendung aufbewahren, z. B. der Berichte, die Sie schreiben. Planen Sie eine Zeit mit ihm, um ihm die Liste privat und respektvoll zu zeigen und mit ihm zu diskutieren. Schreiben Sie seine Einwände auf, recherchieren Sie sie nach dem Treffen und planen Sie ein Folgetreffen, wenn Sie gute Gegenargumente haben.
Viel Glück!
quelle
Zeigen Sie, dass in einem bestimmten Kontext eine andere Sprache eine pragmatischere Wahl ist.
Wenn die Person eine Leidenschaft für C ++ hat und Sie an einem Webanwendungsprojekt arbeiten, ist dies nicht allzu schwierig. Auf die gleiche Weise neigen einige Kontexte sehr zur funktionalen Programmierung, und die Verwendung einer nicht funktionalen Sprache wäre nicht sehr weise.
Anmerkungen:
Vermeiden Sie Situationen, in denen Ihre und seine bevorzugte Sprache sehr ähnlich sind.
Zum Beispiel würde ich mir kaum einen Kontext vorstellen, in dem Java "besser" als C # oder C # "besser" als Java wäre.
Denken Sie daran, dass die Wahl einer Sprache sehr oft subjektiv ist und eher durch die Erfahrung eines Entwicklers als durch evidenzbasierte Elemente erklärt wird.
Wenn ich zum Beispiel gebeten werde, eine Anwendung für den Finanzsektor zu erstellen, verwende ich immer noch C # anstelle von Haskell, auch wenn ich Haskell für angemessener und aufregender halte. Der Grund für diese Wahl ist, dass ich jahrelange Erfahrung mit C # habe, aber wenn es um Haskell geht, habe ich nur ein paar Tutorials gelesen und sie nie professionell verwendet.
quelle
Die Antwort ist 2) Mach mit.
Es ist Win-Win-Win-Win. Genießen!
quelle
Die Antwort ist, Sie beschäftigen sich nicht damit. Das Streiten mit ihnen schleppt den Arguer nur auf ihre Ebene (wo sie dich mit Erfahrung schlagen) und ist letztendlich unkonstruktiv, weil sie engstirnig sind.
Ignorieren Sie alle Argumente, die sie für oder gegen ihre Sprache vorbringen, und entscheiden Sie sich selbst. Verwenden Sie die üblichen Techniken wie Augenkontakt vermeiden, monosylabisch antworten und sich einem neuen Thema zuwenden, wenn die Stille gewährleistet ist. Bilden Sie sie stattdessen so aus, dass sie die Person neben Ihnen nerven.
Die Herausforderung dabei ist, dass der Fanjunge die Sprache mit seiner Identität in Verbindung bringt und dass jede Negativität, die mit dieser Sprache verbunden ist, persönlich ist. Nicht angreifen oder verteidigen. Einfach ignorieren.
quelle
Nur sehr wenige Dinge bei einem Job sind wirklich wegwerfbare Skripte. Ich stelle sowieso viele solche Dinge in das Wiki oder in das Repository, falls sie noch einmal gebraucht werden.
Sogar Dinge, von denen ich denke, dass sie unter dem Level des Teilens liegen, fühlen sich meine Teamkollegen oft anders. Ich habe beispielsweise einen Regrep-Alias in meinem .profile. Es ist nur eine find-Anweisung mit einem Parameter, da ich auf diesem Server keinen Zugriff auf echtes rgrep habe. Ein Teamkollege hat Wind bekommen und wollte es im Wiki haben. Ja, die einzeilige Aussage. Offensichtlich hatten wir keine Debatte über die Implementierungssprache - es musste UNIX sein. Aber es unterstreicht die Notwendigkeit, Dinge zu tun, die andere im Team verstehen können.
Ein weiterer Grund ist, dass der leitende Entwickler möglicherweise einen Grund dafür hat, dass Sie diese Sprache nicht verwenden. Haben Sie gefragt?
Versuchen Sie vielleicht einmal, dasselbe Skript in beiden Sprachen zu erstellen, um zu zeigen, warum deins besser ist.
quelle
Sie sollten versuchen, zu beschlagen . Dies bedeutet, dass Sie mit allem, was der Fanboy sagt, einverstanden sind (ganz oder teilweise), aber Ihr eigenes Ding machen, sofern nicht ausdrücklich anders angewiesen.
quelle
Passiv-aggressive Optionen 1,3 führen zu mehr emotionaler Belastung, also gib mir eine 2) nimm es auf das Kinn.
Einige allgemeine Ratschläge für die Straße: 4) Wenn Sie Ihrem Senior nicht besser zuhören können, machen Sie Ihr eigenes Studium im Bereich Sprach- / Compiler-Design. Wähle eine Sprache und erfahre, welche Gedanken in sie geflossen sind. Was ist der Kompromiss zwischen Funktionen, Leistung und Ausdruckskraft. Welche anderen Möglichkeiten gibt es. Dies allein wird Ihnen unmenschliche Programmier-Superkräfte verleihen. Lerne sogar NBL , es wird riesig.
Sich durch Meinungsäußerungen zu behaupten, hemmt Produktivität und Kommunikation. Die Leute mögen denken, dem emotionalen Drang nachzugeben ist hilfreich, aber es ist nur eine Hilfe bei ihrer Unsicherheit.
Demütig und freundlich mit Ratschlägen umzugehen und sich zu verbessern, wird Wunder wirken, um Ihre Bauchgefühle auf technischer Ebene auszudrücken. Sie werden sich besser fühlen und die Dinge so sehen, wie sie sind, weil Sie in der Lage sind, zu argumentieren. Es ist schwer verrückt zu werden, wenn man Kritik in einen technischen Kontext verlagert.
quelle