¿Te has encontrado con un súper programador? ¿Qué lo identifica a él o ella como tal, en comparación con los programadores "normales" experimentados / excelentes?
También. ¿Cómo lidias con una persona en tu equipo que cree que es un súper programador? ¿Ambas en caso de que realmente lo sea o no?
Editar : entradas interesantes en general, gracias. Se pueden recoger algunas cosas:
Surgieron algunas definiciones. Sin tener en cuenta las definiciones demasiado localizadas (que identificaban a los autores o sus conocidos como súper programadores), me gustaron un par de definiciones:
La definición de Thorbjørn : una persona que hace el equivalente de un buen equipo de manera constante durante mucho tiempo.
Electrón libre, vinculado a partir de la respuesta de Henry . Una persona muy productiva, de habilidades excepcionales. La explicación es una buena lectura.
Un Free Electron puede hacer cualquier cosa cuando se trata de código. Pueden escribir una aplicación completa desde cero, aprender un idioma en un fin de semana y, lo más importante, pueden sumergirse en una enorme pila de código de espagueti, darle sentido y, de hecho, hacerlo funcionar. Puedes construir negocios enteros alrededor de un Electrón Libre. Son tan buenos
En contraste con la última definición, es el punto vinculado por James sobre el mito del genio programador ( video ). La misma idea se expresa como programación sin ego en el comentario de rwong. Presentan opiniones opuestas sobre si optimizar para un programador tan único o para un equipo.
Estas definiciones son definitivamente diferentes, por lo que agradecería si tiene una entrada sobre cuál es mejor. O agregue el suyo si quiere, por supuesto, aunque sería útil decir por qué es diferente de esos.
fuente
Respuestas:
Consideraría el término "súper programador" solo para aquellos que pueden hacer un trabajo que generalmente requiere un equipo de buenos programadores, y lo hacen de manera constante durante mucho tiempo.
Esto va tanto para escribir código de alta calidad (documentación, pruebas, etc.) como para resolver problemas muy difíciles que requieren mucho conocimiento y talento para resolver.
Pero requiere un alto rendimiento en todas las cuentas durante mucho tiempo. Para aquellos que escriben toneladas de código que nadie puede entender y mantener, el término no es aplicable.
¿Como lidiar con? Si realmente tiene una persona así, haga todo lo posible para proporcionar el andamiaje necesario para que la persona se destaque. Esto significa mover cosas irrelevantes fuera del camino y proporcionar los recursos que la persona necesita. Tenga en cuenta que descubrí que los que tienen un alto rendimiento tienden a ser humildes.
Desafortunadamente, es mucho más probable que tengas una persona que piense que es un súper programador y no lo es. En mi experiencia, la forma de lidiar con ellos es hacer que su desempeño sea medible. "FindBugs puede no encontrar ningún problema", "Todo el código debe tener pruebas correspondientes a los casos de uso", "Revisión por pares".
Si el código es realmente difícil de entender, considere las reuniones semanales en las que el programador no tan súper explica cualquier código que haya escrito desde la última reunión que cualquiera puede solicitar que se explique de forma anónima , y cualquiera puede rechazarlo de forma anónima para aceptarlo. base de código para que no se pueda mantener. Entonces, al menos, ha compartido la mentalidad y ha permitido que los futuros mantenedores veten un fragmento de código. Esto también le indicará fuertemente al programador qué tipo de código hará que tenga que hacer un trabajo extra.
(EDITAR: La razón del bit anónimo es evitar que el no tan súper programador tome represalias contra aquellos que se oponen a él).
fuente
Un superprogramador es cualquier persona que puede generar código más rápido que un compilador de alta velocidad, más poderoso que una función recursiva y capaz de saltar sobre las pilas FIFO de una sola vez.
La forma en que tratas con una persona en tu equipo que cree que es un superprogramador es exponiéndole a su única debilidad: la luz solar.
fuente
Pídale a la persona que escriba un capítulo de sí mismo en el estilo Coders at Work . Envíelo a un editor. Si se rechaza, entonces la persona no es un súper programador.
fuente
Hay quienes pueden producir más resultados que otros.
Hay quienes pueden producir resultados con una tasa de defectos más baja que otros.
Los que pueden producir CONSISTENTEMENTE más producción, con tasas de defectos inferiores a lo normal, pueden ser dignos de ser llamados como Superprogramadores.
Ser conocido o pensado como tal generalmente solo es evidente para un gerente iluminado con el beneficio de la visión trasera.
Alguien que cree que es un superprogramador probablemente tenga un gran ego y piense que es bueno. Eso no los hace buenos.
Actitud <> Habilidad.
fuente
Super programador: una persona de inteligencia superior a la media con una fuerte dedicación a la programación. Estoy hablando de una persona que pasa mucho tiempo programando, no se rinde fácilmente y está decidida a resolver un problema en particular. Esta persona rara vez se duerme si hay un problema / error pendiente. Super programador escribe código efectivo, rápido y confiable. Super Programmer tiene un conocimiento extenso y profundo de al menos un lenguaje de programación (y tecnología), es hábil en algunos otros y puede aprender rápidamente cualquier otra cosa que sea necesaria.
fuente
De los programas / proyectos que han creado , el código fuente del mismo, el estudio que han realizado.
Como dices, él lo cree, es muy difícil hacer que no lo crea. Lo peor es que esa persona se ha detenido para ser un mejor programador porque cree que todo está listo, es súper, y detiene su evolución. Qué peor que eso en programación. De todos modos, siempre puedes pedir pruebas ... y preguntarle con quién se compara a sí mismo para suponer que él / ella es súper.
fuente