¿Cómo puedes medir tus habilidades como programador? [cerrado]


En una entrevista anterior me han hecho la pregunta: 'De 0 a 10, ¿cómo te calificas como programador?'

Me pareció una pregunta muy difícil de responder, ya que no soy consciente de una métrica para medir lo buenas que son mis habilidades. Además, saber qué tan bien te desempeñas sería útil para entender lo que necesitas mejorar para ser un mejor programador.

Entonces, ¿hay alguna manera de saber qué tan bien haces tu trabajo?

Author: Sung Kim, 2008-09-21

24 answers

Llame a su empleador anterior y hable con quien heredó todo su código antiguo. Te dirán lo bueno de programador que eres. ;)

 56
Author: jasonmray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:19:10

Esa es una pregunta difícil. Desde un punto de vista puramente introspectivo, creo que una de las mejores métricas de "buena programación" es esta: ¿Cuánto disfrutas de tu oficio? He conocido a muchos desarrolladores, algunos de ellos muy buenos, pero nunca he conocido a nadie que fuera un desarrollador 9-5 y lograra algo mejor que resultados mediocres.

Por supuesto, mirar hacia adentro no es la mejor manera de medir la competencia. Debería pensar que tus compañeros programadores podrían darte una respuesta bastante sólida. Hay etiqueta social involucrada en formular tal pregunta, pero el potencial sigue ahí. En mi experiencia, aquellos con los que trabajas van a tener la mejor comprensión de lo bien que lo estás haciendo, aunque solo sea porque ellos son los que tienen que limpiar el desastre si cometes un error. :-)

Último detalle: la programación es la resolución de problemas, pura y simple. Piensa en cómo abordas los problemas difíciles que se te presentan. Primero, ¿cómo reaccionas emocionalmente a una duro reto? Y segundo, ¿cómo será tu código? ¿Se acaba de cortar su camino a ciegas a través de la selva hasta llegar a algún tipo de resultado, o es su enfoque metódico, bien medido y (lo más importante) fuertemente investigado? Los programadores realmente buenos no son los que saben todo o que pueden implementar el algoritmo de Dijkstra en ocho idiomas fríos, son los que pasan horas vertiendo libros de texto y blogs oscuros para encontrar esa pequeña pepita de una idea que resulta crucial para el tema en cuestión. Si tienes la paciencia y la pasión para abrirte camino a través de un desafío profundo, así como la humildad para buscar ideas en los demás, entonces estás bien encaminado hacia ese "10".

 16
Author: Daniel Spiewak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:23:58

10 - No sabes que realmente no sabes nada.

9 - Solo estás presumiendo, y probablemente no eres tan bueno como crees que eres. Incluso si usted es realmente tan bueno, usted carece de las habilidades políticas para ver lo que elegir un " 9 " dice de usted. Eso, o eres bastante conocido / adorado en la industria (es decir, escribiste un libro una vez, y tiene un apodo como "El libro _ _ _ _ _ _" o un acrónimo que la mayoría de los desarrolladores reconocerían al instante), y no tienes miedo de lanzar tu nombre alrededor.

8 - Eres muy bueno y lo sabes, pero eres lo suficientemente inteligente como para darte cuenta del estigma de elegir 9 o 10. Será mejor que puedas respaldarlo.

7 - eres muy bueno, pero sabes que tienes mucho que aprender.

6 - Eres competente y tienes mucho que aprender, pero no tienes mucha confianza en tus habilidades. ¿Seguro que no eres un 7?

5 - Decent junior dev. Acabas de salir de la escuela y eres lo suficientemente inteligente como para darte cuenta de que no sabes nada del mundo real. programación, pero ya sabes cómo hackear código juntos.

4 - Mediocre junior dev. Acabas de terminar la escuela, pero tus habilidades básicas de codificación dejan algo que desear. Usted tuvo un momento difícil solo pasar la mayoría de sus clases de programación, pero por alguna razón decidió que todavía quiere seguir una carrera en el desarrollo de software. Tampoco crees en ti mismo, así que, ¿por qué debería hacerlo un entrevistador?

3 o inferior-Si usted tiene tan poca confianza en su capacidad de programación, ¿por qué son ¿estás aplicando a trabajos de programación?

Así que la respuesta "correcta" es probablemente 5-7, dependiendo del tipo de trabajo para el que se está entrevistando. Un 8 tiene suficiente experiencia que ella no estaría haciendo esta pregunta.

 14
Author: Adam Jaskiewicz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 13:03:50

Esta pregunta de la entrevista no es realmente acerca de lo bueno que eres como desarrollador. Se trata de cuánta autoconciencia tienes y qué tan bien justificas (al entrevistador) cualquier cifra que presentas.

La forma correcta de responder esta pregunta durante una entrevista (en lugar de una respuesta filosófica) es elegir tus áreas más fuertes y producir alguna buena evidencia para decir que estás en el X% superior de los desarrolladores en esas áreas específicas.

Por ejemplo, se podría decir que al crear software confiable, estás en el Y % superior porque esa es una de tus especialidades. Entonces podrías dar algunos ejemplos. Alternativamente, se podría decir que una forma razonable de juzgar las habilidades de desarrollo es cuánto dinero se gana.

Lo que no debe hacer es tomar la pregunta literalmente. Eso no es normalmente lo que el entrevistador quiere.

 11
Author: RoadWarrior,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-25 19:50:07

Como alguien que entrevista a posibles desarrolladores, diría que entre 6-8 sería la respuesta más segura a esa pregunta. Imagino que la respuesta promedio es de alrededor de 7. Creo que es realmente más para eliminar a los incompetentes (0-5) o los ignorantes (9-10). Si decide responder 9+, esté preparado para probarlo.

Si realmente estás buscando responder seriamente la pregunta por ti mismo, yo diría que la Programmer Competency Matrix es un gran punto de partida para las áreas de tal calificación debería abarcar.

 8
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 13:19:22

Conocí a alguien que usó esa pregunta durante años. Dijo que los mejores programadores tendían a calificarse alrededor de un 7. En particular, las personas que se calificaron a sí mismas con un 10 generalmente confiaban en sus habilidades porque nunca habían conocido a un programador realmente bueno. Pero nunca habiendo conocido a uno, ¿de quién habrían aprendido alguna habilidad real? Hay, por supuesto, excepciones. Pero si está sintonizado con la comunidad, probablemente sabrá quiénes son las excepciones ser.

Este fenómeno, por cierto, no se limita a la programación. He encontrado que es cierto en un número de tipos de cosas. Las personas que se auto califican 10 de 10 por lo general no son muy buenas. Las personas que son muy buenas en X son buenas porque han encontrado otras personas que son buenas en X, y por lo tanto van a compararse a sí mismas con un grupo de pares más difícil y generalmente no se autoevaluarán a un 10. He encontrado esto cierto para los valores de X tan lejos como jugar ping-pong o ajedrez.

 7
Author: user11318,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:58:53

Parece que hay tres niveles de competencia con cualquier lenguaje de programación:

  1. Usted corrige los errores de sintaxis inmediatamente y sin ningún esfuerzo mental duro
  2. Puedes leer el código de otros pueblos y averiguar su intención sin 'traducir' el código al lenguaje natural (o algún otro lenguaje de programación)
  3. Una vez que entiendes un problema puedes expresarlo naturalmente en las construcciones proporcionadas por el lenguaje (imperativo, OO, funcional ...)

Creo esto te lleva a lo largo de la escala de 1 -> 10

Vale la pena señalar que el conocimiento profundo de un idioma puede interponerse en el aprendizaje de otro. Porque una vez que piensas en términos de lenguaje 'A' tienes que reconectar tu cerebro para aprender el lenguaje 'B'. Obviamente, esto solo se aplica cuando se mueve a un tipo completamente diferente de programación, por ejemplo, C - >C++, C#->F#, Java - > Scala, etc... Así que no creo que sea posible ser un 'programador perfecto' en abstracto.

 5
Author: Garth Gilmour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:29:36

Su calificación de proyecto euler podría dar una idea (no sus habilidades, sino su pasión por no rendirse hasta el final):

Http://projecteuler.net/index.php?section=problems

 5
Author: Serhat Ozgel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 09:04:05

Un enfoque totalmente válido para el "¿cómo te calificarías de 1 a 10?"es señalar elproblema inherente a la autoevaluación . Para resumir los hallazgos de los experimentos en ese fascinante documento:

  1. Casi todos se calificaron a sí mismos como superiores a la media. Al menos el 50% de esas personas eran deshonestas o engañadas.
  2. Las personas que están en realidad en el 25% superior con frecuencia se empujan hacia abajo al rango del 50-75% (es decir, se califican a sí mismos artificialmente baja).
  3. Las personas que están en el grupo de 50-75% tendieron a evaluarse a sí mismas con mayor precisión.

Se podría resumir razonablemente esto como el 50% de las autoevaluaciones son mentiras y otro 25% son erróneas. Por lo tanto, usted podría elegir preguntar al dron de entrevista si están perdiendo su tiempo o evaluándolo psicológicamente....

 3
Author: Bob Cross,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-14 17:33:49

Además, saber lo bien que te desempeñas sería útil para entender lo que necesitas mejorar para ser un mejor programador.

Saber realmente lo que necesitas mejorar es importante para entender qué tan bien te desempeñas. Solo mira a las personas con las que trabajas o interactúas y trata de averiguar cuáles son las cosas sobre ellas que te gustaría verte hacer mejor. Eso lentamente te ayudará a convertirte en un mejor programador. A medida que creces mira a otros equipos y fuente códigos (otros proyectos de código abierto) para ayudarte a mejorar aún más.

Creo que una mejor manera de responder posiblemente a la pregunta de calificarse a sí mismo es decir que me califico a mí mismo en x percentil wrt todas las otras personas con las que he trabajado.

 2
Author: Dhananjay Nene,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:25:19

La respuesta corta es, te mides contra tus compañeros. Es decir, tomar a alguien que no sabe nada y asignar un 0, tomar el mejor programador que conoce personalmente y asignar un 10? ¿cómo te consideras en comparación con estas dos personas? ¿Cerca de lo mejor? Eso sería un 8. Medio? eso sería un 5.

Simplemente no respondas 0 o 10 e intenta ser objetivo. El punto de la pregunta no es calificarte como programador, sino calificar tus habilidades en la autoevaluación. Tu perspicacia, eso es.

 2
Author: Sklivvz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:26:07

Solo hay una métrica para medir un buen programador: LOC / hr. Cualquier otra métrica es superflua: p

 1
Author: Dan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 14:19:10

Si la gente se queja de que no tiene nada en su plato mientras varios de sus sistemas de software están en producción, eso simplemente significa que sus sistemas estaban bien diseñados y bien codificados, y, a diferencia de otros monos de código corporativo, no tiene una cola de 6 meses de tickets de problemas que lo mantienen ocupado.

Si este es el caso, date una palmadita en la espalda. Haces un buen trabajo.

Recuerde, el software no se hace hasta que está haciendo dinero.

 0
Author: Christopher Mahan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:20:25

Como entrevistador, me gustaría hacer esa pregunta para ver cómo elequent un candidato se expresa a sí mismo.

Además, muestra cuán autocríticos son y qué tipo de estándares establecen para ellos y sus colegas.

No solo te dice lo mucho que saben sobre dios/mala programación, sino que te dice lo bien que estarían interactuando con un cliente para extraer los requisitos y lo bueno que son para el resto del equipo.

El rango actual 0-10 es mucho menos importante.

 0
Author: pappes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 08:45:27

Creo que es importante no sobreestimar la importancia del conocimiento del idioma.

Las mayores habilidades que un programador puede tener están en las áreas de resolución de problemas y diseño. En el momento en que te dedicas a usar el idioma que has elegido, es casi solo escribir. (aceptando que un área que se espera que haya utilizado su resolución de problemas y habilidades de diseño está en el diseño de su código, para abordar el problema de legibilidad y mantenimiento)

So la medida de un programador es lo bien que puede reunir un rango dispar de ideas o problemas para resolver un problema en particular. Más habilidad es potencialmente solo agregar áreas de conocimiento que se pueden aprovechar.

Por supuesto, nada de esto ayuda como una métrica para determinar su propia habilidad, pero otros ya han dicho que es bastante bien una pregunta no métrica de todos modos. :-)

 0
Author: Andrew Edgecombe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 09:05:37

Si quieres un byte de sonido para una respuesta:

Cuando empecé a trabajar profesionalmente era probablemente un 2, ahora diría que estaba alrededor de un 7, pero todos los días estoy trabajando para llegar a 10.

 0
Author: Garry Shutler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 09:31:17

Palabras por minuto.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 10:26:37

En mi opinión, esta es una pregunta difícil (y en el contexto de una entrevista, incluso INJUSTA)! He estado trabajando para tres empresas diferentes hasta ahora. En todas partes conocí a muy pocos programadores excelentes (mucho mejores que yo), muchos buenos programadores y algunos programadores que deberían cambiar para mejor. Pero es imposible ponerlos en categorías de 0 a 10!

 0
Author: Thomas Koschel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-21 12:44:44

Hay muchas "dimensiones de bondad" para ser un programador; el proceso de evaluación variaría dependiendo de cuál le interese. He aquí algunas ideas:

  1. Competencia técnica: Vaya a comprar una buena referencia de estilo "libro de cocina"en el idioma/a que usa principalmente; para cada tarea discutida en el libro, primero escriba su propia solución y luego compárela con la(s) ofrecida (s) en el libro.
  2. Velocidad de desarrollo: Regístrese en TopCoder y trabaje a través de su problemas almacenados o participar en una competencia en tiempo real.
  3. Participar en un equipo de desarrollo: Compre el almuerzo para uno de sus compañeros de trabajo de confianza y pídale una evaluación honesta de usted como miembro del equipo (por ejemplo, "¿Cuáles son mis principales fortalezas y debilidades como miembro de nuestro equipo? ¿Qué sugieres que haga para mejorar?") [Si no hay nadie en tu equipo al que puedas acudir para tal discusión, tal vez que te diga algo sobre esto cuestión.]
  4. Habilidades de comunicación: Siéntese con un compañero de trabajo que es no un desarrollador y pídale su opinión sobre su proyecto actual. Presta atención; considera qué tan bien sus percepciones coinciden con las tuyas.
  5. Estimación: Cada mañana toma una nota (solo para tus ojos) sobre lo que esperas lograr ese día y cuánto tiempo esperas que tome. Al final del día, compara esa nota con lo que realmente sucedió para ver qué tan lejos estabas. Mejorar en esta área, piense en las razones de las diferencias y lo que podría considerar que habría hecho sus conjeturas más precisas.
 0
Author: joel.neely,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-11-20 13:46:26

Siempre puedes competir con otros programadores y ver qué tan bien están tus habilidades de pensamiento. Usted puede probar los sitios como www.topcoder.com o www.spoj.pl o wwww.codechef.com te proporcionan rangos y puedes ver lo bien que lo haces. Sin embargo, estos prueban puramente sus cerebros algorítmicos y no la forma en que codifica. Si me hicieran esta pregunta, diría que soy un aprendiz constante y creo en cometer y corregir errores, no tengo miedo de criticarme a mí mismo ni soy vacilante en pedir a otros que señalen mi error, usted puede decidir en qué escala se sienta.

 0
Author: Anirudh Goel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 13:11:50

Defina una escala del 100%.

Identifíquese como si estuviera en la marca 100.0.

Identificar las posiciones de otros desarrolladores y personalidades famosas de la MISMA.

Calcula por cuánto estás mejor.

 0
Author: User,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 13:18:59

Me han hecho esa pregunta un par de veces. Cuando acabo de salir del equipo dije 7/8. Ahora que he estado trabajando unos años digo 4 a pesar de que creo que ahora estoy infinitamente mejor.

No veo el 0-10 como un gráfico de línea recta. Lo veo más como gráfico exponencial. Así que seguro que todavía digo 4 de cada diez, PERO creo que soy mejor que el 90% de los codificadores por ahí. He visto parte de su trabajo y me asusta. He trabajado en software bancario software SSL y es da miedo que realmente funcione. Así que hay esos 10% de codificadores por ahí que son mejores que yo MUCHO mejor que yo. No estoy seguro de si alguna vez los alcanzaré. Llegar a 4 en mi opinión es fácil. Mucho más difícil llegar a 5. De 5 a 6 es increíblemente aterrador.

Grandes codificadores que son dignos de un 8, 9 o 10.

 0
Author: uriDium,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 13:24:23

Experiencia. Cuanto más amplia sea la experiencia que tengas," mejor " serás. Sólo sabes lo que has experimentado.

Tamaño y complejidad del sistema que ha desarrollado (o ha trabajado con éxito sin corromper).

 0
Author: bobobobo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-29 15:41:03

Una discusión bastante valiosa aquí. Encantar. I as an interviewee, would like to give answer of this as follows.

Me gustaría analizar la pregunta primero.

El análisis depende de algunas cosas como el lenguaje, el marco, la naturaleza del problema, (Soy PHP y Wordpress chico así que la respuesta es en este contexto) 1. trabajo de parches de plugin, 2. construyendo desde cero, 3. uso de api

Mi enfoque común sería (en la mayoría de los casos) 1. entender lo dado (o ya construido) alcance de la funcionalidad (relativo a la declaración del problema actual) 2. calcular una de las mejores maneras de resolver (definitivamente hay más de una manera cada vez…) 3. codificar 4. pruebas en escenarios en tiempo real (para ajustar el rendimiento) 5. en las etapas iniciales de cualquier programador, los cuatro pasos son recursivos hasta obtener la solución final, pero a medida que crece la experiencia, 1 2 pasos se vuelven recursivos.

La aptitud para comprender la filosofía fundamental de cualquier lengua es imp. El descanso es la solución de problemas actitud.

Y en PHP, creo que soy 6.5.

 0
Author: tech.kapil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-01 08:57:04