¿Qué tiene de malo ser un mono código? (O, ¿qué es un código mono?) [Cerrado]

35

Los programadores tienden a hablar de ser un "mono código" de una manera despectiva. "No trabajes allí , ¡solo serás un mono código!".

Tengo dos ofertas de trabajo, una en una empresa pequeña, otra en una empresa muy grande (el mismo salario). Mi amigo acaba de decirme que seré un mono código en la gran empresa, y sabe por experiencia de primera mano que la pequeña empresa será más gratificante que reducirme a un "mono código".

Realmente no entiendo la distinción entre un "mono de código" y un programador "real". Por favor elabora. Me encanta la programación, así que para mí la idea de sentarme en una programación de computadora (es decir, code monkey) no me parece mala. ¿Qué quiere decir un programador con "código mono" si le gusta programar?

Ben B.
fuente
Jonathan Coulton realiza Code Monkey Unplugged youtube.com/watch?v=7s8S7QxpjeY
Adam
Codemonkeys consigue camisetas más frescas redbubble.com/people/hayko/t-shirts/1808968-b-code-monkey
yannis
hmmmmm ... Code Monkey- oh espera, no, estoy pensando en Chunky Monkey.
dietbuddha
¡Los monos no son buenos programadores excepto un Babun!
Arun Sangal

Respuestas:

32

Code Monkey significa hacer una codificación tan simple que un mono podría hacerlo

A menudo se usa para referirse a los trabajos de programación de nivel más bajo, pero también se puede usar para referirse a alguien que no hace nada más que codificar. Sin diseño de interfaz de usuario, sin aportes arquitectónicos, sin decisiones de desarrollo, etc.

No hay nada de malo en ser un mono código (a veces me llamo uno), pero lo más probable es que si todo lo que estás haciendo es codificar, nunca avanzarás en la cadena y verás esas cifras de salarios más altos que vienen con poder ver y Comprender todo el ciclo de desarrollo de software.

Rachel
fuente
21

"Código mono" describe al codificador de quien se requiere cero creatividad. Tal codificador haría tareas repetitivas, aburridas, a menudo tediosas, como la forma de clonar y cambiar una archivada, etc.

Lo que usted llama "programador real", sería una persona, que realmente participa en el diseño de la lógica de la aplicación, y en realidad usa la creatividad para el trabajo.

vartec
fuente
No estoy seguro si digo esto correctamente, pero ¿es el trabajo del "programador real" trabajar en la lógica comercial del desarrollo de software? Ejemplo: supongamos que tenemos una aplicación web, ¿sería responsabilidad del desarrollador diseñar (la lógica de) un widget para mostrar algunas estadísticas, o alguien más que debería proporcionar toda la información requerida al desarrollador (es decir, lo que necesitamos mostrar, sería accesible para todos, o solo para usuarios autorizados, etc.) y luego el desarrollador diseñará el esquema de la base de datos, el código, etc. ¿Tengo sentido lo que estoy tratando de decir? -lo siento por mi mal
inglés-
15

Para mí, al menos, la distinción es que un código mono simplemente produce código sin pensarlo realmente, mientras que un programador "adecuado" es un profesional . Utilizan técnicas de ingeniería para producir código de mayor calidad y conocen el sistema en su conjunto, hacen una mejor planificación y un diseño más completo.

Por ejemplo, algunas características de un programador "adecuado" (aunque tenga en cuenta el cultismo de la carga) podrían ser:

  • Un programador está involucrado, hasta cierto punto, con todo el ciclo de vida de desarrollo de software, no solo con la codificación. Los monos codificados pueden estar codificando diseños o requisitos que fueron descargados en ellos, en lugar de crearse en consulta con ellos.
  • Los programadores crean diseños extensos (incluyendo pruebas) antes de escribir cualquier código. Están bastante seguros de que el diseño es bueno (rápido, eficiente, etc.) antes de comenzar a escribirlo. Los monos de código saltan directamente. No saben si el diseño es bueno hasta que lo ejecutan.
  • Los programadores se responsabilizan de planificar su propio trabajo. Los monos codificados simplemente hacen lo que su gerente les dice, cuando se les dice que lo hagan.
  • Los programadores son valorados como individuos por su creatividad y habilidades. Los monos de código son vistos como cajas negras intercambiables que generan código.
  • Los programadores son adaptables; pueden aplicar sus habilidades a numerosas áreas, idiomas, etc. Los monos de código se especializan en exceso y se pierden si tienen que trabajar con un nuevo marco.
  • Los programadores siempre buscan desarrollarse como profesionales. Los monos codificados se quedan donde están en términos de habilidades y experiencia.

He usado dos puntos en los extremos opuestos de un espectro aquí; sospecho que la mayoría de los trabajos se ubicarán en algún punto intermedio. Además, es poco probable que una carrera entera se quede en el mismo lugar: una buena compañía se esforzará por llevar a sus empleados hacia el final del programador a través de la capacitación y el desarrollo profesional. Puede valer la pena tomar un trabajo de programador junior al final del código mono si el empleador tiene un esquema de posgrado o similar que eventualmente resultará en un estado de programador "adecuado".

Scott
fuente
Obviamente, alguien no está de acuerdo conmigo, ya que votaron en contra, me encantaría saber qué pasa.
Scott,
2
Me he encontrado con dos razas de monos codificados. Uno de ellos es el "perro viejo" que solo codifica, es confiable y hace el trabajo. Pero a expensas del diseño deslucido y con un código lleno de viejos paradigmas y años de experiencia "cruft" que les ha hecho ver todo como un clavo, y su "cruft" como el martillo. Probablemente uno de los que te rechazó :)
Zoran Pavlovic
Podría agregar que los programadores también se esfuerzan por aprender en detalle sobre lo que los usuarios finales quieren lograr con su software, y potencialmente cómo eso afecta al mundo en general, y usar ese conocimiento para desempeñar algún papel en el proceso de tomar decisiones organizativas sobre el producto que desarrollan. Recomiendo ver un video de la charla de Martin Fowler 'More Than Code Monkeys'. Un programador a veces decide por sí mismo qué trabajo es bueno y lo hace de manera autónoma, o intenta persuadir a su gerencia para que acepte.
bdsl
6

"Code Monkey" 'code mon.key' (/ koʊd / / ˈmʌŋki /)

Un "mono de código" es un término despectivo utilizado para describir a un programador que:

  • Preforma las tareas de programación que se consideran extremadamente simples o sin ningún desafío real.
  • Realmente no se permite resolver problemas, ni participar en el diseño de la aplicación.

Ahora los programadores "reales" a veces también tienen preformas de este tipo de codificación de vez en cuando.

Sin embargo, la principal diferencia es que un "mono de código" no tiene otra opción para hacer otra cosa.

Un "mono de código" podría usarse para implicar la posición o habilidad de un programador

Noche oscura
fuente
4

Según el archivo de jerga, un código mono puede referirse a:

  1. Una persona que solo es capaz de descifrar código, pero que no puede realizar las tareas más importantes de arquitectura, análisis y diseño de software. Ligeramente insultante. A menudo se aplica a las personas más jóvenes en un equipo de programación.

  2. Cualquiera que escriba código para ganarse la vida; un programador.

  3. Una forma autocrítica de negar la responsabilidad de una decisión de gestión o de quejarse de tener que vivir con esas decisiones. Como en "No me preguntes por qué necesitamos escribir un compilador en COBOL, solo soy un mono código".

Según Jonathan Coulton, un mono código:

  1. Si se enfrentan a críticas injustas sobre su código, generarán una gran ira contra el crítico, pero el riesgo de dañar su estado laboral mantendrá la ira acumulada y no dirá nada (afirmarán que no loco, solo orgulloso.)
  2. Le gustan Fritos, Tab y Mountain Dew.
  3. Tienen un lado sensible que preferirían no mostrar, o más probablemente no saben cómo mostrar (tienen grandes corazones "secretos" difusos y cálidos).
  4. Saben que están trabajando en un trabajo sin salida y en lugar de entrar a dicho trabajo preferirían simplemente despertarse, comer un pastel de café, tomar un baño y tomar una siesta.
  5. Trata de convencerse de que su trabajo es "cumplir de una manera creativa", pero en el fondo saben que es una carga de mierda.
  6. No tan bueno en situaciones sociales.
  7. Todas las cosas consideradas aún tienen una perspectiva brillante sobre su futuro.

Con toda seriedad, un trabajo no puede convertirte en un mono código, solo tu comportamiento y actitud pueden hacerlo.

Robert
fuente
3

Hay un capítulo entero sobre los tipos de programadores en "Code Craft" de Pete Goodliffe . Todos los aspectos de lo que significa "Code Monkey" se mencionan en las otras respuestas. Lo que me gustaría enfatizar (y lo que muestra el texto de Goodliffe) es que puedes encontrar ventajas y desventajas para todo tipo. Dependiendo del trabajo y la personalidad, puede ser bueno / deseable / pleno ser el mono código del equipo, que hace realidad las ideas / conceptos / planes produciendo "Beautiful Code".

Ekkehard.Horner
fuente
No sé qué definición estás usando. Pero un mono código casi NUNCA producirá "Beautiful Code", en ningún sentido que no sea el sarcástico.
Zoran Pavlovic
0

En lo que se refiere a ser un buen programador, usted será un muy buen programador sin importar a dónde vaya, mi sugerencia sería ser un desarrollador por cierto. En la nota de ser un código mono, bueno, es una relación que construyes tú mismo o la empresa te obliga a hacer. Ser un mono de código significa que todo lo que haces es seguir una herramienta o tecnología simple y que te mantienen en un solo modo de desarrollo de cosas menores, sabes que tu potencial reside en hacer cosas mucho más grandes, si es tu primer trabajo, ve por la compañía más grande, incluso si te mantiene en el nivel del mono por algún tiempo y confía en mí si la compañía es grande y estoy seguro de que si trabajas duro, ¡te convertirás en un código Godzilla! Si su amigo dice que la compañía es grande y que lo mantendrán en forma de código monetario, está equivocado. Las empresas crecen grandes porque tienden a abordar grandes problemas de escala industrial y trabajan en cuestiones de diseño y desarrollo más grandes. Las pequeñas empresas rara vez hacen eso, pero esto no significa que las pequeñas empresas no crecerán o que usted será un líder de equipo en un par de meses, como todos nosotros, subirá la escalera.

Wajih
fuente