Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Evaluar las habilidades de programación de los programadores se ha convertido en un paso fundamental en todo proceso de selección técnica. En un estudio llevado a cabo, descubrimos que el desafío principal que enfrenta el 60% de los encargados de selección de personal al momento de contratar desarrolladores es encontrar candidatos lo suficientemente calificados. En efecto, la mayoría de las malas contrataciones en tecnología se debe a la falta de habilidades técnicas.
Puedo escuchar que estás pensando: “un momento… ¿no se puede confiar en los CVs de los desarrolladores?”. La respuesta es: no.
En primer lugar, los desarrolladores no son muy buenos vendiéndose a sí mismos, por lo tanto, puedes perderte grandes candidatos porque no llaman la atención en el papel.
En segundo lugar, porque las habilidades destacadas por el propio candidato no son confiables, ya que si depositas tus esperanzas en un CV muy llamativo, tal vez termines decepcionado con los resultados.
Sin lugar a dudas, una variedad de habilidades es lo que convierte a un programador en un profesional talentoso, aunque las habilidades técnicas son las que podrás evaluar con más exactitud.
A continuación incluimos 5 maneras de verificar las habilidades de programación de un desarrollador antes de contratarlo:
1. Investiga su portafolio como programador
Todo desarrollador apasionado, por más inexperto que sea, debe tener un portafolio de programador.
Los portafolios de los desarrolladores son una excelente manera de mostrar sus habilidades de programación por medio de proyectos personales. Asimismo, se trata de una oportunidad única para dar una muy buena primera impresión. Existen portafolios de diversas formas y tamaños, desde páginas web simples, en el caso de aquellos que se postulan para puestos pequeños, hasta proyectos de software complejos, en el caso de candidatos para puestos senior y de gerencia.
Los portafolios son útiles en el proceso de selección de personal, ya que muestran el nivel de desarrollo del candidato, sus objetivos profesionales, las habilidades que desean adquirir, etc.
Debes prestar atención a la manera en la que cada candidato describe el contexto de cada proyecto: por ejemplo, ¿cómo se integró con otras bibliotecas y herramientas? ¿Trabajó en colaboración con otros desarrolladores? ¿Ha formado parte de demasiados proyectos incompletos?
La buena comunicación siempre es útil en el trabajo de un desarrollador. De la misma manera, el portafolio es una prueba de la habilidad del candidato para explicar y plasmar cosas.
Finalmente, analizar el portafolio de un candidato, así como revisar los códigos fuente de algunos proyectos antes de la entrevista puede servir para iniciar un diálogo y ayudar a formular preguntas más acertadas durante el proceso de selección.
Un buen análisis del portafolio de un candidato programador puede darte una idea de sus habilidades de programación y sus antecedentes.
2. Mira su cuenta GitHub
GitHub es una fuente invaluable a la hora de contratar desarrolladores. En efecto, sirve como una muestra online en donde los desarrolladores trabajan en proyectos de código abierto y contribuyen a las iniciativas de otros profesionales.
En el caso de los desarrolladores, la clave de tener un repositorio GitHub es poder mostrar que pueden escribir un código legible y sostenible que otras personas puedan comprender fácilmente o involucrarse en él.
Como encargado de la selección de personal, antes de explorar el orden, legibilidad y estructura de un código, debes analizar otros factores, tales como:
- La cantidad de seguidores (un signo de prestigio).
- La fecha en que el candidato se unió a GitHub (existe un filtro útil llamado “usuarios recientes” en las opciones de clasificación en el extremo superior derecho) indica su nivel de experiencia.
- Palabras clave relevantes para idiomas y tecnologías.
- Cantidad de repositorios que tiene tu candidato (proyectos que creó y aquellos en los que participa) para saber en qué tipo de proyectos se involucra.
- La actividad pública a través de la cantidad de contribuciones hechas al sitio (peticiones de integración, confirmaciones, temas abiertos).
No obstante, GitHub NO constituye un CV. Es la manera perfecta de ver muestras del trabajo del desarrollador a través de aplicaciones móviles, juegos, guiones, extensiones, etc. Sobre todo, te permite ver de qué manera el desarrollador colabora con otros colegas en proyectos colectivos.
3. Pregúntale sobre el uso de Stack Overflow
Básicamente, Stack Overflow es un sitio de preguntas y respuestas sobre todo lo relacionado con programación informática.
Allí, los desarrolladores pueden hacer preguntas sobre cualquier tema de programación y los miembros activos reciben puntos e insignias por sus respuestas y aportes. El sitio ofrece una riqueza de conocimiento y cualquier desarrollador puede utilizarla diariamente.
Es ideal para medir el nivel de conocimiento del candidato y su compromiso con la comunidad de desarrolladores. Puedes conocer fácilmente la reputación de un desarrollador en Stack Overflow, así como también sus mejores respuestas.
El grado de reputación es aún más objetivo ya que es otorgado por colegas. Los usuarios con mayor reputación en Stack Overflow son desarrolladores que a) son participantes activos en el sitio, b) hacen preguntas apropiadas, c) brindan respuestas útiles gracias a su conocimiento y experiencia.
4. Programación en vivo
Las entrevistas con programación en vivo constituyen uno de los desafíos más duros y estresantes que pueden enfrentar los desarrolladores, por lo tanto, no tienen buena reputación.
De hecho, poder pensar, codificar y comunicarte frente a un entrevistador puede ser estresante si no tienes práctica. No obstante, desde el punto de vista del encargado de selección de personal, las pruebas de programación en vivo son una fuente invaluable de información. Permiten observar la lógica del candidato, su capacidad para explicar lo que está haciendo, cómo piensa y la habilidad para codificar bajo presión.
De esta manera, los entrevistadores pueden ver en tiempo real cómo se desempeñan los candidatos solos, sino contar con otras herramientas más que su conocimiento de programación, y también pueden evaluar las habilidades comunicativas y de colaboración dentro de un equipo (en el caso de entrevistas grupales).
Generalmente, la programación en vivo se hace con pantalla compartida, en donde el candidato recibe un informe y luego es observado mientras completa la tarea. Esta clase de ejercicio es muy diferente a un examen con tiempo. El objetivo del ejercicio no es llegar a una respuesta correcta en el menor tiempo, sino tomar toda la sesión como un diálogo constructivo.
Los entrevistadores pueden estar interesados en ver qué tipo de preguntas hace el candidato para entender el problema antes de apresurarse a intentar resolverlo. Asimismo, valoran que el candidato les diga si está teniendo dificultades en algún momento.
A fin de cuentas, la intención del ejercicio no es producir (ni evaluar) una programación perfecta. Por el contrario, la programación en vivo se reduce a lograr que ambas partes se entiendan mutuamente, en un entorno dinámico y expresivo.
5. Exámenes de programación
Los exámenes de programación constituyen una de las mejores maneras de evaluar a los desarrolladores antes de ser contratados.
En efecto, brindan un modelo probado para identificar y contratar desarrolladores eficientes. Así, los candidatos codifican a su manera a través de problemas reales y prácticos que podrían encontrar en una compañía, lo que permite a los encargados de selección evaluar las habilidades de programación de manera objetiva y eficiente.
Tanto los reclutadores de tecnología como los gerentes de recursos humanos pueden diseñar exámenes de programación utilizando plataformas tales como CodinGame. Este tipo de programas te permite evaluar a los candidatos con un idioma de programación específico o a través de tecnologías múltiples (Java, Angular, Python, etc.).
Tech recruiters to HR managers can set up programming tests using platforms like CodinGame, choosing to test applicants in one specific programming language or over multiple technologies (Java, Angular, Python, etc.).
La programación de los candidatos es analizada automáticamente y los encargados de la selección tienen medidas de desempeño que van desde el dominio del idioma hasta el diseño, legibilidad y solidez de la programación. Una vez completa, se publica un informe de evaluación que puede ser descargado y compartido para comparar fácilmente a los candidatos preseleccionados.
Además de optimizar el proceso de selección, estos exámenes brindan una experiencia mejorada para el candidato (diferente a las discusiones no técnicas que generalmente tienen lugar durante una entrevista inicial). Los exámenes de programación demuestran a los desarrolladores que los encargados de la selección son amigos de la tecnología.
Las evaluaciones de programación ahorran mucho tiempo a los encargados de la selección, a la vez que confirman los aspectos técnicos de los candidatos. Los exámenes de programación técnicos online reemplazan a los exámenes en papel o en pizarra, lo que brinda a los desarrolladores la posibilidad de demostrar sus habilidades.
Los desarrolladores pueden demostrar sus habilidades de programación al enfrentarse a desafíos y acertijos prácticos.
En resumen, te recomendamos que tengas en cuenta estos consejos a la hora de buscar tu próximo desarrollador: elimina las conjeturas y asegúrate de que el candidato sea el correcto sin lugar a dudas.