Para el mundo exterior, los programadores, los científicos informáticos, los ingenieros de software y los desarrolladores pueden parecer todos iguales, pero eso no es el caso para las personas que crean software para ganarse la vida. La capacidad y el conocimiento de cualquier programador individual pueden variar ampliamente, al igual que sus herramientas (sistema operativo, lenguaje y sí, editor preferido), y esa diversidad genera muchas subculturas en el software, como los programadores que usan el Desbordamiento de Pila en este sitio. versus muchos más que no lo hacen.
Tengo curiosidad por saber de otras personas las subculturas de software con las que se han encontrado, que han pertenecido, admirado, rechazado o incluso creado. Para empezar, me he encontrado con:
- Empresas y desarrolladores impulsados por Microsoft : su pila completa es de Redmond, WA. El correo electrónico es Outlook es el correo electrónico. La web es IE y IIS. Tienen grandes carpetas de su suscripción a la Red de Desarrolladores de MS llenas de varias versiones de VB, .net, Visual Studio, etc. Evita trabajar con un shell / línea de comandos. No veo de qué se trata el alboroto con el código abierto y todo eso. Las compañías centradas en MS tienden a ser 9-5 y bastante corporativas (impulsadas por gerentes de negocios, no por personas de software). Hoy en día (dada la amplia disponibilidad de herramientas que no son MS), esta es la antítesis de la cultura hacker.
- Personas de la CS de la vieja escuela : a menudo conocen a Lisp y Unix extremadamente bien; a veces, pueden haber escrito un Lisp semi popular o una utilidad del sistema. Pocas, si las hay, "ingeniería de software" son nuevas para ellos, ni están impresionadas por eso. Conozca las referencias, la historia y las implicaciones de alto nivel de los lenguajes de programación como Lisp, C, Prolog y Smalltalk. Puede ser amargo sobre los resultados de AI de los años 80 y 90. Tienden a ser usuarios de Emacs. Puede escribir comandos de shell de varias líneas sin parpadear. Su consejo puede ser críptico, pero contiene oro una vez entendido.
- Desarrolladores web de escuelas nuevas : jugaba con computadoras y videojuegos mientras crecía, pero a menudo solo empezaba a programar a finales de los 90 o principios de los 00. Cómodo con 1 a 1.5 scripting / lenguajes dinámicos; piense que C y los idiomas fuera de Ruby / Perl / Python son innecesarios / mágicos. Puede haber considerado HTML como programación inicialmente. Tiende a obtener una Mac y ser fanático / irracional al respecto. Usa marcos más que construirlos. A menudo, demasiado entusiastas con NoSQL y / o Ruby On Rails.
- New-school CS : mucha capacitación en estadísticas, modelos bayesianos e inferencia; no diga "IA", diga "aprendizaje automático". Más Java que Lisp, pero también podrían ser expertos programadores de Haskell. Ver grandes éxitos en el mundo real por parte de expertos en su campo (Google, finanzas / quants) a menudo los hace (demasiado) confiados. Pero el big data y su procesamiento distribuido realmente están cambiando el mundo.
Los ejemplos anteriores no son de ninguna manera completos, correctos, ortogonales ni objetivos. :) Justo lo que he visto personalmente, y proporcionado para provocar un debate y un resumen de la pregunta más amplia. ¡Siéntete libre de estar en desacuerdo!