¿Cómo contratar a un buen programador? - El anuncio
¿Qué es lo más importante en una empresa? ¡Seguramente son los trabajadores!
Por mi experiencia como programador y por haberme encargado varias veces del proceso de selección, me parece importante compartir contigo algunos elementos clave sobre cómo contratar al programador que tu empresa necesita.
Estos consejos son por experiencia propia, pero también son consejos que escuché muchas veces repetidos en la industria (en EEUU).
¿Por qué escoger un buen programador es tan importante?
En el mundo del desarrollo el talento o el profesionalismo del candidato es más importante aún, por la diferencia de rendimiento que puede haber entre dos programadores. De hecho, se habla del “Programador 10X”, es decir, que algunos programadores logran ser más de diez veces más productivos que otros. Hubieron varios estudios sobre este tema (este post en Stackoverflow lo resume bien).
En mi experiencia, pude ver programadores que eran más un freno al proyecto que una ayuda.
Si el proceso de entrevista a los programadores no es de un nivel satisfactorio, entonces la empresa nunca va a poder lograr sus metas. Por esta razón, si tienes una empresa que tiene un equipo de desarrollo, uno de los elementos clave del éxito de la organización es contratar a buenos programadores.
En el anuncio
Empecemos con la primera etapa del proceso de selección, que va a definir qué perfiles van a poder aplicar.
Consejo 1: no te limites a un lenguaje de programación o a una tecnología precisa
Ese es el primer problema que encontré. Por ejemplo, una empresa que busca un desarrollador Javascript, que pide conocimiento de Javascript como requerimiento para aplicar.
La verdad es que es mucho más importante encontrar alguien talentoso que alguien que ya conozca el lenguaje de programación/framework/tecnologías con las cuales va a tener que trabajar.
Es mucho más fácil enseñar un nuevo lenguaje de programación/framework/tecnología a alguien curioso/interesado, que trabajar con alguien que ya los conoce pero que trabaja mal.
En el anuncio puedes indicar con qué tecnologías se va a trabajar en este puesto, pero es importante que no sea un requerimiento. Sino vas a perder muchas oportunidades muy buenas.
Algo que sí puede ser importante, es que el candidato sepa un lenguaje de programación que pertenezca al mismo paradigma de programación (principalmente Orientado a Objetos o Funcional). Por ejemplo si el puesto va a ser para trabajar con un lenguaje orientado a objetos, digamos Java, entonces el candidato debería conocer al menos un lenguaje orientado a objetos, por ejemplo C# (.NET). Esto se debe a que aprender un nuevo paradigma es bastante más complicado que aprender un nuevo lenguaje.
Como siempre, depende de tu contexto: si necesitas alguien para un proyecto muy rápidamente, entonces puede ser que no tengas tiempo para que esta persona aprenda. Pero si tu idea es que este trabajador se quede más de tres meses, entonces no tiene que ser un criterio importante. Mejor pensar a largo plazo.
Consejo 2: no busques solamente a un Desarrollador Senior
Esta denominación de Desarrollador Junior/Middle/Senior se usa mucho, a nivel internacional. En muchos de los casos, hace referencia a los años de experiencia del programador.
En realidad, los años de experiencia es un indicador muy malo del valor de un programador.
La programación y la tecnología es la industria que cambia más rápidamente en el mundo. Todos los cinco años, hay una revolución, ya sea en herramientas, metodologías de trabajo o lenguajes de programación. Lo más importante es que el programador se actualice todo el tiempo.
Los años de trabajo no reflejan en nada los conocimientos de una persona. Es mucho mejor tener un joven curioso y talentoso que una persona con más años, pero que no continuó aprendiendo después de la universidad.
Inclusive para puestos de jefatura, puede resultar muy interesante tener la visión más moderna/fresca de una persona joven, que tener la de alguien con más “experiencia”, pero que ya está acostumbrada a una manera precisa de trabajar y le cuesta adaptarse.
Consejo 3: el inglés importa más de lo que piensas
¿Cuál es una de las habilidades más importante de un programador? Diría sin hesitar buscar en Google.
Hoy en día trabajamos en un entorno en el cual se necesita hacer búsquedas todo el tiempo. Porque independientemente de nuestra capacidad intelectual, estamos trabajando con herramientas creadas por otras personas, por lo tanto necesitamos buscar ayuda a diario.
Una insuficiencia de comprehensión del inglés puede hacer este proceso de búsqueda de respuestas mucho más complicado. Para cualquier pregunta que puedas tener, si buscas en inglés, vas a encontrar muchísimos más resultados.
Para que tengas una idea de las cifras de las búsquedas en Google según el idioma:
Búsqueda | # resultados en inglés | # resultados en español | # resultados en inglés / # resultados en español |
---|---|---|---|
ruby on rails | 23 600 000 | 392 000 | 60 |
java | 526 000 000 | 12 300 000 | 42 |
javascript | 1 990 000 000 | 65 900 000 | 30 |
react | 237 000 000 | 830 000 | 285 |
Muchas veces se necesita hacer búsquedas sobre un error que casi nadie más tiene o buscar algo muy especifico e inclusive en inglés muchas veces no se encuentran resultados. La búsqueda en español limita mucho la probabilidad de encontrar la respuesta.
Además de búsquedas en Google, la documentación oficial de los lenguajes/frameworks/herramientas, que es indispensable para trabajar, pocas veces está en otro idioma que en inglés o está bastante mal traducida o incompleta.
Por esta razón, creo que una comprehensión escrita del inglés es muy importante. Para pedir ayuda en los foros, la escritura también es necesaria. Además, recomiendo que el equipo siempre escriba el código fuente en inglés, por lo que el conocimiento del idioma es más importante aún, ya que permite escoger bien los nombres de variables, de métodos y de clases.
El proceso de selección de las candidaturas
Una vez publicado tu anuncio y teniendo en mente los puntos que te acabo de presentar, llega el momento de escoger dentro de las candidaturas que recibiste para el puesto.
Te aconsejo mucho no ser demasiado exigente con las hojas de vida, porque como te decía, la experiencia de un programador es solamente un elemento dentro de todos los aspectos que forman un buen profesional. Si te limitas mucho a esto, ¡podrías perder muy buenas oportunidades!
En una segunda publicación, te presentaré los elementos importantes para el proceso de entrevista.
¿Necesitas ayuda con tu proceso de selección?
¿Quieres estar seguro de contratar a los mejores, pero no sabes bien qué aspectos considerar y cómo evitar contratar a la persona equivocada?
¿Sabes que esto podría tener consecuencias importantes a largo plazo?
Estoy a dispocisión para ayudar a tu empresa con esto. Brindo asesoría sobre cómo mejorar su proceso de selección o ayudándolos a realizar las entrevistas personalmente, asegurándome del nivel técnico y profesional de los candidatos.
Si estás interesado, ¡escríbeme!
Si es el caso, puedes suscribirte a mi newsletter, para siempre recibir los nuevos posts en tu email.