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!
Respuestas:
Me consideraría parte del grupo de sistemas de tiempo real . Hay algunas características de 'Old School' pero con menos enfoque en CS, más en hardware.
El arquetipo:
fuente
No te olvides de los programadores de mainframe. También son una subcultura.
fuente
Represento al contingente solitario de Delphi Devs menores de 30. Nuestro grupo es pequeño, pero nuestros corazones son grandes.
fuente
Supongo que existen varias culturas que de alguna manera conviven en lugar de luchar y son de alguna manera trascendentes:
Tenga en cuenta que:
Creo que actualmente soy en su mayoría de código abierto con una ligera influencia de la Academia (pasivo).
fuente
Estoy como en el campamento de CS Alt.NET/old-school. Trabajo con Microsoft Tech (C #, etc.), pero soy consciente de que hay un mundo entero a mi alrededor, otros lenguajes, algoritmos, marcos, "cosas ocultas", etc. No es perfecto, obviamente, pero es un trabajo en progreso.
fuente
No estoy del todo de acuerdo con esta afirmación sobre la subcultura de la EM: "No veo de qué se trata el alboroto de código abierto y demás, además, ¿quién necesita saber otro idioma? En general, he descubierto que tales lugares son 9-5 y bastante corporativo (impulsado por gerentes de negocios, no personas de software). La antítesis de la cultura hacker ". Ya he trabajado en dos tiendas .Net y el entorno era realmente muy hacker. Hemos empleado muchos proyectos de código abierto en nuestro trabajo. En mi opción, todo depende del tipo de personas con las que se trabaja. Si son verdaderos desarrolladores, buscarán constantemente formas de mejorar y diversificarse. Qué tecnologías usan son irrelevantes.
No se olvide de la subcultura de metodología ágil que incorpora desarrolladores de diferentes orígenes.
fuente
Creo que habría un punto medio entre Old School CS y New School Web Developers .
Tradicionalmente me consideraría un "desarrollador web". PHP y Java y ciudadanos de primera clase para mí, junto con HTML / CSS adecuado, simétrico y válido . Agregue SQL y tendrá un conjunto de habilidades robusto y bien redondeado.
Mover New School a Script Kiddies y cambiar el nombre del desarrollador web .
Script Kiddies : personas con poco conocimiento, si es que lo tienen, "bajo el capó" sobre el idioma. Tiende a buscar tutoriales en Google antes de copiar / pegar ciegamente el código en su lugar. Por lo general, no comprende completamente la sintaxis de más de un idioma.
fuente
Académicos que realizan investigaciones utilizando computadoras, no investigaciones sobre computadoras.
Que:
- están escribiendo software que puede consumir cantidades ilimitadas de tiempo de CPU, memoria y espacio de disco por lo que les importa (o al menos tratar de atención) de rendimiento, ya sea mediante el uso de cosas por el estilo
-O3
,time
, perfiladores, memcheck, y pasan horas más o menos cambiar el código al azar para acelerar un poco o aplicar sin pensar algunos trucos míticos a sus scripts.- use números reales y sepa que es lo suficientemente complicado como para que pueda existir una ciencia separada llamada "numérica".
- a menudo usan algunos lenguajes de programación / bibliotecas / programas muy específicos y son muy fanáticos al respecto; Las guerras de llamas son comunes, principalmente sobre el rendimiento.
- llame a sus programas "códigos" para resaltar que tienen una interfaz de usuario tan ofuscada que solo sus creadores saben cómo usarla.
- generalmente funciona en Linux o al menos usa PuTTY para ssh a alguna estación de trabajo / clúster de Linux.
fuente
Probablemente soy una combinación de personas de CS de la vieja escuela y desarrolladores web de la nueva escuela : aprendí a programar escribiendo sitios web con PHP, Javascript y SQL, y ahora estoy asistiendo a la universidad donde todo se hace en comandos y Emacs bajo UNIX.
fuente
Cuenta conmigo como el chico de la "vieja escuela". Sin embargo, nunca hice LISP bien. Emacs? No,
vi
yset -o vi
en mi caparazón por mí, gracias.fuente