Pour le monde extérieur, les programmeurs, les informaticiens, les ingénieurs logiciels et les développeurs peuvent tous se ressembler, mais c'est loin d'être le cas pour les personnes qui créent des logiciels pour vivre. Les capacités et les connaissances de n'importe quel programmeur peuvent varier très largement, ainsi que leurs outils (système d'exploitation, langue et oui, éditeur préféré), et cette diversité engendre de nombreuses sous-cultures dans les logiciels - comme les programmeurs qui utilisent activement Stack Overflow et ce site, contre beaucoup d'autres qui ne le font pas.
Je suis curieux d'entendre les autres sur quelles sous-cultures de logiciels ils ont rencontré, appartenu, admiré, détesté ou même créé. Pour commencer, j'ai rencontré:
- Entreprises et développeurs pilotés par Microsoft : l'intégralité de leur pile provient de Redmond, WA. Le courrier électronique est Outlook est un courrier électronique. Le Web est IE et IIS. Ils ont de gros classeurs de leur abonnement MS Developer Network pleins de plusieurs versions de VB, .net, Visual Studio, etc. Évite de travailler avec un shell / ligne de commande. Je ne vois pas de quoi il s'agit avec l'open-source et autres. Les entreprises axées sur les États membres ont tendance à être de 9 à 5 ans et à être assez institutionnelles (dirigées par des chefs d'entreprise et non par des informaticiens). De nos jours (étant donné la large disponibilité des outils non-MS), c'est l'antithèse de la culture des hackers.
- Les CS de la vieille école : ils connaissent souvent très bien Lisp et Unix; parfois, ils peuvent avoir écrit eux-mêmes un Lisp semi-populaire ou un utilitaire système. Peu ou pas de "génie logiciel" ne sont nouveaux pour eux, ni impressionnés par cela. Connaître les références, l'historique et les implications de niveau supérieur des langages de programmation comme Lisp, C, Prolog et Smalltalk. Peut être amer sur les résultats de l'IA des années 80 et 90. Ont tendance à être des utilisateurs d'Emacs. Peut taper des commandes shell multi-lignes sans cligner des yeux. Leurs conseils peuvent être cryptiques, mais contiennent de l'or une fois compris.
- Les développeurs Web de la nouvelle école : ont joué avec les ordinateurs et les jeux vidéo en grandissant, mais n'ont souvent vraiment commencé à programmer qu'à la fin des années 90 ou au début des années 2000. Confortable avec 1 à 1,5 script / langages dynamiques; pense que C et les langages en dehors de Ruby / Perl / Python sont inutiles / magiques. Peut avoir considéré HTML comme programmation initialement. A tendance à obtenir un Mac et à être fanatique / irrationnel à ce sujet. Utilisez des cadres plus que construisez-les. Souvent trop enthousiaste à propos de NoSQL et / ou Ruby On Rails.
- New-school CS : beaucoup de formation en statistiques, modèles bayésiens et inférence; ne dites pas «IA», dites «apprentissage automatique». Plus Java que Lisp, mais pourrait également être des programmeurs Haskell experts. Voir des succès majeurs dans le monde réel par des experts dans leur domaine (Google, finance / quants) les rend souvent (trop) confiants. Mais les mégadonnées, et leur traitement distribué, changent vraiment le monde.
Les exemples ci-dessus ne sont en aucun cas complets, corrects, orthogonaux ou objectifs. :) Juste ce que j'ai vu personnellement et fourni pour susciter une discussion et un aperçu de la question plus large. N'hésitez pas à être en désaccord!