¿ Cómo reconocer un buen programador ?
¿Cómo reconocer a
buenos programadores si usted es un hombre de negocios o empresario?
No es tan fácil
como parece. No se puede ver la experiencia con solo leer el Curriclum Vitae
(CV) de la persona o hacer una encuesta para vendedores, gerentes o contadores,
esto es sólo de uso limitado aquí, porque grandes programadores no siempre
tienen la experiencia "oficial" para demostrar que son grandes. De
hecho, una gran cantidad de CV que la experiencia puede ser engañosa. Sin
embargo, hay una serie de sutiles señales de que se puede obtener, incluso del
CV, de averiguar si alguien es un gran programador.

Yo me considero
un buen programador. Al mismo tiempo, he pasado una buena cantidad de tiempo en
la empresa lado de la cerca o valla, técnicas de filtrado de CV para los
proyectos, entrevistando a las personas, etc. Gracias a esto, creo que tengo un
poco de experiencia en el reconocimiento de buenos programadores, Y quiero
compartir en este artículo, con la esperanza de que pueda ayudar a otros "hombres
de negocios" a reconocer buenos programadores. Y, quién sabe, tal vez
algunos programadores que tienen el potencial de ser buenos, pero realmente no se
han aprovechado esta posibilidad de leer esto y darse cuenta de lo que tienen
que hacer para ser buenos (aunque, como me sostienen, que definitivamente no
accesible a todos los programadores!).
En su artículo
Los 18 errores que matan startups, Paul Graham hace el siguiente punto:
"…Quienes mataron a la mayoría de las
nuevas empresas de comercio electrónico a principio de la década de los 90, fueron
los malos programadores. Muchas de esas empresas fueron comenzaron con hombres
de negocios que poseían buenas ideas del comercio y luego contrataron a
programadores para poner esto en practica. Eso es en realidad mucho más difícil
de lo que suena -casi imposible - porque, de hecho, los hombres de negocios no reconocen
a un buen programador, sino después que tienen meses y años trabajando con esta
persona.
En la práctica lo que ocurre es que los hombres de negocios eligen personas que
piensan son buenos programadores (dice aquí en su CV que es un Microsoft
Certified Developer), pero que no lo son. Entonces están mistificando, para
encontrar una forma de poner en marcha la empresa, a lo largo de una pista con
lumbres alrededor, a un extremo tu bombardero de la Segunda Guerra
Mundial, mientras que sus competidores pasan en jet de combate gritando… Este
tipo de arranque se encuentra en la misma posición que una empresa grande, pero
sin las ventajas.
Así que, ¿cómo elegir buenos programadores si no eres un programador? No creo
que hay una respuesta. Yo estaba a punto de decir lo que tiene que encontrar un
buen programador que le ayudarán a contratar a la gente. Pero si no se puede
reconocer la buena programadores, ¿de qué forma incluso hacer eso? "
No estoy de
acuerdo con el señor Graham sobre esta. Creo que hay una serie de indicadores
muy fuertes de un "buen programador" (y, por el contrario, fuertes
indicadores de un "no tan buen programador") que incluso un hombre de
negocios puede reconocer. Voy a resumir algunos de los principales indicadores
y contra-indicadores en una lista al final del artículo.

# 1: Pasión
En mi experiencia corporativa, me
encontré con una especie de chico técnicos que nunca había conocido antes de la
carrera de programador. Se trata de unas persona que está haciendo de TI,
porque piensan que es una buena carrera. Ellos no realizan un desarrollo en su
tiempo libre. Ellos están conmocionados cuando averiguar tengo una red local y
3 ordenadores en casa. Acaban de hacerlo en el trabajo. Ellos no aprenden cosas
nuevas, al menos que se le envié a un programa de entrenamiento o curso (o
motivados por la necesidad de conseguir un trabajo que requiere que la
tecnología). Hacen "programación o desarrollo" como un día de
trabajo. Ellos realmente no quieren hablar de ello fuera del trabajo. Cuando lo
hacen, hablar con una distintiva falta de entusiasmo. En el fondo, carecen de
la pasión.
Yo creo que un buen desarrollador
siempre es apasionado por la programación. Los buenos desarrolladores
programarían incluso aunque no se les pagara por ello o no recibieren
beneficios económicos. Un buen programador tendrán una tendencia a hablar
frente a usted sobre algunos detalles técnicos de lo que están trabajando en (pero
al mismo tiempo creer sinceramente, que lo que están hablando realmente merece
la pena de ser escuchado). Algunas personas podrían ver que las habilidades
como un mal adatado sociales (y no lo que es), pero si buscar reconocer a un
buen programador, esta pasión por lo que están haciendo a costa de suavidad
social es un indicador muy fuerte.
Puedes llegar a
obtener charlas muy excitantes de tecnologías que esta usando esta persona, por
toda unas horas y sin perder un instante el tema. Ahí entonces podrás decir que
has encontrado un apasionado de la programación.
# 2: Auto-enseñanza y el amor por el
aprendizaje
Programación es
el último movimiento. No pasa un año sin que alguna nueva tecnología desplace a
otra, bajándola al segundo puesto del “Top Ten”, estableciéndose como un
estándar y cambiando la mitad del desarrollo universal. Esto no quiere decir
que todos los buenos programadores se acogen a estos cambios y montar la última
versión. Sin embargo, hay una clase de programadores que nunca, pero nunca
migran a una nueva tecnología a menos que estén obligados a esto, porque no les
gusta aprender nuevas cosas. Estos programadores suele tener el conocimiento de
programación aprendido en la universidad, y esperar obtener cualquier habilidad
del que estuvo allí, además de los cursos independientemente de su empresa está
dispuesta a invertir en ellos.
Si está pensando en contratar a alguien como programador, y él nunca pronuncia
las palabras "Puedo trabajar con
eso, me acabo de entrenar en un curso de capacitación durante una semana y seré
bueno en el trabajo que me ofreces", No contratar a ese muchacho. Un
buen programador no necesita un curso de capacitación para aprender una nueva
tecnología. De hecho, un buen programador te hablaría acerca de la nueva
tecnología, que siquiera tú has oído hablar, explicando las razones por las
cuales se debe utilizar en tu negocio. Incluso si ninguno de sus empleados sabe
cómo usarlo aun.
# 3: Inteligencia
Algunos
empresarios o hombres de negocios, asuman que la falta de tacto social y la
falta de inteligencia es los mismos. En realidad, la inteligencia tiene varias
facetas, y la inteligencia socio-emocional es solo de ellas. Bueno los
programadores no son mudos. Nunca, de hecho, los buenos programadores están por
lo general entre la gente más inteligente que conocemos. Muchos de ellos se han
hecho muy buenas habilidades sociales. El cliché de que el programador es
incapaz de tener una buena conversación que es sólo - en un cliché injusto. He
estado en algunas reuniones del Grupo de usuarios de Ruby Londres y puedo decir que sólo con muy pocas excepciones, la
mayoría de la gente allí es inteligente, locuaz, sociable, tienen intereses
variados, etc. Usted no los vera charloteando en la vía cerca de un bar y
pensar “es solo un grupo de geeks” (what a bunch of geeks!)- Al menos hasta
que se aproxime a un grupo y darnos cuenta de que estamos hablando de la mejor
forma de diseñar una aplicación RESTful con una pesada UI frontend.
Esto no significa que todos ellos se sientan cómodos en cada contexto social.
Pero sí significa que si el contexto es cómodo y no suficiente amenazante,
podrá haber grandes como una conversación con ellos como lo haría con los más
"socialmente permitido" la gente (tal vez mejor, ya que la mayoría de
buenos programadores que conozco Al igual que sus conversaciones giran en torno
a temas realmente útil, en lugar de sólo tontas bromas).
No siempre contratar a una persona tonta piense que es un buen programador. Estos no lo son. Si no se puede tener una gran
conversación con ellos de una forma relajada de un contexto social, es muy probable que no sea
un buen programador. Por otra parte, cualquier persona que claramente muy
inteligente por lo menos tiene un enorme potencial para ser un buen o gran
programador.

# 4: Ocultar la Experiencia
Esto se correlaciona
con el punto de la "Pasión", pero que es una fuerte señal que me
gustaría hacer énfasis en el.
Empecé
programación cuando tenía cerca de 9 años, en un Commodore 64. Luego migre a la PC, con algun Pascal. Cuando
tenía 14 escribi un raycasting con compilado en C y ensamble, gastó
una gran cantidad de tiempo jugando con enfriar efectos gráficos que usted
puede obtener su equipo por jugar a hacer directamente con la tarjeta de vídeo.
Esto fue lo que yo llamo mi "coccoon etapa". Cuando yo entré en esa
etapa, yo era un programador mediocre, y carecen de la confianza para hacer
algo realmente complicado. Cuando lo terminé, me había ganado esa confianza. Sabía
que yo podía casi cualquier código, siempre y cuando puse mi mente en esto.
Que nunca ha aparecido en mi CV? No.
Estoy firmemente
convencido de que la mayoría de los programadores de buena voluntad tienen un
iceberg oculto o dos como este que no aparece en su CV o perfil. Algo que creo
no es realmente relevante, porque no es "correcta experiencia", pero
que en realidad representa un logro impresionante. Una buena pregunta para
pedir un posible "buen programador", en una entrevista que sería
"puede usted decirme acerca de un proyecto personal - incluso o
especialmente uno que es completamente irrelevante - que usted hizo en su
tiempo libre, y que no está en tu CV? #Si no pueden contestar (aunque su CV es
de 20 páginas de largo), probablemente, no un buen programador. Incluso un
programador con un exhaustivo CV tendrá unos proyectos significantes perdidos de
estos.
# 5: Variedad de tecnologías
Esta es muy
simple. Debido al amor por el aprendizaje y el juego “toying” con las nuevas tecnologías que viene con el empaque de ser
un "buen desarrollador", es inevitable que todo "buen
programador" con más de los 22 años de dominio de una docena de diferentes
tecnologías. Ellos no pueden ayudar. Aprender una nueva tecnología es una de
las cosas más divertidas que un programador puede hacer esto forma parte de su
pasión. Así que lo haremos todo el tiempo, y acumular un bolso de las cosas con
que “ha jugado alrededor de este tiempo”. No pueden ser expertos en todas
ellas, pero todos los programadores decentes dominan de un gran inventario de
las tecnologías no relacionadas.
Que "no relacionadas" es un toque poco sutil. Cada media-decenae
programador java será capaz de crear una lista de tecnologías, tales como Java,
J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell scripting ",
etc. Pero esos son todos partes de la misma tecnología del lote, todos
directamente relacionados entre sí. Esto es posiblemente difícil de reconocer
para los no programadores, pero es posible saber si su tecnología de lote es
variado por hablar con ellos sobre esto, y preguntarle cómo las diferentes
tecnologías que saben se relacionan entre sí. El exceso de especialización en
una sola tecnología de lote es un indicador de un no tan buen programador.
Por último, si algunas de estas tecnologías están en la última, es un buen
indicador positivo. Por ejemplo, hoy (noviembre de 2007), el conocimiento de
Merb, Flex, RSpec, HAML, UJS, y muchos más… Por favor tenga en cuenta que estas
son bastante estrechamente relacionados con las tecnologías, por lo que en un
par de años, alguien que conoce todos estos será equivalente A alguien familiar
con la pila de Java enumerados en el párrafo anterior.
Actualización: Como aclaración a
este punto, hay en realidad dos indicadores: Una buena variedad de tecnologías
a través de un período de tiempo es un indicador positivo, si las tecnologías
son lo último. Tecnologías de punta y bleeding edge son un indicador positivo.
# 6: Calificacion Formal
Este es más un
no-indicador que una contra-indicador. El punto clave de esbozar aquí es que la
posesión de calificaciones no significa cuando estás tratando de reconocer un
buen programador. Muchos programadores de buena voluntad tienen un título en
Ciencias de la
Computación. Muchos no. Certificaciones, como MCSE o SCJP o
similares, no significa nada tampoco. Estos están diseñados para ser accesibles
y convenientes para todos. Lo único que indican es un cierto nivel de
conocimientos de una tecnología. Son garantías que permitan la contratación de
personas en la tecnología de las grandes empresas a saber "ok, este chico
sabe java, que tiene una certificación para demostrar su conocimiento" sin
necesidad de entrevista.
Si está por contratar a una pequeña empresa, o de lo que necesita realmente
inteligentes desarrolladores para tapar las grietas de su equipo de
programación y poner empractica un desarrolla ágil para su empresa, usted debe
ignorar la mayoría de las calificaciones formales que hacen ruido. Que en
realidad no le dirán mucho acerca de si el programador es bueno. Del mismo
modo, caso omiso de la edad. Algunos programadores son impresionantes a los 18
años. Otros son impresionantes en el 40. Usted no puede basar sus decisiones
sobre la calidad de programador en la edad (aunque es posible que decida
contratar a la gente en torno a una determinada edad para tener un mejor ajuste
en la compañía, por favor tomar nota de que la discriminación por edad es ilegal
en la mayoría de los países).
Como nota final a esta, en mi experiencia la mayoría de los programadores regulares o
malos se iniciaron la programación en la universidad, en su curso
de Ciencias de la
Computación. La mayoría de los programadores de buenos se
inició mucho antes, y el grado es sólo una continuación natural de su afición.
Si su potencial programador no hizo ninguna programación antes de la
universidad, y toda su experiencia se inicia cuando obtuvo su primer trabajo, es
probablemente que no sea un buen programador.

Aclaratoria
Ninguno de los
indicadores por encima o por debajo está seguro de riesgos. Usted encontrará
gran programadores que romper algunos de los moldes. Sin embargo, mi opinión
es, rara vez encontrará usted un gran programador que rompe todos ellos. Del
mismo modo, es posible que los programadores de no muy buenos que cumplen (o
parecen ajustarse a) algunos de estos criterios. Pero sí creemos firmemente que
el más de estos criterios responde a un programador, más probabilidades hay de
que sea uno de esos difíciles de alcanzar "buenos programadores" que,
como hombre de negocios, necesita asociarse con este.
Puntos de Criterios
Así que, en
resumen, he aquí algunos indicadores y contra-indicadores que le ayudarán a
reconocer un buen programador.
Indicadores
Positivos:
- Apasiona la
tecnología
- Programas como
hobby
- Se fuera su oído
hablar sobre un tema técnico si alienta
- Significativo
(y, a menudo, numerosos) de lado los proyectos personales a través de los años
- Aprende las
nuevas tecnologías por si solo
- Opina acerca de
las tecnologías que son mejores para diferentes usos
- Muy incómodo ante la idea de
trabajar con una tecnología que no cree que sea la "correcta"
- Es evidentemente
inteligente, puede tener una gran conversaciones sobre una variedad de temas.
- Programación mucho antes de empezar la universidad o el trabajo.
- Se ve
la punta del "icebergs", existen los grandes proyectos personales
bajo el radar de CV.
- El conocimiento de una gran variedad de tecnologías no relacionado (no puede
ser de CV)
Indicadores Negativos:
- La programación
es un trabajo diario
- Realmente no desea
"foro de debate", incluso cuando se anima
- Aprende nuevas
tecnologías en la empresa por cursos patrocinados
- Feliz de
trabajar con cualquiera que sea la tecnología que ha elegido, "todas las
tecnologías son buenas" .
- No les parece
demasiado inteligente
- Comienza la
programación en la universidad
- Toda la
programación está en la experiencia de CV
- Centrado
principalmente en uno o dos pilas de la tecnología (por ejemplo, todo lo
relacionado con el desarrollo de una aplicación java), sin experiencia fuera de
él.
Espero que pueda ayudar a conseguir buenos programadores.
Gracias por leer.
Fuente del articulo: http://www.inter-sections.net
Nombre Original :How to recognise a good programmer
Decidi colocar unas images para no tornar el texto muy aburido
Traducción: elperucho
Nota: Espero que mi hijo me perdone algun dia, por no ir a bañarme en la pisina con él, por dedicarme a traducir es excelente articulo.