¿Qué subculturas de programación / software existen? ¿Qué los define? ¿A cuál perteneces? [cerrado]

13

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!

limist
fuente
1
'Lil' vago, pero suena interesante.
Rook
66
Creo que las respuestas muestran una cosa: la pregunta es tratar de dibujar líneas divisorias claras donde realmente no hay ninguna. Estamos tratando con alrededor de 5 conceptos ortogonales, cada uno un continuo, e intentamos dividir ese hiperplano en grupos discretos fácilmente identificables. OMI, es un esfuerzo inútil.
Jerry Coffin
3
@Jerry Coffin - sí, de acuerdo. Sin mencionar que algunas respuestas están bordeando la ofensiva hacia algunas "culturas", en mi humilde opinión. Sin embargo, estas respuestas son buenas de una manera que muestran lo que los actuales (programadores o al menos esta comunidad) piensan sobre otras comunidades, que forman parte de esta (en un pequeño porcentaje).
Torre
@JerryCoffin Bueno, señor, hay personas que quieren usar esa palabra "ortogonal" y aquellas que no lo hacen solo porque ha sido popular en la pila en las últimas décadas ...
Erik Reppen

Respuestas:

12

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:

  • Tiene conocimiento experto de 'C'
    • Tiene una copia original de K&R
    • Escribe en otros idiomas como si fueran solo una sintaxis alternativa para 'C'
  • Puede predecir la salida del ensamblador a partir de su código.
  • Puede leer un diagrama de circuito
  • No sabe cómo escribir código sin hacer 'optimización prematura'.
  • Se siente bastante cómodo con la línea de comando.
AShelly
fuente
Fascinante, gracias. Conocí a gente de sistemas en tiempo real, pero no he trabajado en un lugar así, así que no intenté caracterizar la cultura. Creo que muchos de nosotros, los programadores, los llamaríamos "hard-core". :)
limist
1
Creo que es como cualquier otra disciplina: están las "estrellas del rock" de núcleo duro, y están las rocas viejas y simples. (Espero estar en algún punto
intermedio
2
Yo también estoy en este grupo. La mayoría de mis colegas han "llegado" a este lugar desde una formación en ingeniería electrónica, pero yo he llegado a "ser" un desarrollador de bases de datos / aplicaciones. Sin embargo, ahora me siento muy cómodo en este grupo y, a veces, mis diferentes antecedentes pueden aportar una perspectiva útil diferente.
Vicky
1
Además, puede ser mi percepción, pero parece que las mujeres son aún más raras en este grupo que en algunos de los otros grupos.
Vicky
1
Wow: esto me describe casi a la perfección, excepto que no solo leo los diagramas de circuitos, también diseño los circuitos. Trabajé en mi primer sistema embebido (en PL / M-86) a fines de la década de 1970.
tcrosley
6

No te olvides de los programadores de mainframe. También son una subcultura.

Toon Krijthe
fuente
1
Me gustaría escuchar más sobre la cultura del codificador de mainframe; He conocido a muy pocos que incluso pasan mucho tiempo con mainframes, y mucho menos los codifican regularmente.
limist
1
Estas son las personas con cortes de pelo respetables y no se pueden distinguir de otras personas que usan trajes de negocios. A ellos les gusta COBOL. Para ellos, no hay otro sistema que no sea un sistema / 360.
oosterwal
5

Represento al contingente solitario de Delphi Devs menores de 30. Nuestro grupo es pequeño, pero nuestros corazones son grandes.

Peter Turner
fuente
Algunos de mis compañeros de trabajo son <30.
Toon Krijthe
2
Bueno, diles que comiencen un intercambio de pila y podemos hablar sobre las nuevas características que le pediremos al viejo Johnny Borland que implemente después de que estés muerto ;-)
Peter Turner
4

Supongo que existen varias culturas que de alguna manera conviven en lugar de luchar y son de alguna manera trascendentes:

  • Cultura de hackers / código abierto : código compartido, usa nombre real o no. Probablemente se concentró en pequeñas herramientas que resuelven un problema. Permite hacks en el programa. Lenguajes: C , Lisp , C ++ , Python . Probablemente se superpone con los tuyos . Gente de CS de la vieja escuela .
  • Academia : concentración en algoritmos y hacer las cosas de la manera correcta. El nombre real es must (de todos modos aparece en papel). Lenguajes: Java , Haskell , ( F # ?)
  • Corportado : concentración en soluciones (probablemente de todo). Si es de código abierto, no es necesario dar el nombre . Lenguajes: Java , C # , VB.net , Ruby .
  • " High School ": es bueno si funciona pero no tiene que hacerlo. Concentración en nombres como "SuperProgram 1.0 para Windows XP". (lo siento, no he encontrado un buen nombre, pero me refiero a los programadores que comenzaron a dominar CS y no son buenos en eso, al menos todavía). Lenguajes: PHP , VB , Ruby
  • Desarrolladores web de escuelas nuevas : como arriba.

Tenga en cuenta que:

  • Es posible mezclar las culturas en las organizaciones y en una sola persona. De hecho, a menudo lo hace.
  • Los lenguajes son EJEMPLOS y es, por ejemplo, un grupo bastante grande de "hackers" que trabajan en C #. Es más un juego de asociaciones que el estudio real, así que no se ofenda (sí, sé que hay excelentes programas escritos en PHP con buenas prácticas de ingeniería, etc., pero tienden a ser el primer idioma para muchas personas que no lo hacen) No sé qué es, por ejemplo, XSS)
  • No quería ofender a nadie por su nombre High School. Quise decir que a menudo es el primer paso en la programación a través de esta cultura (y con suerte no durará)
  • Editar: Academia no significa que esa persona esté en la academia, así como estar en la academia no significa que alguien pertenezca a la academia (a pesar de ser un científico / investigador brillante, etc.). Denota que prefiere las herramientas que dan una solución clara, obviamente correcta, incluso si carece de rendimiento / toma más tiempo / ... De manera similar , la cultura corporativa no es equivalente a las corporaciones.

Creo que actualmente soy en su mayoría de código abierto con una ligera influencia de la Academia (pasivo).

Maciej Piechotka
fuente
Estaba pensando en la gran superposición de la moderna subcultura CS / academia y los programadores de Haskell. Después de jugar un poco con Haskell, puedo ver por qué atrae a aquellos con capacitación en ciencias formales (CS, matemáticas), y de hecho, encuentro que Haskell ayuda a ver la programación desde un nivel superior.
limist
¿Solo Java y Haskell en la Academia? ¿Qué pasa con Fortran, C, C ++, R, MATLAB, * sh + awk (sí, conozco a esas personas), Mathematica, Python, LabVIEW? También Haskell probablemente debería reemplazarse con "cualquier lenguaje funcional".
mbq
Esos son ejemplos. Ejemplos blandos . Como señalé, los idiomas NO son específicos de la cultura. También tenga en cuenta que la cultura académica no se limita a la academia y no todos en la academia tienen que adoptar la cultura académica. Si bien estoy de acuerdo con que Fotran / C / C ++ / R / Matlab / ... se usan en la academia, en mi mente no forman una fuerte asociación con él. * sh + awk es definitivamente no académico (como cultura - el usuario puede trabajar en la academia y ser un científico brillante - eso es algo completamente diferente0.
Maciej Piechotka
1
Creo que vas hacia académicos de informática.
mbq
2

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.

Adam Lear
fuente
1
La multitud de Alt.NET es definitivamente una subcultura de programación, y absolutamente distinta de la descripción que hace Limist de la cultura impulsada por Microsoft (que para mí es más parecida a como era esa cultura hace una década).
Carson63000
2

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.

ysolik
fuente
Sí, la gente ágil es una subcultura en sí mismos. Buen punto re. el desarrollador frente a la herramienta y, por supuesto, su experiencia podría ser muy diferente a la mía. De mi muestreo limitado, descubrí que las herramientas dieron forma a los fabricantes bastante.
limist
He trabajado en una tienda de EM (e incluso podría ser un fanboy), pero la mentalidad que he experimentado es "buscar EM primero, si es gratis, luego usarlo. De lo contrario, busque cualquier cosa y todo lo que esté disponible para satisfacer la necesidad ".
Steven Evers
2

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.

Josh K
fuente
2

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.

mbq
fuente
1
Sí, yo también estoy en este club. Esta lista es un buen comienzo para una descripción del típico físico de alta energía (es decir, estudia quarks, no tomó demasiado café) o astrónomo que trabaja con los grandes instrumentos actuales.
DarenW
1
Y, como esta subcultura se preocupa mucho por la eficacia práctica, repetible y extrema, a menudo les importa poco la mayoría de las cosas que suceden en el mundo de la informática, a menos que tenga que ver con procesamiento paralelo, esquemas de almacenamiento en caché inteligentes, HPC y demás .
DarenW
@DarenW: ¿Qué quiere decir que les importa poco el mundo de la informática? ¿Quieres decir que no les importan las buenas prácticas de software y cosas por el estilo? Porque no estaría de acuerdo. Preocuparse por el rendimiento no necesita que arroje buenos principios de ingeniería de software.
n1ckp
1

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.

gablin
fuente
0

Cuenta conmigo como el chico de la "vieja escuela". Sin embargo, nunca hice LISP bien. Emacs? No, viy set -o vien mi caparazón por mí, gracias.

Jé Queue
fuente