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!