Je suis souvent étonné de voir comment peu certains de mes collègues le savent ou se soucient de leur métier. Quelque chose qui sans cesse me frustre, c'est que les gens ne veulent pas en savoir plus que nécessaire sur les langages de programmation qu'ils utilisent chaque jour.
De nombreux programmeurs semblent contenus à apprendre quelques pidgin sous-dialecte, et le bâton avec qui. S'ils voient un mot-clé ou à construire, qu'ils ne connaissent pas, ils vont se plaindre que le code est "difficile."
Que penseriez-vous d'un ingénieur civil qui a évité de calcul, parce qu'il avait "tous ceux délicat symboles mathématiques?"
Je ne dis pas que nous devons tous devenir des "langue des avocats." Mais si vous faites vos vivant en tant que programmeur, et la prétention d'être un utilisateur compétent de la langue X, puis je pense qu'au minimum, vous devriez savoir ce qui suit:
- les mots clés de la langue et de ce qu'ils font
- la validité de formes syntaxiques
- le fonctionnement de la mémoire, les fichiers et les autres ressources du système d'exploitation sont gérés
- où la langue officielle de la spécification et de la bibliothèque de référence pour la langue est
Le dernier est celui qui obtient vraiment moi. De nombreux programmeurs semblent n'avoir aucune idée qu'il y a un "cahier des charges" ou "standard" pour une langue donnée. J'ai encore à parler à des gens qui pensent que Microsoft a inventé le C++, et que si un programme ne compile pas sous VC6, il n'est pas valide d'un programme C++.
Les programmeurs de ces jours, il est facile quand il s'agit de l'obtention de spécifications. Nouveaux langages comme C#, Java, Python, Ruby, etc. tous ont leur documentation disponible gratuitement à partir du site web du commerçant. Les anciennes langues et les plates-formes ont souvent des normes contrôlées par des organismes de normalisation que la demande de paiement pour les specs, mais même cela ne devrait pas être un moyen de dissuasion: la norme C++ est disponible à partir de l'ISO pour 30 $(et pourquoi suis-je la seule personne que je connais qui a une copie?).
La programmation est assez dur, même lorsque vous faites la connaissance de la langue. Si vous ne le faites pas, je ne vois pas comment vous avez une chance.
De quoi faire le reste vous en pensez? Suis-je en droit, ou devrions-nous tous être contenu avec le niveau type de langage de programmation de l'expertise?
Mise à jour: Plusieurs commentaires ici. Merci. Un couple de personnes de frapper sur quelque chose que je n'avais pas pensé: Ce qui ne m'irrite n'est pas le manque de connaissances, mais le manque de curiosité et de volonté d'apprendre. Il semble que certaines personnes n'ont pas de temps à peaufiner leur art, mais ils ont beaucoup de temps à écrire beaucoup de code incorrect.
Je ne m'attends pas les gens à être en mesure de réciter une liste de mots-clés ou EBNF expressions, ou passer leur temps libre de la navigation à travers les specs, mais je ne m'attends à ce que quand ils voient un peu de code, ils doivent avoir une petite idée de ce qu'il fait.
Peu de gens ont une connaissance complète de tous les coins sombres de leur langue ou de la plate-forme, mais tout le monde devrait au moins savoir assez que quand ils voient quelque chose de familier, ils sauront comment faire pour obtenir toute l'information supplémentaire dont ils ont besoin pour comprendre. Il doit être vu comme une occasion d'apprendre quelque chose de nouveau, pas une occasion de se plaindre du "langage des avocats".