Comment gérer le «coup dur de programmation»? [fermé]


18

Je suis donc sûr que tout le monde a rencontré cette personne à un moment ou à un autre, quelqu'un prend vent de votre projet ou de votre idée et montre initialement un certain intérêt. Vous arrivez à parler de certaines de vos méthodes et généralement à cette époque, elles interviennent en indiquant comment vous devez utiliser la méthode X à la place, ou utilisez simplement la bibliothèque Y. Mais pas comme une suggestion amicale, mais à la limite d'un commandement. Répétant souvent le même conseil encore et encore comme un perroquet trop zélé.

Personnellement, j'aime réinventer la roue lorsque j'apprends, ou même juste pour le plaisir, même si cela s'avère pire que ce qui a été fait auparavant. Mais cette personne ne peut apparemment pas imaginer recréer TOUT utilitaire à de telles fins, ou peut-être essayer quelque chose qui ne suit pas strictement les pratiques traditionnelles de POO, et ne se contentera de rien, sauf leur sens de la perfection, et donc poussera naturellement leurs critiques vers le bas de mes oreilles. . Pour couronner le tout, ils commencent finalement à justifier leurs conseils (retard) en énumérant toutes les choses incroyablement complexes qu'ils ont codées à eux seuls (généralement dans le sens de "croyez-moi, j'ai fait / utilisé le programme X pendant longtemps). , bla bla bla ").

Maintenant, je suis loin d'être un maître de la programmation, je ne suis probablement même pas si bon, et en tant que tel, j'apprécie les conseils et la critique, mais je pense que les conseils / critiques ont un temps et un lieu. Il y a aussi une grande différence entre être utile et narcissique. Dans le passé, j'aurais probablement utilisé un rejet de style George Carlin un peu plus fort, mais je ne pense plus que brûler des ponts soit la meilleure approche.

Avez-vous des conseils sur la façon de gérer ce type de flagellation verbale?


10
J'aime aussi «réinventer la roue». C'est une excellente façon de vraiment comprendre une nouvelle technologie. Ce qui, à son tour, vous aide avec les autres. De plus, très franchement, il est souvent aussi rapide de réinventer une roue que d'apprendre, d'entretenir et de modifier la roue mal codée et mal documentée de quelqu'un.
GrandmasterB

31
Réinventer les roues est idéal pour l'apprentissage et fortement recommandé. Cependant, pour le «vrai» code qui va faire quelque chose d'important, choisissez la solution éprouvée existante!
Peter Boughton

6
Parfois, en «réinventant la roue», vous finissez par «construire un meilleur piège à souris».
Rusty

2
Vous faites une roue de merde, comprenez qu'elle est merde et allez en trouver une fantastique faite par quelqu'un qui sait comment le faire.

1
@Rusty, le problème étant que c'est un piège à souris et non une roue;)
Matthew Whited

Réponses:


36

Ne les laissez pas simplement parler. Mettez-les devant un clavier. L'expression "ok, montre-moi" devrait le faire. D'après mon expérience, la plupart des coups durs ne sont pas si bons, et quand ils essaient de faire ce qu'ils disent, cela ne fonctionne pas et les choses deviennent vraiment silencieuses.


1
Je peux espérer. Honnêtement, ils sont probablement de meilleurs programmeurs que moi, mais j'ai vraiment du mal à apprendre ou à être dans la même pièce qu'un idiot social affichant ses capacités comme si c'était une licence pour être un d *** complet.
Peter G.

1
Ce n'est pas parce qu'ils sont meilleurs que vous que vous savez toujours de quoi ils parlent.
Conrad Frix

Je vais essayer votre méthode, la prochaine fois que cela se produira. Merci.
Peter G.

2
Pragmatique est le mot-clé.
rwong

1
@PeterG. comment ça s'est passé?

17

Je programme depuis trente ans. Je connais beaucoup de gens qui me considèrent comme un "maître de la programmation". Vous voulez connaître mon sale petit secret? Je suis à peine compétent dans certains domaines, mais c'est tout. Surtout je suce .

J'ai travaillé avec des génies incroyables au cours de ces années, pas avec le génie de l'actrice sur un podium qui bouillonne autour de sa co-star, mais avec le QI flamboyant, Genius avec un génie de type G majuscule. Zut, j'ai lu Knuth.

Si vous y travaillez dur et assez longtemps tôt ou tard, vous vous rendrez compte que tout ce que vous pouvez faire est vraiment insignifiant par rapport à l'ampleur et à la profondeur du talent. Je ne vois pas comment quelqu'un peut atteindre ce point et repartir avec autre chose que la plus profonde humilité.

Quiconque maîtrise son point de vue sur une autre personne et pense que sa voie est la bonne manière par-dessus tout n'est tout simplement pas un très bon programmeur. Prends ma parole.

Mon conseil, vous êtes sur la bonne voie et ne brûlez pas les ponts. Écoutez poliment, prenez ce que vous pouvez de bon, puis suivez votre propre chemin.


Je pense qu'il y a différentes façons de voir "être bon", parfois je compare le type de programmation que je fais à plus d'artisan / commerçant, je doute que je ferai jamais une percée en informatique ou inventerai un algorithme fou qui être une percée majeure, mais les gens qui font ce genre de chose s'ennuient souvent à créer des applications "régulières" car ils veulent toujours quelque chose de plus en plus difficile, de toute façon je divague mais je pense qu'il y a quelque chose à dire simplement pour être un solide programmeur dans quelques domaines car vous pouvez toujours être très précieux pour un employeur
programmx10

5

Comme la plupart des situations sociales, cela dépend du contexte.

Si cette personne est dans un rôle principal (le contexte étant probablement un lieu de travail), vous êtes en quelque sorte arrosé à moins que vous ne puissiez la convaincre d'utiliser des techniques différentes de celles qu'elle choisit. J'espère qu'ils sont ouverts aux critiques de leur équipe. Dans de nombreux cas, j'ai trouvé que présenter de bons arguments solides et fondés sur les raisons pour lesquelles votre approche particulière est meilleure pour le projet les gagnera souvent. S'ils continuent d'être têtus juste parce que "c'est comme ça que c'est censé être fait" (ou pour une autre raison stupide), ils finissent par avoir l'air mauvais de toute façon et vous avez l'air d'avoir au moins essayé d'être rationnel. Dans ce cas, je recommanderais également de consulter les carrières.so ...

Si cette personne est votre pair, vous pouvez à peu près simplement l'ignorer et passer à autre chose. Mieux serait de leur demander d'expliquer pourquoi ils apprécient une bibliothèque ou une approche particulière. Au cours de la discussion, ils peuvent se rendre compte que vos contraintes sont différentes de ce qu'elles prévoyaient (par exemple, vous n'avez pas besoin d'une "bibliothèque X ultra-rapide géniale" parce que vous n'avez pas besoin d'une vitesse de pédale au métal brute, ou je ne veux pas utiliser le "composant Y prédéfini" car vous visez à minimiser les dépendances). Vous pourriez également obtenir des informations précieuses sur certaines de leurs suggestions. Habituellement, dans des situations comme celles-ci, je finis par suivre ma propre voie, mais je vais aussi généralement glaner des informations utiles en examinant au moins l'approche / la technologie / la bibliothèque qu'ils préconisent.

Si cette personne est en dessous de vous, dites-lui de s'en aller :) Ok ... peut-être un peu plus constructif que ça (ne soyez pas le type même de personne avec qui vous essayez de faire affaire!), Et essayez à nouveau comprendre ce qui se passe et communiquer efficacement.

En fin de compte, si la personne est vraiment un coup dur qui ne veut pas faire de compromis, n'est pas ouverte d'esprit et n'a pas envie d'apprendre; alors tout ce que vous pouvez vraiment faire est de l'ignorer et d'essayer de tirer le meilleur parti de la situation.


Je ne suis probablement pas encore assez bon pour décrocher un emploi, donc ce sont tous mes camarades / personnes en ligne / etc. Je n'ai pas de problème à apprendre d'autres méthodes (je l'apprécie en fait), mais quand je dis à quelqu'un que je veux l'essayer, puis il rétorque en disant à quel point c'est horrible une idée, j'ai envie de la perdre. L'évitement est peut-être la meilleure approche.
Peter G.

2
Pour Nick - je n'ignorerais pas un pair pur et dur. Ils ont la capacité de se faufiler sous vous et de faire sauter vos initiatives. Les Blowhards ont également tendance à être politiques, il est donc préférable de ne jamais sous-estimer leur capacité à faire des dégâts, aussi stupides soient-ils.
luis.espinal

1
@luis "Les Blowhard ont également tendance à être politiques, il est donc préférable de ne jamais sous-estimer leur capacité à faire des dégâts", ... je vous donnerais +100 si je le pouvais. J'y suis allé, j'ai réglé ça.
Projet de loi

1
@Peter G - si vous êtes étudiant. Ignorez-les, arrêtez de converser. Ils évolueront dans le temps et vous aussi. Si vous êtes employé ... vous avez tout un tas de problèmes.
quick_now

5

Essayez de comprendre pourquoi il ressent le besoin de s'immiscer de cette façon.

  • A-t-il peur que vous fassiez la mauvaise chose et que vous perdiez de l'argent / du temps pour l'entreprise?
  • A-t-il de l'insécurité et peur d'être hors de propos?
  • Essaie-t-il d'être utile en suggérant une meilleure solution, mais sans succès?
  • Comprend-il mal votre objectif d'explorer l'espace de la solution?
  • Est-ce sa façon d'être amical?
  • Quelqu'un lui a-t-il dit que vous devriez toujours utiliser X, alors il suggère toujours X? Pourquoi lui ont-ils dit cela?
  • Est-il un vendeur pour la technologie X?

Ils ont tous des réponses différentes.

Avec une meilleure compréhension de votre «coup dur» - commencez par perdre cette étiquette pour lui - vous serez beaucoup plus en mesure de trouver un moyen de travailler ensemble.

Vous pourriez également rechercher pourquoi cela vous dérange autant. Pourquoi n'êtes-vous pas en mesure d'ignorer sa contribution ou de la dévier sans danger?


+1 pour avoir considéré qu'il pourrait ne pas réaliser l'effet qu'il a. La plupart des gens qui nous ennuient n'ont aucune idée de ce qu'ils font, et souvent, nous finissons par interpréter ce que quelqu'un dit en fonction de nos expériences, qui sont différentes des leurs, et nous avons donc attaché un sens à un comportement et mis en place des «règles» que personne ne connaît que nous.
Tim Claason

2

Passez en mode de programmation fonctionnelle. La plupart des durs à cuire connaissent Java et rien d'autre. Donc, dès que vous les frapperez avec quelque chose de bizarre comme Haskell ou Lisp ou même Ruby, ils vont s'arrêter net.


1

Je leur dirais de f ** k off (vous pouvez utiliser plus de verbiage diplomatique si vous le souhaitez.) Ou simplement les ignorer. Il n'y a pas beaucoup d'options au-delà de ce que j'ai dit. (Le meurtre pourrait fonctionner mais la légalité varie selon les régions.)


4
Je ne pense pas que ce soit la meilleure façon de gérer la situation ...
TheLQ

1
J'ai essayé l'approche moins que diplomatique, mais je n'aime pas le faire. Crier me fait me sentir encore plus mal. Plusieurs fois, j'ai eu envie de les frapper à travers un mur, mais ils sont généralement beaucoup plus gros que moi (shamu me vient à l'esprit). Et à mon physique de 6 pieds et demi de maïs, ce serait comme essayer d'attaquer une boule de bowling avec un cure-pipe.
Peter G.

@Peter - J'envisage de supprimer cela car ce n'est pas vraiment une réponse sérieuse de ma part.
ChaosPandion

1
C'est bon. De toute façon, la vie a besoin de plus de comédie / sarcasme.
Peter G.

Je ne pense pas avoir été poussé aussi loin sur le lieu de travail, mais c'est probablement votre seul choix avec un coup dur.
JeffO

1

Pourquoi vous souciez-vous de ce que dit cette personne? Sont-ils ton patron? On s'en fout? Chaque travail a un gars, espérons-le pas vous, qu'ils évitent, ou ils l'entendent descendre le couloir et ils esquivent. Ils ne l'aiment tout simplement pas. Ils ne savent peut-être même pas pourquoi. Mais c'est comme ça que le monde est. Soyez cordial et peu importe. On dirait que vous voulez votre livre de chair et le gifler un peu.


Difficile si vous travaillez pour quelqu'un comme ça.
quick_now

0

Il y avait un gars comme ça dans mon dernier lieu de travail. Non seulement il avait une opinion sur chacune des tâches discrètes sur lesquelles tout le monde travaillait, mais il roulait aussi et demandait "qu'est-ce que tu fais - je suis juste intéressé!" au moment où vous vous lanciez dans une tâche, plutôt que de vous consacrer à son propre travail auquel il avait été affecté. C'est une chose d' avoir une opinion sur quelque chose de temps en temps - nous avons chacun des opinions, et les équipes productives devraient toujours être ouvertes aux commentaires valides de leurs pairs - mais c'est une toute autre perspective quand une personne met à plusieurs reprises les autres développeurs hors de leur travail en leur demandant de arrêter ce qu'ils font et leur expliquer, dans l'espoir qu'ils puissent se développerune opinion au cours de la conversation qu'ils proposent d'avoir au lieu de laisser leurs collègues poursuivre leur travail.

Lorsque ce type particulier a essayé ce qui précède sur moi, sa ligne d'ouverture était "Que faites-vous?", À laquelle j'ai donné un bref aperçu poli de la tâche que je venais de commencer, au cas où il ne demanderait en fait que nonchalamment plutôt que de chercher un long et peu éclairant débat sur le sujet comme je le soupçonnais d'une expérience préalable douloureuse était son intention. En réponse à mon explication générale, il a ajouté: "Je ne comprends pas? ...", sur un ton qui laissait entendre que rien ne me ferait plus plaisir que d'arrêter ce que je faisais pour lui expliquer mes intentions plus en détail, Je viens de dire "Pourquoi auriez-vous besoin de comprendre?", Ce qui l'a stoppé net.

Tous les autres développeurs du bureau gloussèrent bruyamment alors qu'il retournait boudeur vers son siège, incapable de répondre à ma question. La leçon à retenir ici, si je peux me permettre d'en donner une, est que ces personnes sont toujours mieux traitées civilement et calmement, mais fermement. Si vous ne parvenez pas à entretenir leur interférence avec votre travail et à étouffer toutes les conversations qui menacent de prendre la teneur d'un argument avant même de commencer, ces personnes n'ont généralement nulle part où aller dans leur tentative de faire dérailler votre processus de pensée.


Je ne suis pas sûr que j'aime cette approche, tout le monde dans l'équipe devrait savoir ce que tout le monde est en train de faire - approche et tout le reste, sinon s'ils sont arrêtés pour une raison quelconque, personne ne peut les reprendre. De plus, dans la mesure du possible, toute l'équipe devrait apporter une contribution technique afin d'assurer la meilleure approche.
Orbling

Je ne suis pas d'accord - nous sommes des équipes de développement, pas The Borg. La conception par comité ne fonctionne pas, pas plus que le découpage et la modification des affectations comme si les développeurs n'étaient que des pièces interchangeables. Je suis certainement ouvert à d'autres personnes qui apportent respectueusement des points de vue et des opinions à mon travail, mais comme indiqué ci-dessus, je fais une distinction entre avoir une opinion existante et simplement renvoyer les autres personnes de leur travail en leur demandant d'arrêter ce qu'elles font et de brûler le temps de vous expliquer leurs idées. Certaines personnes aiment juste entendre le son de leur propre voix, et ce développeur particulier était dans cette catégorie.

@orbling, sonne comme une raison pour une réunion prévue pour moi!

@ Thorbjørn Ravn Andersen: Dans le monde moderne, vous avez assez souvent des équipes réparties sur les continents. Une réunion programmée peut être très difficile à réaliser, quelque chose à éviter dans la mesure du possible à tout prix.
Orbling

@Orbling, la réponse indiquait clairement que les développeurs se trouvaient au même emplacement physique. Cependant, même pour les équipes réparties, vous avez besoin de coordination pour éviter que les gens ne soient perturbés tout le temps.

-2

Frappez-les avec la ligne "Vous ne devriez jamais utiliser quelque chose que vous ne comprenez pas".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.