Quelles sous-cultures de programmation / logiciels existent? Qu'est-ce qui les définit? À qui appartenez-vous? [fermé]

13

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!

limist
la source
1
'Lil' vague, mais semble intéressant.
Tour
6
Je pense que les réponses montrent une chose: la question essaie de tracer des lignes de démarcation claires là où il n'y en a vraiment pas. Nous avons affaire à environ 5 concepts orthogonaux, chacun un continuum, et essayons de diviser cet hyperplan en groupes discrets facilement identifiables. OMI, c'est une entreprise désespérée.
Jerry Coffin
3
@Jerry Coffin - oui, d'accord. Sans oublier que certaines réponses sont à la limite de l'offensive envers certaines «cultures», à mon humble avis. Cependant, ces réponses sont agréables dans la mesure où elles montrent ce que pensent aujourd'hui (les programmeurs? Ou au moins cette communauté) des autres communautés, qui font même partie de celle-ci (dans un petit pourcentage).
Tour
@JerryCoffin Eh bien monsieur, il y a des gens qui veulent utiliser ce mot "orthogonal" et ceux qui ne le font pas simplement parce qu'il a été populaire sur la pile au cours des dernières décennies ...
Erik Reppen

Réponses:

12

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:

  • Possède une connaissance approfondie de «C»
    • Possède une copie originale de K&R
    • Écrit dans d'autres langues comme s'il ne s'agissait que d'une syntaxe alternative pour «C»
  • Peut prédire la sortie de l'assembleur à partir de leur code.
  • Peut lire un schéma de circuit
  • Ne sait pas écrire du code sans faire une «optimisation prématurée».
  • Est assez à l'aise avec la ligne de commande.
AShelly
la source
Fascinant, merci. J'ai rencontré des gens des systèmes en temps réel, mais je n'ai pas travaillé dans un tel endroit, donc je n'ai pas essayé de caractériser la culture. Je pense que beaucoup d'entre nous programmeurs vous appelleraient "hard-core". :)
limist
1
Je pense que c'est comme n'importe quelle autre discipline - il y a les "rock stars" hard-core, et il y a les vieilles roches simples. (J'espère que je suis quelque part entre les deux)
AShelly
2
Je fais aussi partie de ce groupe. La plupart de mes collègues sont venus "ici" à partir d'une formation en ingénierie électronique, mais je suis "descendu" en tant que développeur de bases de données / applications. Je suis très à l'aise dans ce groupe maintenant, cependant, et parfois mon expérience différente peut apporter une perspective utile différente.
Vicky
1
De plus, c'est peut-être ma perception, mais j'ai l'impression que les femmes sont encore plus rares dans ce groupe que dans certains autres groupes.
Vicky
1
Wow - cela me décrit presque parfaitement, sauf que je ne lis pas seulement des schémas de circuits, je conçois aussi les circuits. A travaillé sur mon premier système embarqué (en PL / M-86) à la fin des années 1970.
tcrosley
6

N'oubliez pas les programmeurs mainframe. Ils sont aussi une sous-culture.

Toon Krijthe
la source
1
J'aimerais en savoir plus sur la culture du codeur mainframe; J'en ai rencontré très peu qui passent même beaucoup de temps avec les mainframes, sans parler de les coder régulièrement.
limist
1
Ce sont les personnes avec des coupes de cheveux respectables et ne se distinguent pas des autres personnes portant des costumes d'affaires. Ils aiment COBOL. Pour eux, il n'y a pas d'autre système qu'un système / 360.
oosterwal
5

Je représente le contingent solitaire des Delphi Devs de moins de 30 ans. Notre caucus est petit, mais nos cœurs sont grands.

Peter Turner
la source
Certains de mes collègues ont moins de 30 ans.
Toon Krijthe
2
Eh bien, dites-leur de commencer un échange de pile et nous pouvons parler des nouvelles fonctionnalités que nous demanderons à l'ancien Johnny Borland de mettre en œuvre après que vous serez mort ;-)
Peter Turner
4

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:

  • Culture Hacker / Open Source : partage de code, utilise le vrai nom ou non. Concentré probablement sur de petits outils qui résolvent un problème. Permet des hacks dans le programme. Langages: C , Lisp , C ++ , Python . Chevauche probablement avec les vôtres CS Old-school .
  • Universités : concentration sur les algorithmes et faire les choses de la bonne manière. Le vrai nom est must (il apparaît quand même sur papier). Langues: Java , Haskell , ( F # ?)
  • Corportat : concentration sur les solutions (probablement de tout). Si open source, donner le nom n'est pas nécessaire . Langages: Java , C # , VB.net , Ruby .
  • " Lycée ": ça marche si ça marche mais pas forcément. Concentration sur des noms comme "SuperProgram 1.0 pour Windows XP". (désolé - je n'ai pas trouvé un bon nom mais je veux dire les programmeurs qui ont commencé à maîtriser CS et ne sont pas bons dans ce domaine - du moins pour le moment). Langues: PHP , VB , Ruby
  • Développeurs Web New School : Comme ci-dessus.

Veuillez noter que:

  • il est possible de mélanger les cultures en organisations et en personne seule. En fait, c'est souvent le cas.
  • Les langages sont des EXEMPLES et il s'agit par exemple d'un groupe assez important de "hackers" travaillant sur C #. C'est plus un jeu d'associations que la vraie étude, alors s'il vous plaît ne soyez pas offensé (oui - je sais qu'il existe d'excellents programmes écrits en PHP avec de bonnes pratiques d'ingénierie, etc. mais il a tendance à être la première langue pour beaucoup de gens qui ne je ne sais pas par exemple ce qu'est XSS)
  • Je ne voulais offenser personne par son nom de lycée. Je voulais dire que c'est souvent la première étape de la programmation via cette culture (et je l'espère pas la dernière)
  • Edit: le milieu universitaire ne signifie pas que la personne est dans le milieu universitaire, mais être dans le milieu universitaire ne signifie pas que quelqu'un appartient au monde universitaire (bien qu'il soit un scientifique / chercheur brillant, etc.). Cela indique qu'il préfère les outils qui donnent une solution claire et évidemment correcte même si elle manque de performance / prend plus de temps / ... La culture d' entreprise similairen'est pas équivalente aux entreprises.

Je pense que je suis actuellement principalement Open Source avec une légère influence de Academia (passive).

Maciej Piechotka
la source
Je pensais juste au chevauchement important de la sous-culture moderne CS / academia et des programmeurs Haskell. Après avoir joué un peu avec Haskell, je peux voir pourquoi cela plaît à ceux qui ont une formation en sciences formelles (CS, mathématiques), et en effet, je trouve que Haskell aide à voir la programmation à un niveau supérieur.
limist
Uniquement Java et Haskell dans le monde universitaire? Qu'en est-il de Fortran, C, C ++, R, MATLAB, * sh + awk (oui, je connais de telles personnes), Mathematica, Python, LabVIEW? Haskell devrait également être probablement remplacé par "n'importe quel langage fonctionnel".
mbq
Ce sont des exemples. Exemples biaisés . Comme je l'ai noté, les langues ne sont PAS spécifiques à la culture. Veuillez également noter que la culture universitaire ne se limite pas au monde universitaire et que tous les universitaires ne doivent pas adopter la culture universitaire. Bien que je convienne que Fotran / C / C ++ / R / Matlab / ... sont utilisés dans le milieu universitaire, ils ne forment pas une association forte avec lui dans mon esprit. * sh + awk est définitivement non universitaire (en tant que culture - l'utilisateur peut travailler dans le milieu universitaire et être un scientifique brillant - c'est tout autre chose0.
Maciej Piechotka
1
Je pense que vous allez vers des universitaires en informatique.
mbq
2

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.

Adam Lear
la source
1
La foule Alt.NET est très certainement une sous-culture de programmation, et absolument distincte de la description limiste de la culture pilotée par Microsoft (qui ressemble plus à ce à quoi ressemblait cette culture il y a une décennie qu'à ce qu'elle est maintenant, pour moi).
Carson63000
2

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.

ysolik
la source
Oui, les gens Agiles sont une sous-culture sur eux-mêmes. Bon point re. le développeur contre l'outil, et bien sûr votre expérience pourrait très bien être différente de la mienne. De mon échantillonnage limité, je viens de découvrir que les outils ont un peu façonné les fabricants.
limist
J'ai travaillé dans une boutique MS (et je pourrais même être un fanboy) mais la mentalité que j'ai expérimentée est de "regarder d'abord MS, si c'est gratuit puis l'utiliser. Sinon, cherchez tout et tout ce qui est disponible pour combler le besoin" . "
Steven Evers
2

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.

Josh K
la source
2

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.

mbq
la source
1
Ouais, je suis aussi dans ce club. Cette liste est un bon début pour une description du physicien des hautes énergies typique (je veux dire, étudie les quarks, n'a pas eu trop de café) ou l'astronome travaillant avec les grands instruments actuels.
DarenW
1
Et, comme cette sous-culture se soucie beaucoup de l'efficacité pratique, reproductible et extrême, ils se soucient souvent peu de la plupart des choses qui se passent dans le monde de l'informatique, sauf si cela a à voir avec le traitement parallèle, les schémas de mise en cache intelligents, HPC et autres .
DarenW
@ DarenW: Que voulez-vous dire qu'ils se soucient peu du monde de l'informatique? Voulez-vous dire qu'ils ne se soucient pas des bonnes pratiques logicielles et autres? Parce que je ne serais pas d'accord. Soucieux de la performance, vous n'avez pas besoin de jeter de bons principes d'ingénierie logicielle.
n1ckp
1

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.

gablin
la source
0

Décrivez-moi comme le gars de la vieille école. Mais je n'ai jamais bien fait LISP. Emacs? Non, viet set -o vidans ma coquille pour moi merci.

Jé Queue
la source