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!
Réponses:
Je me considérerais comme faisant partie du groupe des systèmes en temps réel . Il y a certaines caractéristiques «Old School» mais avec moins de concentration sur CS, plus sur le matériel.
L'archétype:
la source
N'oubliez pas les programmeurs mainframe. Ils sont aussi une sous-culture.
la source
Je représente le contingent solitaire des Delphi Devs de moins de 30 ans. Notre caucus est petit, mais nos cœurs sont grands.
la source
Je suppose qu'il existe plusieurs cultures qui vivent en quelque sorte aux côtés plutôt que se battent et sont en quelque sorte transcendantes:
Veuillez noter que:
Je pense que je suis actuellement principalement Open Source avec une légère influence de Academia (passive).
la source
Je suis en quelque sorte dans le camp Alt.NET/old-school CS. Je travaille avec la technologie Microsoft (C #, etc.), mais je suis conscient qu'il y a tout un monde autour de moi, d'autres langages, algorithmes, frameworks, "stuff under the hood", etc. Pas parfait, évidemment, mais c'est un travail en cours.
la source
Je ne suis pas entièrement d'accord avec cette déclaration sur la sous-culture de la SEP: "Je ne vois pas de quoi il s'agit avec l'open-source et tout cela - d'ailleurs, qui a besoin de connaître une autre langue? En général, j'ai trouvé de tels endroits pour être 9-5 et assez corporate (porté par les chefs d'entreprise, pas les gens du logiciel). L'anti-thèse de la culture hacker. ". J'ai déjà travaillé dans deux boutiques .Net et l'environnement était en fait très semblable à un pirate. Nous avons utilisé de nombreux projets open source dans notre travail. Dans mon option, tout dépend du type de personnes avec lesquelles on travaille. S'ils sont de vrais développeurs, ils chercheront constamment des moyens de s'améliorer, de se diversifier. Les technologies qu'ils utilisent ne sont pas pertinentes.
N'oubliez pas la sous-culture de la méthodologie Agile qui intègre des développeurs de différents horizons.
la source
Je pense qu'il y aurait un compromis entre Old School CS et New School Web Developers .
Je me considère traditionnellement comme un "développeur Web". PHP et Java et les citoyens de première classe pour moi, ainsi que HTML / CSS correct, symétrique et valide . Jetez en SQL et vous avez un ensemble de compétences robuste et bien équilibré.
Déplacer New School vers Script Kiddies et renommer le développeur Web .
Script Kiddies - Les personnes ayant peu ou pas de connaissances «sous le capot» sur la langue. A tendance à rechercher des didacticiels sur Google avant de copier / coller aveuglément du code en place. Ne comprend généralement pas complètement la syntaxe de plusieurs langues.
la source
Les universitaires qui font des recherches à l'aide d'ordinateurs, pas des recherches sur les ordinateurs.
Ils:
- écrivent des logiciels qui peuvent consommer des quantités illimitées de temps CPU, espace mémoire et disque afin qu'ils se soucient (ou du moins essayer aux soins) de la performance, soit en utilisant des choses comme
-O3
,time
, profileurs, memcheck, et passent des heures plus ou moins changer le code au hasard pour obtenir une accélération ou appliquer inconsciemment des astuces mythiques à leurs scripts.- utilisez des nombres réels et sachez que c'est assez délicat pour qu'une science distincte nommée "numérique" puisse exister.
- utilisent souvent des langages de programmation / bibliothèques / programmes très spécifiques et en sont très fanatiques; les guerres de flammes sont courantes, principalement au sujet des performances.
- appeler leurs programmes "codes" pour souligner qu'ils ont une interface utilisateur tellement obscure que seuls leurs créateurs savent comment l'utiliser.
- fonctionne généralement sous Linux ou au moins utilise PuTTY pour ssh vers un poste de travail / cluster Linux.
la source
Je suis probablement une combinaison de personnes CS Old-school et de développeurs Web New-school : j'ai appris la programmation en écrivant des sites Web avec PHP, Javascript et SQL, et je fréquente maintenant l'université où tout se fait dans les invites de commande et Emacs sous UNIX.
la source
Décrivez-moi comme le gars de la vieille école. Mais je n'ai jamais bien fait LISP. Emacs? Non,
vi
etset -o vi
dans ma coquille pour moi merci.la source