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!
Antworten:
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:
quelle
Vergessen Sie nicht die Mainframe-Programmierer. Sie sind auch eine Subkultur.
quelle
Ich vertrete das einsame Kontingent der Delphi-Entwickler unter 30 Jahren. Unser Caucus ist klein, aber unsere Herzen sind groß.
quelle
Ich vermute, dass es mehrere Kulturen gibt, die irgendwie nebeneinander leben, anstatt zu kämpfen und irgendwie transzendent sind:
Bitte beachte, dass:
Ich denke, ich bin derzeit hauptsächlich Open Source mit leichtem Einfluss von Academia (passiv).
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
Zählen Sie mich als den Typ der alten Schule. Ich habe LISP allerdings nie gut gemacht. Emacs? Nee,
vi
undset -o vi
in meiner Hülle für mich danke.quelle