¿Existe tal cosa como un súper programador? [cerrado]

14

¿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:

  1. La definición de Thorbjørn : una persona que hace el equivalente de un buen equipo de manera constante durante mucho tiempo.

  2. 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.

Muhammad Alkarouri
fuente
3
Sí, y se llama John Carmack .
Gary Willoughby
1
Tengo una lista de 4 electrones libres en un pequeño trozo de papel encerrado en un sorteo en mi escritorio.
Henry
Si 'súper programador' == 'programador genio' haga clic en este google.com/events/io/2009/sessions/MythGeniusProgrammer.html
James
Vea la respuesta de Jeff en la programación sin ego .
rwong
Solo me gustaría agregar un pensamiento del libro The Mythical Man-Month, en.wikipedia.org/wiki/The_Mythical_Man-Month , se citó un trabajo de investigación que indica que un gran programador es muchas veces mejor que uno bueno. No recuerdo todos los detalles, pero obviamente hay mucho valor en alguien que puede producir en un equipo, órdenes de magnitud más que otros.
Travis

Respuestas:

17

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
2
Excelentes puntos, excepto por la entrada anónima. Si el equipo realmente se unifica, y el "superprogramador" comprende si realmente está a la altura de la definición, deberán aprender las fortalezas, debilidades de los demás, para trabajar juntos para el éxito del equipo y el software. y para generar confianza. Se trata de abrirse a las críticas de los demás (como se hace hasta cierto punto aquí) para que uno encuentre y corrija sus defectos como un súper programador.
Huperniketes
@ Super, el anonimato es evitar que esto se vuelva personal al principio. Si crees que eres sobrehumano, es posible que no te lleves demasiado bien las críticas (o esta pregunta no se habría hecho en primer lugar).
2
@Thor, ya es personal cuando se trata de lo que alguien cree sobre sí mismo. El anonimato hace que la confianza sea mucho más difícil de desarrollar. Los miembros del equipo deben confiar en que pueden ser honestos, que las críticas son bienvenidas y que las opiniones importantes están a la vista.
Huperniketes
¿Le resultaría más fácil o más difícil a un súper programador explicar el código a un programador junior? Si la brecha es grande, la explicación puede ser difícil. ¿No es así?
Muhammad Alkarouri
1
@Muhammad, dado que mi definición es que un súper programador escribe código limpio y fácil de mantener con buena documentación, que incluso un programador junior puede entender (excepto los algoritmos muy complejos que se necesitan con menos frecuencia en Java debido a las cosas disponibles en el tiempo de ejecución, entonces no los considero). Creo que sería tan fácil, pero tal vez tome más tiempo, explicarle a un programador junior.
5

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.

Chetan
fuente
55
@Chetan: ¿Qué es una pila FIFO?
rwong
3
@Chetan: esta es una respuesta inútil. Quizás no has trabajado con programadores que son tan increíbles que comienzas a preguntarte si eres digno de algo.
JBRWilkinson
Un superprogramador debe vivir en la nube y proporcionar una API pública para su lenguaje de consulta mental .
rwong
Pila @rwong primero en entrar, primero en salir, también conocida como cola.
alternativa
1
@mathepic: si puedes llamar a una cola una pila, ¿significa que LIFO y FIFO son lo mismo? (parafraseando a Lincoln)
rwong 25/10/10
3

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.

rwong
fuente
¿Es cierto lo contrario de tu afirmación? (Si se acepta, ¿puede suponer que él / ella es un súper programador?) Creo que esto podría ser útil.
alternativa
Perdí el respeto que podría haber tenido por el autor de ese libro tan pronto como leí que alguna vez fue el "arquitecto de un sistema de mensajería transaccional basado en Java". Oh, bueno, al menos tuvo la sensatez de dejar ese trabajo.
Dan Molding el
1
@Dan Moulding: Mientras se calla y deja que los programadores que está entrevistando en ese libro hablen por mí, no me importa lo que diga. (Acabo de comprar ese libro y estoy ansioso por leerlo. Espero que sea tan bueno como creo que es). =)
gablin
La idea es buena, pero los editores tienden a aceptar programadores famosos en lugar de súper programadores. ¿Correcto?
Muhammad Alkarouri
@Alkarouri: si super tiene el mismo significado que en superestrella , entonces sí, ser un superprogramador también significa ser famoso.
rwong
2

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.

rápidamente_ahora
fuente
1

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.

Maggie
fuente
0

¿Te has encontrado con un súper programador? Lo que lo identifica como tal

De los programas / proyectos que han creado , el código fuente del mismo, el estudio que han realizado.

cree que es un súper programador

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.

Aristos
fuente