Para el mundo exterior, los programadores, los informáticos, los ingenieros de software y los desarrolladores pueden parecerse todos, pero eso está lejos de ser el caso para las personas que crean software para ganarse la vida. La habilidad y el conocimiento de cualquier programador individual pueden variar ampliamente, así como sus herramientas (sistema operativo, lenguaje y sí, editor preferido), y esa diversidad genera muchas subculturas en el software, como los programadores que usan activamente Stack Overflow y este sitio, versus muchos más que no lo hacen.
Tengo curiosidad por saber de otros qué subculturas de software han encontrado, pertenecido, admirado, disgustado o incluso creado. Para empezar, me he encontrado con:
- Empresas y desarrolladores impulsados por Microsoft : toda su pila es de Redmond, WA. El correo electrónico es Outlook es correo electrónico. La web es IE e IIS. Tienen grandes carpetas de suscripciones de MS Developer Network llenas de múltiples 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 tal. Las empresas 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 de EM), esta es la antítesis de la cultura hacker.
- Gente de CS de la vieja escuela : a menudo conocen a Lisp y Unix extremadamente bien; a veces, pueden haber escrito un Lisp semi-popular ellos mismos, o una utilidad del sistema. Pocas, si es que las hay, cosas de "ingeniería de software" son nuevas para ellos, ni están impresionados por eso. Conozca las referencias, la historia y las implicaciones de alto nivel de lenguajes de programación como Lisp, C, Prolog y Smalltalk. Puede ser amargo por los resultados de IA de los años 80 y 90. Tienden a ser usuarios de Emacs. Puede escribir comandos de shell de varias líneas sin pestañear. Su consejo puede ser críptico, pero contiene oro una vez entendido.
- Desarrolladores web de la nueva escuela : jugaron con computadoras y videojuegos mientras crecían, pero a menudo solo comenzaron a programar a fines de los 90 o principios de los 00. Cómodo con 1 a 1.5 scripts / lenguajes dinámicos; piensa que C y los lenguajes fuera de Ruby / Perl / Python son innecesarios / mágicos. Puede haber considerado HTML como programación inicialmente. Tiende a tener una Mac y ser fanático / irracional al respecto. Use marcos más que construirlos. A menudo, demasiado entusiasmado con NoSQL y / o Ruby On Rails.
- CS de la nueva escuela : mucha capacitación en estadística, modelos bayesianos e inferencia; no digas "IA", di "aprendizaje automático". Más Java que Lisp, pero también podrían ser programadores expertos de Haskell. Ver grandes éxitos en el mundo real por parte de expertos en su campo (Google, finanzas / quants) a menudo los hace (demasiado) seguros. Pero los grandes datos y el procesamiento distribuido de estos realmente están cambiando el mundo.
Los ejemplos anteriores no son completos, correctos, ortogonales u objetivos. :) Justo lo que he visto personalmente, y proporcioné un poco de discusión y resumen de la pregunta más amplia. ¡Siéntete libre de estar en desacuerdo!