Quand quelqu'un serait-il considéré comme un mauvais programmeur? [fermé]

57

Comment considéreriez-vous qu'un programmeur est mauvais dans ce qu'il fait?

Si possible ... Comment devrait-il s'améliorer?

Tom Wijsman
la source
3
Parce que cette personne n'accepte pas les réponses sur une page Web liée à la programmation. Je plaisante :-)
Daniel
1
@EvanKroske: Non, ce n'est pas correct. Un wiki de communauté a été créé pour permettre l'édition en collaboration de publications. Voir aussi: Notre méta-tag: community-wiki
Tamara Wijsman
Dans beaucoup de questions, il est impossible d'accepter une seule réponse. Voir aussi: Notre Méta - Recherche: accepter
Tamara Wijsman
Toutes les questions ne donnent pas une réponse qui résolve réellement le problème.
Loren Pechtel

Réponses:

134

Quand ils ne parviennent pas à apprendre de leurs erreurs et des examens par les pairs.

Nous sommes tous verts à un moment donné; Cependant, si vous ne vous améliorez pas ou n'essayez pas de vous améliorer, vous êtes un mauvais programmeur.

PSU_Kardi
la source
4
D'accord - vous devez avoir une boucle de rétroaction, apprendre toujours de vos erreurs.
Marcel Lamothe
1
@PUU bien dit. Comme tout métier, les programmeurs sont des artisans et ne sont pas parfaits, ils apprennent toujours, mais si vous ne tirez pas les leçons d'erreurs, vous n'améliorerez pas votre métier.
Chris
2
C'est une définition très large. ce n'est pas limité aux programmeurs. Cela s'applique aux scientifiques, aux cuisiniers, aux sportifs, aux traducteurs, aux concierges, aux photographes et à toutes les professions.
RegDwight
13
Tout le monde est un crétin au moins une fois par semaine.
MIA
@ RegDwight: et votre argument était ...?
SamB
125

Un programmeur qui ne sait pas ce qu'il ne sait pas et qui n'a aucun intérêt à le savoir.

Graviton
la source
16
Si je pouvais upvoter ce 100x, je le ferais. Un peu d'humilité et une soif d'apprendre compensent beaucoup à long terme.
William Pietri
1
+1 pour Ngu et William aussi. C'est le critère le plus typique d'un mauvais "programmeur".
fabrik
Que se passe-t-il lorsque vous savez que vous ne connaissez pas BEAUCOUP et que, tant que vous essayez, vous n'en saurez jamais plus?
Steven Evers
@snOrfus, vous trouvez un mentor pour vous apprendre ...
75

Un gros signe d'avertissement est s'il s'agit d'un programmeur "culte de la cargaison" - ce qui signifie qu'il fait des choses mais ne sait pas pourquoi il fait ces choses (c'est juste "magique"). Excellent article d'Eric Lippert ici .

De l'article:

les programmeurs qui comprennent ce que le code fait, mais pas comment il le fait.
Marcel Lamothe
la source
3
* et code dans cette technologie depuis un moment
Joe Phillips le
5
Ceci s’appliquerait à presque tous les programmeurs qui ont déjà développé du Web avec des frameworks tels que Java / Spring ou Ruby on Rails. Ces frameworks sont pleins de magie noire que les programmeurs normaux ne prennent généralement pas la peine de comprendre.
missingfaktor
3
@Missing Faktor - et par conséquent, il ne serait pas si inexact de dire que la plupart des programmeurs qui le font ne sont pas de grands programmeurs :)
seanmonstar
14
Encore une fois, il est irréaliste de supposer que les programmeurs doivent bien comprendre le fonctionnement interne du framework, de la machine virtuelle ou de tout ce sur quoi ils construisent du code. (Ou, en effet, les détails de toutes les couches d'abstraction ci-dessous, jusqu'à ce que le métal nu soit atteint.) Vous pouvez être un programmeur parfaitement bon et productif, même si vous ne connaissez que les parties les plus pertinentes.
Jonik
4
@Missing Faktor: ils pourraient ne pas comprendre les composants internes des bibliothèques et des frameworks qu'ils utilisent avec précision, mais ils devraient au moins savoir à quoi chaque élément de leur code est destiné: "snark the frobber", "car la documentation l'indique nécessaire pour préserver l'intégrité du continuum espace-temps ", etc.
SamB
45

Un gros problème pour moi, c’est quand ils vous posent, à vous ou aux autres programmeurs, des questions de développement qui montrent clairement qu’ils n’ont fait aucun effort pour s’en sortir par eux-mêmes.

Un corollaire est quand ils posent la même question de programmation plusieurs fois en indiquant qu'ils ne sont pas en train d'intérioriser les informations.

JohnFx
la source
Ah oui, j'ai travaillé avec lui. Le passé, heureusement.
Mike Woodhouse
1
Certains ne sont même pas capables de poser des questions correctes, vous demandant de "tout régler"
deltreme
21

Quand cela leur prend beaucoup de temps pour résoudre le problème de FizzBuzz.

EpsilonVector
la source
1
Je pense qu'il pourrait y avoir des débutants avec le potentiel d'être de bons programmeurs - qui ont des problèmes avec ça.
JD Isaacks
2
Les débutants conviennent si vous recherchez un programmeur junior que vous souhaitez transformer en un bon. Mais ce problème est tellement anodin qu'il ne faudrait pas une personne expérimentée pour écrire à tout moment.
Matt DiTrolio
8
Je dirais que cela ne devrait pas prendre beaucoup de temps à ceux qui ont terminé avec succès un cours de programmation pour débutants pour résoudre ce problème.
EpsilonVector
4
Si un débutant ne peut pas résoudre FizzBuzz, il ne devrait pas postuler pour des emplois en programmation. Si vous déclarez être capable de programmer (par exemple, en postulant pour un travail de programmation), vous devriez pouvoir résoudre FizzBuzz.
Chinmay Kanchi
1
La question de Stackoverflow sur FizzBuzz vaut bien un coup d’oeil. Découvrez la solution python qui n'utilise pas de division ni de module. stackoverflow.com/questions/437/…
Gordon
21

Les programmeurs qui refusent d'apprendre de nouvelles technologies / langages et insistent pour s'en tenir à ce qu'ils savent déjà.


Addendum: (en ajoutant ce que le tiret dit ci-dessous dans les commentaires)

Une extension de cela concerne les personnes qui connaissent un sous-ensemble des fonctionnalités de certaines technologies mais ne souhaitent pas en apprendre davantage. Langage de programmation, éditeur, autres outils ...

manquantes
la source
6
... et sans raison, devrais-je ajouter.
missingfaktor
18

Lorsqu'un membre de l'équipe est le développeur producteur négatif .

|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0

Cela signifie que le reste de votre équipe doit faire plus de travail à cause du mauvais développeur. NNPP

Danivovich
la source
1
Je suis d'accord - ces personnes peuvent être extrêmement dommageables pour leur équipe.
Marcel Lamothe
44
Hein ... J'ai supprimé 500 lignes de code redondant hier et je n'ai pas introduit de bugs. Métriques LOC considérées nocives?
Piskvor
5
La plupart des métriques sont affreuses et les métriques LOC sont généralement inutiles. Le point ici est qu'un mauvais programmeur est quelqu'un qui crée plus de travail pour l'équipe que ce qu'il a accompli.
danivovich
5
Les métriques LOC ne sont pas inutiles. Ils sont NOCIF. De plus, le comptage LOC est très difficile dans la plupart des langues modernes. Mais, la métrique n'est pas le point ici. C'est juste dire | Travailler pour créer | - | Un travail qui était faux | - | work to fix | ... c.-à-d. s'il vous a fallu 10 heures pour que vous passiez 6 heures à travailler sur quelque chose qui devait finalement être réparé et qui prenait 6 heures de plus pour le faire, vous êtes alors -2 heures. Le temps est vraiment ce que vous essayez de faire quand même.
MIA
1
Les métriques LOC sont un excellent moyen de mesurer le nombre d'endroits où les bogues doivent se cacher.
SamB
18

Quand ils produisent des choses qui font partie du Daily WTF de façon régulière.

Billy Oneal
la source
15

Quand ils savent qu'il y a de meilleures façons de faire les choses mais refusent quand même de les faire même quand le temps le permet.

JeffO
la source
Mais il pourrait y avoir des désaccords entre experts sur ce qui est "meilleur".
DarenW
@ DarenW - Je ne dirais pas que quelqu'un est un mauvais programmeur parce qu'il a pris parti pour un sujet controversé, mais lorsqu'il a un choix définitif en tête.
JeffO
15

Personnellement, je pense que tout programmeur qui peut consulter son propre code qu’il a écrit il ya un moment et ne pas trouver quelque chose qui ne va pas avec, n’est pas bon. "Un certain temps" peut évoluer avec l'expérience ... Je dirais entre quelques semaines et un an environ.

Daenyth
la source
5
Et s'ils ne trouvent rien qui cloche et que cela les inquiète?
SamB
1
Ou pire, ils ne peuvent rien trouver de mal et essayer de le réparer.
Toon Krijthe le
15

Ceux qui ignorent les avertissements sur leurs codes et ne se soucient que des erreurs.

Reigel
la source
14

Lorsque j'étais chef d'équipe dans un petit magasin, il fallait que plusieurs personnes me réassignent (ni moi ni mon supérieur hiérarchique direct ne disposions d'une capacité de résiliation sans une tonne de paperasserie et une pile de documents.) Ou de ne pas renouveler mon contrat. à la fin de l'engagement en cours. Certains des types énumérés ont également fonctionné pour d'autres chefs d'équipe, et ils ont à peu près le même point de vue. Ce qui a amené des gens dans la catégorie "Mauvais programmeur" de mon livre:

  1. Incalculable ou inexplicable dans le passé
    Lorsque le «programmeur» ne semble pas être en mesure d'absorber le nouveau système, le nouvel outil ou ce qui est en train d'être déployé, quelle que soit la manière dont la formation / l'éducation est effectuée. Doit répéter cette formation fréquemment.
    Quand le «programmeur» ne connaît que la technologie ou le paradigme de codage qu’il utilisait il ya 10 ou 15 ans. C'était assez bon alors, alors pourquoi devraient-ils changer?
  2. Cowboy coder
    La personne qui code en premier, sans plan. Le "programmeur" qui apporte des modifications non testées au code de production et / ou aux données "car nous devons le réparer maintenant" et est ensuite surpris lorsque le "correctif" échoue.
    Le cow-boy n’est pas non plus un joueur d’équipe. N'a pas besoin d'aucune équipe puante.
  3. La girouette-
    Ce « programmeur » est tombé amoureux de la « technologie du jour » et voit tout nouveau cadre, la langue, la méthodologie ou tout ce qui est nouveau et chaud comme
  4. Le "gros cerveau"
    Ce "programmeur" est tellement sûr de son talent et de ses capacités que des choses sont faites qui n'ont pas beaucoup de sens de projet. Par exemple, réécrire une bibliothèque standard "car elle est inefficace pour notre système" ou introduire des outils et des techniques ne convenant pas au problème à résoudre. Par exemple, introduire Lisp ou Forth dans un environnement mainframe.
  5. LOC a. Sandbagger
    Ce "programmeur" utilise l'obscurcissement et la mauvaise direction pour augmenter le a. LOC: Lignes de code payées. J'ai vu du code dans cette situation, page par page, écran après écran de la structure et de la logique en double, avec uniquement le nom des variables de paragraphe ou de contrôle modifiées pour augmenter le nombre de lignes.
  6. Indispensable Expert
    Le «programmeur» qui possède la connaissance du domaine pour résoudre les problèmes actuels, mais qui «sait» tout sur le sujet. En fait, s’ils devaient être renversés par un bus, l’ensemble de l’organisation s'effondrerait. { Observation: Ceux qui pensent qu’ils sont indispensables le sont généralement. (Quelqu'un a la source de cet aphorisme?)}
  7. The Pasta Chef
    Ce 'programmeur' est spécialisé dans le code spaghetti, agrémenté d'identifiants trop difficiles à suivre sans IDE implémenté dans la syntaxe. par exemple, IndexI1O0, Index1I0O, etc.
  8. Stagiaire d'été - Sous-type spécifique Walking Disaster
    Mon ancien magasin embauchait un certain nombre de stagiaires en fin de lycée ou d'université. Une fois, un ministère avait besoin d’une petite base de données pour suivre l’utilisation de certains équipements (elle utilisait maintenant dBase III). Le gars a codé tout l'été, mais cela n'a pas été fait quand l'université a commencé à l'automne. Il a eu une prolongation d'une semaine puis une deuxième semaine. À la fin de la deuxième semaine, je fus envoyé pour reprendre son projet et le ramener au développement de systèmes pour qu'il soit terminé. Il m'a montré ce qu'il avait fait, puis la partie inachevée. Ce qui a fonctionné avait bon goût des yeux, mais l'application étaitincomplet. Lorsque j'ai ouvert la nouvelle boîte de disquettes formatées pour obtenir des copies, il a dit "juste une seconde, laissez-moi supprimer mes fichiers de test ..." et avant que je puisse dire quoi que ce soit, il avait supprimé un tas de fichiers.
    En tant que type suspect, et trouvant que sa demande n'était presque rien d'autre que des bonbons à l'œil quand je suis rentré dans mon magasin, je suis retourné au département et ai sorti Norton et ai effacé les fichiers qu'il avait supprimés, en essayant de trouver une logique supplémentaire, même si incomplet.
    J'ai trouvé, pas une mauvaise logique, mais un mauvais comportement. L’imprimante connectée au PC qu’il utilisait était une imprimante à marguerite. Le jeu de caractères normalement monté était une variante suisse. La sortie des programmes supprimés donne un nom, une adresse, une date de naissance, des codes de lettre et un type de numéro d'identification. Le format et la mise en page m'ont dérangé. Toutes les dates de naissance de plusieurs personnes étaient à peine en âge de boire. La plupart des adresses n'étaient pas là, quand je les ai trouvées dans notre annuaire croisé. Quand j'ai montré les impressions à son superviseur, il m'a regardé et m'a dit: "Permis de conduire, tu ne trouves pas?" J'ai dit que je l'avais fait. Il a expliqué que c’était la raison pour laquelle il avait trouvé la pellicule transparente coupée à la poubelle près de la Xerox. Notre mauvais garçon avait fait des superpositions pour ajuster son âge et celui de ses amis sur leurs permis de conduire. Nous l'avons signalé aux autorités.pas payé pour ses deux dernières semaines.

Ce ne sont que quelques-uns des mauvais personnages avec lesquels j'ai dû travailler ....

/ s / BezantSoft

BezantSoft
la source
RE "Ceux qui pensent qu'ils sont indispensables sont généralement indispensables" me fait penser à en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
DaveDev
10

Incapable de s'adapter aux technologies à venir

Gopi
la source
10

Mis à part le manque évident de connaissances / capacités, un programmeur est un mauvais programmeur si son code est plus difficile à lire et / ou à maintenir qu'il ne devrait l'être.

Chinmay Kanchi
la source
1
Et le programmeur est vraiment mauvais quand il ne peut pas lire un code bien écrit :-)
Maniero
4
Ne serait-ce pas presque tout le monde? Je veux dire, le code n'est-il pas presque toujours plus difficile à lire et / ou à maintenir qu'il ne devrait l'être?
SamB
Nan. Le code est toujours plus facile à écrire qu'à lire. Mais j'ai dû maintenir un code très bien écrit qui réduise au maximum cette douleur.
Chinmay Kanchi
10

Quand personne d'autre ne peut lire son code. Peu importe à quel point vous êtes brillant. aucun programmeur n'est une île.

stevenvh
la source
Eh bien, s'il écrit en Unlambda, personne ne devrait pouvoir le lire.
SamB
En outre, lorsqu'un programmeur prend très peu de temps pour faire quelque chose au départ, puis beaucoup de temps pour personnaliser quelque chose. J'ai souvent vu cela se produire parce que le programmeur copie principalement du code (c'est pourquoi, au début, il est rapide), mais prend ensuite beaucoup de temps, car il est difficile (même pour les bons programmeurs) de le modifier à cause de l'absence d'intention. écrire un code personnalisable au début.
Sandeepan Nath
7

Quelqu'un qui ne fait pas attention aux détails et qui est toujours dans le mode "ça marche, alors je le laisse tranquille. Toutes les exceptions dans les journaux n'importent pas" en mode.

talonx
la source
7

Pour moi, il y a deux catégories de programmeurs: solo et équipe.

Les mauvais programmeurs solo sont

  • Ceux qui ont pris trop de temps pour faire la tâche simple.
  • Ceux qui ne peuvent pas rechercher par eux-mêmes ce qu'ils font.
  • Ceux qui vont oublier ce qui a été codé aujourd'hui dans quelques jours et ne peuvent pas très bien conserver leur propre base de code.
  • Ceux qui ne peuvent pas s'adapter aux exigences changent.

Les mauvais programmeurs d’équipe sont ceux qui tombent dans la catégorie des mauvais programmeurs solo, y compris

  • Ceux qui ne peuvent pas coordonner avec d'autres membres de l'équipe.
  • Ceux qui n'apprécient pas les critiques.
  • Ceux qui ne savent pas être utiles aux autres et comment tirer profit des autres membres de l'équipe.
  • Ceux qui ne peuvent pas écrire du code lisible.
  • Ceux qui ne commentent pas par souci de lisibilité pour les autres.
tia
la source
8
Je ne me souviens pas exactement comment j'ai mis en œuvre les choses que j'avais programmées la semaine dernière. Est-ce rare? J'avais l'impression que travailler avec une mémoire humaine finie n'était qu'un des défis de la programmation. D'où l'importance de structurer et de documenter le code afin que je n'ai pas besoin de me souvenir des détails.
James le
@ James S'il vous plaît excuser mon anglais;). Je veux dire que si un programmeur revient consulter son code quelques jours plus tard et n’a aucun indice, c’est un mauvais signe. Je ne me souviens pas non plus comment et ce que j'ai fait exactement il y a quelques jours, mais je suis sûr de ne pas me gratter la tête en regardant mon propre code et en disant «à quoi pensais-je?
tia
@James: Exactement, il devrait documenter son code pour qu'il n'ait pas oublié le fonctionnement de la moitié de celui-ci
SamB
4

Pas disposés à admettre qu'ils ne connaissent pas la réponse et / ou pas disposés à faire des recherches.

Si vous ne le savez pas, n'abandonnez pas - réfléchissez-y et faites-le.

Dean Higginbotham
la source
4

D'après mon expérience, un gros signe d'avertissement est quand ils ne commentent pas leurs hacks ...

Vous savez ce que je veux dire: quand vous êtes obligé de faire quelque chose de très difficile parce qu'il n'y a tout simplement pas de meilleure façon de le faire.

Les bons programmeurs détesteront le devoir de le faire et ajouteront des commentaires en ligne expliquant à quel point ils détestent utiliser ce genre de bidouille, mais ils n’ont pas le choix. Les mauvais programmeurs vont juste mettre le bidouillage et ne pas commenter.

Tables Bobby
la source
3

Calme évidemment lorsqu'un programmeur écrit BEAUCOUP de code. De très grandes fonctions, peut-être copier / coller des lignes ou des blocs de code, en utilisant beaucoup plus si nécessaire, etc. Cela peut être dû au fait que le programmeur ne connait pas une fonction standard pour faire ce qu'il veut, mais ce n'est pas le cas la plupart du temps.

utilisateur2528
la source
3

Être réprouvé montre la bonne façon de le faire et le fais toujours de manière facile.

DaveDev
la source
3

Je déplace ma réponse ici à partir d'un sujet en double fermé qui a demandé Pouvez-vous reconnaître si vous êtes un mauvais programmeur? L’autre sujet était en cours de fermeture alors que je composais ma réponse. Ma réponse aborde plus directement la question telle qu'elle a été formulée par l'autre demandeur et lira mieux si vous comprenez cela.

Soupir! Une partie de moi n'a pas voulu ajouter quelque chose à ce sujet déjà très chargé, mais l'autre a gagné! Pourquoi a-t-il gagné? pourquoi suis-je dérangé d'ajouter encore des mots à ce multilingue? Eh bien, parce que, dans une certaine mesure, mon opinion est peut-être légèrement différente de celle de nombreux commentateurs précédents.

Le binaire fonctionne très bien dans les ordinateurs: c'est '1' ou '0', "on" ou "off". Nous pouvons extraire et encoder beaucoup d'informations en utilisant ces deux états célèbres. Mais, cela ne marche pas aussi bien pour les affaires humaines: "bon" ou "mauvais", "sain" ou "fou", "bon" ou "mal", "intelligent" ou "stupide", "gras" ou "mince", "vivant" ou "mort?" Ce genre d’évaluations polarisées a toujours laissé l’être humain soucieux de ma part terriblement insatisfait. Quels que soient les schémas de mesure que je choisis d’appliquer, je trouve généralement que les réponses à ces contrastes aussi extrêmes se situent quelque part dans un continuum entre un tel pôle et l’autre, et non à l’une ou l’autre des extrémités.

Je lutte depuis un certain temps déjà avec cette tendance à la polarisation, et ma solution personnelle est qu’il me semble beaucoup plus utile d’appliquer trois mots à une telle évaluation: " dans quelle mesure!"

Donc, ma réponse à votre question est de vous suggérer de la reformuler et de vous poser la question suivante: "Dans quelle mesure suis-je un mauvais programmeur?" Ou encore mieux, demandez-le dans l'autre sens: "Dans quelle mesure suis-je un bon programmeur?" Si vous recherchez la vérité, vous vous situerez probablement quelque part dans un continuum entre être un "mauvais" programmeur et un "bon" programmeur. Ensuite, une fois que vous parvenez à vous situer approximativement sur ce chemin, vous pouvez probablement identifier un point un peu plus proche de la "bonne" fin - un point où vous souhaiteriez vous retrouver dans un proche avenir.

Si vous ne définissez pas ce point trop loin, vous pouvez probablement passer à l’arrière-train et commencer à le déplacer dans cette direction. Si vous parvenez à répéter plusieurs fois cet algorithme heuristique assez simple, vous risquez de vous retrouver trop occupé à programmer pour avoir à poser à nouveau cette question! Oh, et vous ferez probablement des progrès plus rapides si vous commencez à marteler du code sur un clavier aussi rapidement et aussi souvent que vous le pouvez; et, si vous faites une petite pause de temps en temps, lisez un code de haute qualité écrit par vos pairs! En ces jours de développement Open Source dynamique, vous ne manquerez pas de code gratuit et exquis pour apprendre!

Donc, je vous recommande fortement d'essayer mes trois petits mots, "dans quelle mesure", et de voir jusqu'où ils peuvent vous mener!

John Tobler
la source
2

Quelqu'un qui dit "ça ne peut pas être fait".

À mon avis, tout est une question de résolution de problème, l'outil devrait être beaucoup moins pertinent que de travailler réellement. Si je dois le résoudre en utilisant MS-Access ou un langage d'assemblage, c'est une question de temps et d'argent, pas une question de "Cela ne peut pas être fait"

Un signal d’avertissement est une focalisation excessive sur la manière académique et "correcte" de faire les choses, et pas assez sur le travail effectué.

Dan Williams
la source
2
Et quand il dit pourquoi cela peut être fait?
Maniero
1
Alors, que diriez-vous de résoudre un problème persistant? Cela peut-il être fait?
P Shved
2
Il est mauvais de rejeter quelque chose d’impossible si ce n’est pas le cas et inversement.
Randall Schulz
2
@ Randall Schulz: D'après ce que je peux dire de Craigslist, un programmeur de rock star est une personne qui gère tous les niveaux de développement (base de données, expérience utilisateur, déploiement, administrateur système et utilisateur) dans une agence de publicité pour un salaire nettement inférieur au salaire normal de une de ces choses. Ils les appellent des stars du rock, car après 60 heures par semaine, leur régime est semblable à celui de ceux qui voyagent dans une camionnette éconoline et doivent mettre leurs guitares en gage pour se nourrir.
Dan Monego
1
Oui, j'ai fait une généralisation générale :), mais ... c'était pour faire un point. "Mon opinion professionnelle est que cela ne devrait pas être fait", c'est mieux. Encore mieux "Qu'en est-il de résoudre le même problème d'une manière différente". Mon point est un bon programmeur devrait être centré sur la solution. "Cela ne peut pas être fait", sans offrir des options est très frustrant pour le client.
Dan Williams
2

S'il ne connaît que la syntaxe d'un langage mais ne connaît pas les concepts de base des algorithmes.

Chankey Pathak
la source
2

Quand ils font beaucoup de pontificats mais produisent très peu.

Gratzy
la source
2

! (intelligent et fait avancer les choses)

Nick Pierpoint
la source
== stupide ou incapable de faire quoi que ce soit ;-).
Toon Krijthe le
2

Ceux qui ne connaissent pas les principes tels que SOLID, DRY, OOP, etc. Il est important de bien comprendre les principes de la programmation et les fondements plutôt que de connaître des technologies spécifiques. Ceux qui ont une base solide pourront apprendre de nouveaux sujets facilement et produiront un meilleur code.

Giorgi
la source
2

Un programmeur intégré qui ne comprend pas très bien les interruptions ou le multitâche. Aussi les programmeurs qui doivent travailler avec des champs de bits mais ne saisissent pas les opérations logiques sur eux et le décalage.

tcrosley
la source
2

Un signal de reconnaissance immédiat est que quelqu'un dit: "Je ne comprends pas pourquoi cela ne fonctionne pas. J'ai tout bien fait."

Robert Rossney
la source
Suivi de près par "Je ne comprends pas pourquoi cela fonctionne, ce n'est pas correct."
Randall Schulz
Ouais, c'est l'ordinateur qui est stupide :)
Dan Williams
2

Une chose qui distingue un mauvais programmeur d’un programmeur débutant est son insistance obstinée à mettre en œuvre son système favori dans le langage et l’API dans lesquels ils travaillent.

Une fois, j’ai hérité d’un système dans lequel le développeur précédent avait ré-implémenté (en Java) un grand ensemble de l’API Ashton Tate DBase III + superposée à la bibliothèque d’accès dbf personnalisée. Aucune des infrastructures de collections Java n'a été utilisée.

C'était pour qu'il puisse écrire une application Java / swing qui ressemblait à une application DBase III + (ou éventuellement une clipper).

Les applications qu’il a écrites dans ce système comportaient des menus à barres lites et ouvraient un formulaire pleine fenêtre avec une rangée de boutons en bas lorsque vous sélectionniez l’option à barres lite. C'était comme une petite machine à remonter le temps dans les années 1980.

L’homme était clairement un développeur habile. Il en savait assez qu'il était capable d'écrire tout ce système lui-même dans les délais impartis pour ce projet. Il a également pu le réutiliser sur quelques autres systèmes internes.

Mais il était un programmeur horrible en ce sens que son code utilisait mal les fonctionnalités des systèmes sur lesquels il travaillait. Il était plus disposé à passer 3 mois sur une bibliothèque personnalisée d'avantages douteux que d'apprendre Java / Swing / SQL.

sal
la source