Estas son las cosas que buscamos en un ingeniero de software aquí en camino escalable (Descargo de responsabilidad: soy el fundador aquí):
¿TIENEN LA ACTITUD CORRECTA?
Un gran programador se preocupa por el usuario final. Su dedicación al usuario brilla a través de su trabajo. Son lo suficientemente positivos y pacientes como para resolver los problemas más aburridos y difíciles. Se enorgullecen de su código y les gusta pulido. Cortar esquinas simplemente no es su estilo. Cuando se produce una fecha límite urgente ocasional, un gran programador mostrará dedicación y estará a la altura del desafío.
PREGUNTAS DE ENTREVISTA PARA PROBAR ESTA HABILIDAD:
- Cuénteme sobre la última vez que terminó su jornada laboral antes de que pudiera hacer todo. (¿Están comprometidos con plazos importantes, pueden priorizar y permiten a todos si algo no se puede hacer?)
- Hábleme de un momento en que un proyecto salió completamente mal. ¿Qué hiciste o dijiste? ¿Aprendiste algo de esta experiencia?
- ¿Cómo manejas el conflicto? (aversión al conflicto u orientación a la solución)
- ¿Te consideras afortunado? (arrogante o humilde)
- ¿Cómo fue tu viaje a la entrevista? (Reclamante o sin preocupaciones)
- ¿Con qué tipo de personas no te gusta trabajar? (¿traen a su jefe?)
HABILIDADES DE COMUNICACIÓN
Las buenas habilidades de comunicación se correlacionan directamente con las buenas habilidades de desarrollo. Un gran desarrollador es capaz de comprender los problemas claramente, dividirlos en hipótesis y proponer soluciones de manera coherente. Entienden los conceptos rápidamente, o hacen las preguntas correctas para comprender, y no necesitan tener todo escrito en un documento de especificación.
Los grandes desarrolladores offshore generalmente hablan varios idiomas de manera coherente y se sienten muy cómodos con la documentación en inglés. En el mundo de la tecnología, el inglés es el idioma de facto de la mayoría de las interacciones de documentación e desarrollador. Si no lo hablan lo suficientemente bien, necesitarán intérpretes y traductores, haciendo que sus conocimientos sean de segunda mano y rápidamente obsoletos.
CÓMO PROBAR ESTA HABILIDAD:
Simule una reunión de scrum y vea cómo interactúan.
Déles un problema / escenario y vea cómo se comunican de manera efectiva.
EXCELENTE A LA VEZ Y GESTIÓN DE TAREAS
Los grandes desarrolladores son altamente confiables y respetan los plazos. Entienden que los humanos son terribles para predecir el esfuerzo y el tiempo necesarios para completar grandes proyectos complejos, por lo que utilizan herramientas y estrategias (como los puntos ágiles) para ayudarlos.
Creo que los desarrolladores excepcionales son excelentes para administrar a sus clientes o líderes, en lugar de ser al revés. Facilitan la vida de todas las personas con las que trabajan.
CÓMO PROBAR ESTA HABILIDAD:
La prueba suele estar en el budín. Una buena manera de evaluar a cualquier desarrollador en estas cualidades es firmar un contrato a corto plazo y tener un período de evaluación en el que todos brinden comentarios sobre el desarrollador. La clave es reconocer las fortalezas y debilidades de su equipo desde el principio y evolucionar el equipo en función del rendimiento. Si alguien no está cumpliendo, quizás deba tomar la difícil decisión de retirarlo del equipo y probar a alguien nuevo.
HABILIDAD DE APRENDIZAJE RÁPIDO
La mejor habilidad que cualquiera puede tener es saber cómo aprender, y los grandes desarrolladores han dominado la habilidad del autoaprendizaje. Esto generalmente proviene de un amor por el conocimiento, la lectura, la resolución de problemas y el aprendizaje en general. Las nuevas tecnologías los entusiasman y tienen la capacidad de aprenderlos rápidamente. Un gran programador extraerá datos dispares y procesará información sobre la marcha. Si bien cada programador experimentará una situación en la que él o ella no sabe la respuesta. Los grandes programadores encontrarán diferentes recursos, hablarán con las personas adecuadas y encontrarán la solución pase lo que pase.
CÓMO PROBAR ESTA HABILIDAD
- ¿En qué áreas de su trabajo está interesado en ampliar sus conocimientos? ¿Cómo piensas hacerlo?
- ¿Cuándo fue la última vez que solicitó comentarios a un cliente o miembro del equipo y críticas constructivas? ¿Te ayudó la retroalimentación? (¿Qué tan bien aceptan y aplican sus comentarios?)
- ¿Cuál ves como tu mejor habilidad y cómo la aprendiste? (Deben saber cómo él o ella toma y procesa nueva información)
- ¿Tienes proyectos paralelos y pasiones? (¿Pasan su tiempo libre aprendiendo y practicando habilidades tecnológicas)
- Prueba estos Entrevistas de casos
- Para probar qué tan bien un programador puede resolver problemas, pruebe algunas preguntas de Guesstimate
HABILIDAD Y EXPERIENCIA TÉCNICA DE PROGRAMACIÓN
Los grandes desarrolladores son expertos en un puñado de lenguajes de programación y son competentes en muchos otros. Han desarrollado la capacidad de predecir y reconocer problemas de codificación.
Los grandes desarrolladores de software siguen los estándares de codificación y escriben documentación para que su trabajo pueda pasarse a otra persona fácilmente.
Un desarrollador experimentado está bien versado en las mejores prácticas como desarrollo ágil, Scrum, software de gestión de tareas (Jira, Trello, etc.), control de versiones (si conocen a Git, es una señal de que se han movido en sistemas anteriores como SVN), y trabajar en diferentes entornos (entorno de desarrollo local y conocimiento práctico de implementación de aplicaciones).
CÓMO PROBAR SUS HABILIDADES DE PROGRAMACIÓN:
Desafortunadamente, ningún conjunto de preguntas se acercará a pedirle a un desarrollador que construya algo. Pero si está buscando evaluar sus habilidades de programación utilizando preguntas de prueba, pruebe Codility o HackerRank. Estas plataformas ofrecen desafíos de codificación en forma de pruebas. Puede crear desafíos innovadores adaptados a ciertas áreas, clasificar a los candidatos tecnológicos a través de tareas de programación objetivas y automatizar gran parte de su reclutamiento.
Otras herramientas que puede usar para las preguntas del examen son:
- Coderpad: utilizado por AirBnb, Quora, Hired, Lyft.
- Entrevista de código: servicio principal + complementos IDE gratis, paga por las características premium.
- Entrevista Zen: míralos resolver problemas en tiempo real, se puede hacer de forma remota.
- Pida ejemplos de trabajos anteriores: ¿Pueden mostrar productos anteriores que hayan construido, enviar muestras de código o capturas de pantalla de diferentes mejoras? Puedes pedirle a un desarrollador de confianza que revise esto.
- Referencias: pedir referencias. Hablar con emprendedores o CTO para los que han trabajado le dará una indicación de su habilidad técnica y sus otras cualidades intangibles.
- Desafíos de programación: aunque la mayoría de los desafíos que enfrentan los programadores durante proyectos reales no se parecen a los desafíos de programación que se encuentran en sitios como CodeEval. Sin embargo, si un desarrollador puede tener éxito en algunos de los problemas basados en algoritmos más difíciles en un corto período de tiempo, sabrá que está tratando con una persona inteligente que conoce su informática.
- Hackathons: hoy en día, muchas empresas han comenzado a contratar directamente desde hackathons. En los hackathons puedes ver a programadores altamente talentosos construir software en cuestión de horas. Es una excelente manera de evaluar la eficiencia de la programación, la necesidad de crear software utilizable y qué tan bien funcionan individualmente y en equipo.
Un buen jugador de equipo
Un gran ingeniero de software compartirá generosamente sus conocimientos y ayudará a otros desarrolladores a mejorar. Valoran el logro del equipo sobre el logro personal, lo que significa que ayudan a los compañeros de equipo cuando se atascan y toman bien las críticas. Se toman el tiempo para enseñar nuevas habilidades y escribir documentación que no solo ayuda a los compañeros de equipo, sino a la comunidad de desarrolladores en general.
CÓMO PROBAR HABILIDADES DE COLABORACIÓN:
¿Cuál es el proyecto de equipo más grande que has liderado o en el que has estado involucrado? En lo que respecta a este proyecto:
- ¿Qué desafíos enfrentó el equipo y cómo los enfrentó?
- ¿Puede dar algunos ejemplos de cuándo los miembros del equipo le pidieron consejo y / o usted buscó consejo?
- ¿Qué aprendiste sobre trabajar en equipo en este proyecto en particular?
- ¿Qué parte del proyecto fue más desafiante? (¿Encuentran difícil el trabajo en equipo?)
OTRAS COSAS A CONSIDERAR:
La experiencia está sobrevalorada: aunque la experiencia es importante, no debería ser el único factor que utilice para contratar talento técnico. Alguien con una capacidad de aprendizaje rápido, gran actitud y habilidades de liderazgo emergentes podría ser más creativo con soluciones que son de gran valor para el negocio. La experiencia a menudo viene con el ego, y tomaremos la actitud correcta sobre la experiencia en muchos escenarios. La importancia de estas cualidades difiere según el tamaño de la empresa:
Las compañías más grandes y maduras a menudo buscan un conjunto de habilidades específicas porque sus posiciones son más estáticas y definidas. Sin embargo, la capacidad de resolver problemas, aprender nuevas tecnologías, usar muchos sombreros y trabajar en equipos pequeños se vuelve más importante en un escenario de inicio.