Welche Programmier- / Software-Subkulturen gibt es? Was macht sie aus? Wem gehörst du an? [geschlossen]

13

Für die Außenwelt mögen sich Programmierer, Informatiker, Software-Ingenieure und Entwickler ähneln, aber das ist bei den Menschen, die Software für ihren Lebensunterhalt entwickeln, alles andere als der Fall. Die Fähigkeiten und Kenntnisse jedes einzelnen Programmierers sowie seine Tools (Betriebssystem, Sprache und ja, bevorzugter Editor) können sehr unterschiedlich sein, und diese Vielfalt führt zu vielen Subkulturen in der Software - wie z. B. Programmierern, die Stack Overflow und diese Site aktiv nutzen. im Vergleich zu vielen anderen, die dies nicht tun.

Ich bin neugierig, von anderen zu hören, welchen Software-Subkulturen sie begegnet sind, zu denen sie gehören, die sie bewundern, die sie nicht mögen oder die sie sogar erschaffen haben. Für den Anfang habe ich festgestellt:

  • Microsoft-basierte Unternehmen und Entwickler : Ihr gesamter Stack stammt aus Redmond, WA. E-Mail ist Outlook ist E-Mail. Das Web ist IE und IIS. Sie haben große Ordner ihres MS Developer Network-Abonnements, die mit mehreren Versionen von VB, .net, Visual Studio usw. gefüllt sind. Vermeidet die Arbeit mit einer Shell / Befehlszeile. Sehen Sie nicht, worum es bei Open Source und so geht. MS-zentrierte Unternehmen sind in der Regel 9-5 und eher korporativ (angetrieben von Geschäftsführern, nicht von Software-Mitarbeitern). Heutzutage (angesichts der breiten Verfügbarkeit von Nicht-MS-Tools) ist dies der Gegensatz zur Hacker-Kultur.
  • CS-Leute der alten Schule : Sie kennen Lisp und Unix oft sehr gut. manchmal haben sie selbst ein halbpopuläres Lisp oder ein Systemdienstprogramm geschrieben. Wenige "Software-Engineering" -Dinge sind für sie neu und beeindrucken sie auch nicht. Kennen Sie die Referenzen, den Verlauf und die Auswirkungen von Programmiersprachen wie Lisp, C, Prolog und Smalltalk auf höherer Ebene. Kann über AI-Ergebnisse der 80er und 90er Jahre bitter sein. Neigen dazu, Emacs-Benutzer zu sein. Kann mehrzeilige Shell-Befehle eingeben, ohne ein Auge zu blinzeln. Ihr Rat kann kryptisch sein, enthält aber einmal verstandenes Gold.
  • New-School-Webentwickler : spielten mit Computern und Videospielen als sie aufwuchsen, begannen aber oft erst in den späten 90ern oder frühen 00ern mit dem Programmieren. Bequem mit 1 bis 1,5 Skriptsprachen / dynamischen Sprachen; denke, C und Sprachen außerhalb von Ruby / Perl / Python sind unnötig / magisch. Möglicherweise wurde HTML anfangs als Programmierung betrachtet. Holen Sie sich einen Mac und seien Sie fanatisch / irrational. Verwenden Sie Frameworks mehr, als sie zu erstellen. Oft übermäßig begeistert von NoSQL und / oder Ruby On Rails.
  • New-School-CS : Viel Training in Statistik, Bayes'schen Modellen und Inferenz; Sagen Sie nicht "KI", sondern "Maschinelles Lernen". Mehr Java als Lisp, könnte aber auch ein erfahrener Haskell-Programmierer sein. Wenn Experten auf ihrem Gebiet (Google, Finanzen / Quants) große Erfolge in der Praxis sehen, sind sie oft (über) zuversichtlich. Aber Big Data und die verteilte Verarbeitung von Big Data verändern die Welt.

Die obigen Beispiele sind keineswegs vollständig, richtig, orthogonal oder objektiv. :) Genau das, was ich persönlich gesehen und bereitgestellt habe, um eine Diskussion und einen Überblick über die umfassendere Frage zu geben. Fühlen Sie sich frei zu widersprechen!

Limist
quelle
1
'Lil' vage, klingt aber interessant.
Turm
6
Ich denke, die Antworten zeigen eines: Die Frage versucht, klare Trennlinien zu ziehen, wo es wirklich keine gibt. Wir beschäftigen uns mit ungefähr 5 orthogonalen Konzepten, von denen jedes ein Kontinuum ist, und versuchen, diese Hyperebene in leicht identifizierbare diskrete Gruppen zu unterteilen. IMO, es ist ein hoffnungsloses Unterfangen.
Jerry Coffin
3
@ Jerry Coffin - ja, stimme zu. Ganz zu schweigen davon, dass einige Antworten an die Grenzen einiger "Kulturen" gehen, IMHO. Diese Antworten sind jedoch so schön, dass sie zeigen, was die heutigen (Programmierer? Oder zumindest diese Community) über andere Communities denken, die sogar einen Teil dieser Community bilden (in einem kleinen Prozentsatz).
Turm
@ JerryCoffin Nun, Sir, es gibt Leute, die dieses Wort "orthogonal" verwenden möchten und solche, die dies nicht tun, nur weil es in den letzten Jahrzehnten auf Stapel populär war ...
Erik Reppen

Antworten:

12

Ich würde mich als Teil der Gruppe Real-Time Systems betrachten . Es gibt einige 'Old School'-Eigenschaften, aber mit weniger Fokus auf CS, mehr auf Hardware.

Der Archetyp:

  • Hat Expertenwissen über 'C'
    • Hat eine Originalkopie von K & R
    • Schreibt in anderen Sprachen, als ob sie nur eine alternative Syntax für 'C' wären
  • Kann die Assembler-Ausgabe aus ihrem Code vorhersagen.
  • Kann einen Schaltplan lesen
  • Kann keinen Code schreiben, ohne 'vorzeitige Optimierung' durchzuführen.
  • Ist ganz bequem mit der Kommandozeile.
Ashelly
quelle
Faszinierend, danke. Ich habe einige Leute von Echtzeitsystemen getroffen, aber nicht an einem solchen Ort gearbeitet, also habe ich nicht versucht, die Kultur zu charakterisieren. Ich denke, viele von uns Programmierern würden euch "Hardcore" nennen. :)
Limist
1
Ich denke, es ist wie in jeder anderen Disziplin - es gibt die hartgesottenen "Rockstars" und es gibt die einfachen alten Felsen. (Ich hoffe ich bin irgendwo dazwischen)
AShelly
2
Ich bin auch in dieser Gruppe. Die meisten meiner Kollegen sind aus der Elektrotechnik an diesen Ort gekommen, aber ich bin ein Datenbank- / Apps-Entwickler. Ich fühle mich jetzt in dieser Gruppe sehr wohl und manchmal kann mein unterschiedlicher Hintergrund eine andere nützliche Perspektive bringen.
Vicky
1
Es mag auch meine Wahrnehmung sein, aber es scheint, dass Frauen in dieser Gruppe noch seltener sind als in einigen anderen Gruppen.
Vicky
1
Wow - das beschreibt mich fast perfekt, außer dass ich nicht nur Schaltpläne lese, sondern auch die Schaltungen entwerfe. Arbeitete Ende der 1970er Jahre an meinem ersten Embedded-System (in PL / M-86).
Tcrosley
6

Vergessen Sie nicht die Mainframe-Programmierer. Sie sind auch eine Subkultur.

Toon Krijthe
quelle
1
Ich würde gerne mehr über die Mainframe-Codiererkultur erfahren. Ich habe sehr wenige getroffen, die sogar viel Zeit mit Mainframes verbringen, geschweige denn sie regelmäßig codieren.
Limist
1
Dies sind Menschen mit seriösen Abschlägen, die sich nicht von anderen unterscheiden, die Geschäftsanzüge tragen. Sie mögen COBOL. Für sie gibt es kein anderes System als ein System / 360.
Oosterwal
5

Ich vertrete das einsame Kontingent der Delphi-Entwickler unter 30 Jahren. Unser Caucus ist klein, aber unsere Herzen sind groß.

Peter Turner
quelle
Einige meiner Mitarbeiter sind <30.
Toon Krijthe
2
Sagen Sie ihnen, sie sollen einen Stapelaustausch starten, und wir können über die neuen Funktionen sprechen, die der alte Johnny Borland implementieren soll, wenn Sie tot sind ;-)
Peter Turner
4

Ich vermute, dass es mehrere Kulturen gibt, die irgendwie nebeneinander leben, anstatt zu kämpfen und irgendwie transzendent sind:

  • Hacker- / Open Source-Kultur : Code teilen, echten Namen verwenden oder nicht. Konzentriert sich wohl auf kleine Werkzeuge, die ein Problem lösen. Ermöglicht programminterne Hacks. Sprachen: C , Lisp , C ++ , Python . Überschneidet sich wahrscheinlich mit Ihren CS-Leuten der alten Schule .
  • Wissenschaft : Konzentration auf Algorithmen und richtiges Handeln. Der wirkliche Name ist must (er erscheint sowieso auf Papier). Sprachen: Java , Haskell , ( F # ?)
  • Corportate : Konzentration auf Lösungen (wahrscheinlich von allem). Wenn Open Source, ist die Angabe des Namens nicht erforderlich . Sprachen: Java , C # , VB.net , Ruby .
  • " High School ": Es ist gut, wenn es funktioniert, aber es muss nicht. Konzentration auf Namen wie "SuperProgram 1.0 für Windows XP". (Entschuldigung - ich habe keinen guten Namen gefunden, aber ich meine die Programmierer, die angefangen haben CS zu beherrschen und nicht gut darin sind - zumindest noch nicht). Sprachen: PHP , VB , Ruby
  • New School Web Developers : Wie oben.

Bitte beachte, dass:

  • Es ist möglich, die Kulturen in Organisationen und in Einzelpersonen zu mischen. In der Tat tut es oft.
  • Die Sprachen sind BEISPIELE und es ist zum Beispiel eine ziemlich große Gruppe von "Hackern", die an C # arbeiten. Es ist eher ein Assoziationsspiel, also sei bitte nicht beleidigt (ja - ich weiß, dass es großartige Programme gibt, die in PHP geschrieben sind, mit guter Ingenieurspraxis usw., aber es ist in der Regel die Muttersprache für viele Leute, die es nicht tun). Ich weiß nicht, was zum Beispiel XSS ist.
  • Ich wollte niemanden mit Namen High School beleidigen. Ich meinte, dass es oft der erste Schritt in die Programmierung über diese Kultur ist (und hoffentlich nicht zuletzt)
  • Edit: Academia bedeutet nicht, dass die Person in der Akademie ist und in der Akademie ist, bedeutet nicht, dass jemand der Akademie angehört (obwohl er ein brillanter Wissenschaftler / Forscher usw. ist). Dies bedeutet, dass er die Tools bevorzugt, die eine klare, offensichtlich korrekte Lösung bieten, auch wenn es an Leistung mangelt / es länger dauert / ... Ähnlich Die Unternehmenskultur ist nicht gleichbedeutend mit Unternehmen.

Ich denke, ich bin derzeit hauptsächlich Open Source mit leichtem Einfluss von Academia (passiv).

Maciej Piechotka
quelle
Ich dachte nur an die starke Überschneidung der modernen CS / Academia-Subkultur und der Haskell-Programmierer. Nachdem ich ein bisschen mit Haskell herumgespielt habe, kann ich sehen, warum es diejenigen anspricht, die eine Ausbildung in formalen Wissenschaften (CS, Mathematik) haben, und in der Tat finde ich, dass Haskell dabei hilft, das Programmieren von einer höheren Ebene aus zu sehen.
Limist
Nur Java und Haskell in der Wissenschaft? Was ist mit Fortran, C, C ++, R, MATLAB, * sh + awk (ja, ich kenne solche Leute), Mathematica, Python, LabVIEW? Auch Haskell sollte wohl durch "jede funktionale Sprache" ersetzt werden.
mbq,
Das sind Beispiele. BIASED Beispiele. Wie ich bereits erwähnt habe, sind Sprachen NICHT kulturspezifisch. Bitte beachten Sie auch, dass die akademische Kultur nicht auf die akademische beschränkt ist und nicht jeder in der akademischen Kultur die akademische Kultur annehmen muss. Ich bin damit einverstanden, dass Fotran / C / C ++ / R / Matlab / ... in der akademischen Welt eingesetzt wird, aber ich denke nicht, dass es eine starke Assoziation damit gibt. * sh + awk ist definitiv nicht akademisch (als Kultur - Benutzer kann in der akademischen Welt arbeiten und ein brillanter Wissenschaftler sein - das ist etwas völlig anderes).
Maciej Piechotka
1
Ich denke, Sie gehen in Richtung Informatik-Akademiker.
mbq
2

Ich bin sozusagen im Alt.NET / Old-School-CS-Camp. Ich arbeite mit Microsoft-Technologie (C # usw.), aber mir ist bewusst, dass es um mich herum eine ganze Welt gibt, andere Sprachen, Algorithmen, Frameworks, "Stuff under the Hood" usw. Natürlich nicht perfekt, aber es ist eine Arbeit in Bearbeitung.

Adam Lear
quelle
1
Das Alt.NET-Publikum ist definitiv eine Programmiersubkultur und unterscheidet sich absolut von der Beschreibung der Microsoft-Kultur durch Limist (die für mich eher so klingt wie vor einem Jahrzehnt als wie heute).
Carson63000
2

Ich stimme dieser Aussage über die MS-Subkultur nicht ganz zu: "Sehen Sie nicht, worum es bei Open Source und dergleichen geht - außerdem, wer muss eine andere Sprache sprechen? Im Allgemeinen habe ich solche Orte gefunden 9-5 und ziemlich korporativ (angetrieben von Geschäftsführern, nicht von Software-Leuten). Die Anti-These der Hacker-Kultur. " Inzwischen habe ich in zwei .Net-Shops gearbeitet und die Umgebung war tatsächlich sehr hackerartig. Wir haben viele Open-Source-Projekte in unserer Arbeit eingesetzt. Nach meiner Wahl hängt alles von der Art der Leute ab, mit denen man arbeitet. Wenn sie echte Entwickler sind, werden sie ständig nach Möglichkeiten suchen, sich zu verbessern und zu verzweigen. Welche Technologien sie verwenden, ist unerheblich.

Vergessen Sie nicht die Agile Methodology-Subkultur, in die Entwickler mit unterschiedlichem Hintergrund eingebunden sind.

ysolik
quelle
Ja, die agilen Leute sind eine Subkultur für sich. Guter Punkt bezüglich. der Entwickler gegen das Tool, und natürlich könnte Ihre Erfahrung sehr unterschiedlich von meiner sein. Aus meiner begrenzten Stichprobe habe ich herausgefunden, dass die Werkzeuge die Macher ziemlich stark geprägt haben.
Limist
Ich habe in einem MS-Shop gearbeitet (und ich bin vielleicht sogar ein Fan), aber die Mentalität, die ich erlebt habe, ist, zuerst auf MS zu schauen, wenn es kostenlos ist, dann es zu benutzen . "
Steven Evers
2

Ich denke, es würde einen Mittelweg zwischen Old School CS und New School Web Developers geben .

Ich würde mich traditionell als "Webentwickler" bezeichnen. PHP und Java und erstklassige Bürger, zusammen mit richtigem, sympathischem, gültigem HTML / CSS. Wenn Sie SQL einsetzen, verfügen Sie über eine solide, umfassende Qualifikation.

Verschieben Sie New School nach Script Kiddies und benennen Sie den Web Developer um .

Script Kiddies - Leute mit wenig oder gar keinem "under the hood" Wissen über die Sprache. Neigt dazu, nach Tutorials zu suchen, bevor Code blind kopiert / eingefügt wird. Die Syntax von mehr als einer Sprache wird normalerweise nicht vollständig verstanden.

Josh K
quelle
2

Akademiker, die mit Computern forschen, nicht mit Computern.

Sie:
- Software schreiben , die unbegrenzten Mengen an CPU - Zeit verbrauchen kann, Speicher und Festplattenspeicher , so dass sie kümmern (oder zumindest versuchen Pflege) der Leistung, entweder durch Material mit wie -O3, time, Profilometer, memcheck und verbringen Stunden mehr oder weniger Ändern Sie den Code nach dem Zufallsprinzip, um eine Beschleunigung zu erzielen, oder wenden Sie sinnlos einige mythische Tricks auf ihre Skripte an.
- Verwenden Sie reelle Zahlen und wissen Sie, dass dies schwierig genug ist, damit eine separate Wissenschaft namens "Numerik" existieren kann.
- verwenden oft sehr spezielle Programmiersprachen / Bibliotheken / Programme und sind sehr fanatisch; Flammenkriege sind weit verbreitet, hauptsächlich in Bezug auf die Leistung.
- Nennen Sie ihre Programme "Codes", um hervorzuheben, dass sie eine so verschleierte Benutzeroberfläche haben, dass nur ihre Schöpfer wissen, wie man sie benutzt.
- arbeiten normalerweise unter Linux oder verwenden zumindest PuTTY, um zu einer Linux-Workstation / einem Linux-Cluster zu sshen.

mbq
quelle
1
Ja, ich bin auch in diesem Club. Diese Liste ist ein guter Anfang für eine Beschreibung des typischen Hochenergiephysikers (ich meine, studiert Quarks, trank nicht zu viel Kaffee) oder Astronomen, der mit den aktuellen großen Instrumenten arbeitet.
DarenW
1
Und da diese Subkultur viel Wert auf praktische, wiederholbare und extreme Effizienz legt, kümmern sie sich häufig nur wenig um die meisten Vorgänge in der Informatik, es sei denn, es geht um Parallelverarbeitung, clevere Caching-Schemata, HPC und dergleichen .
DarenW
@DarenW: Was meinst du damit, dass sie sich wenig um die Welt der Informatik kümmern? Meinen Sie damit, dass ihnen gute Software-Praktiken und ähnliches egal sind? Weil ich nicht zustimmen würde. Wenn Sie sich um die Leistung kümmern, müssen Sie keine guten Grundsätze für die Softwareentwicklung aufstellen.
n1ckp
1

Ich bin wahrscheinlich eine Kombination aus CS-Leuten der alten Schule und Webentwicklern der neuen Schule : Ich habe Programmieren gelernt, indem ich Websites mit PHP, Javascript und SQL geschrieben habe, und studiere jetzt an einer Universität, an der alles in Eingabeaufforderungen und Emacs unter UNIX erledigt wird.

gablin
quelle
0

Zählen Sie mich als den Typ der alten Schule. Ich habe LISP allerdings nie gut gemacht. Emacs? Nee, viund set -o viin meiner Hülle für mich danke.

Jé Queue
quelle