¿Qué busca al entrevistar a ingenieros de software y cómo se asegura de poder obtener esa información?

Me voy a centrar en entrevistas de nivel junior aquí. Hay consideraciones adicionales para ingenieros superiores o clientes potenciales.

Para un ingeniero junior, siento que hay tres áreas principales.

El primero no es uno que yo investigo activamente en una entrevista técnica (pero investigaría en una entrevista de gerente de contratación), pero a menudo sale indirectamente. Me refiero a la actitud general hacia las cosas, a veces denominada “ajuste cultural”. Básicamente, ninguna compañía razonable quiere contratar personas que sean un lastre para otras personas. La mayoría de las personas son lo suficientemente inteligentes como para no mostrarlo, incluso si su personalidad es tóxica, pero muchos no se molestan en ocultarlo, y no están siendo contratados, no importa cuán buenos sean técnicamente. Otros pueden no ser tóxicos, pero literalmente pueden encajar mal, ya que están buscando un tipo de entorno diferente al que ofrece la empresa. Un ejemplo simple para Quora sería alguien que quiera pasar todo su tiempo haciendo investigación teórica.

La segunda área es poder resolver problemas. Esta es el área básica de competencia para un programador. Por lo general, esto se prueba pidiéndole al candidato que resuelva un pequeño problema de algoritmos. El truco allí es dar un problema que sea accesible para personas con una variedad de habilidades, y que tenga una variedad de soluciones, desde malas a buenas o grandes. Quiero que el candidato lo resuelva, incluso si lo hacen de la manera más simple (y peor) posible. Una razón es que no quiero arruinar el estado mental del candidato, ya que tienen más entrevistas que hacer. Más importante aún, a menos que lo resuelvan de alguna manera, no puedo hacer que escriban código (vea la tercera área). Lo más importante es que puedo observar cómo lo hacen, que es realmente el punto de la entrevista.

Hay casos en los que alguien está extremadamente familiarizado con el problema y solo me da la respuesta. Esto no es informativo para mí, así que solo te daría un problema diferente. Quiero verte demostrar habilidades para resolver problemas. ¿Cómo visualizas un problema? ¿Cómo se te ocurre una idea? ¿Cómo se prueba la idea? ¿Considera todos los casos de esquina? Si la idea no funciona, ¿cómo se reagrupa? ¿Sigues golpeando en una dirección para siempre, incluso si no funciona? ¿Toma pistas (daré algunas)? ¿Reconoces qué tan buena es tu solución? ¿Buscas una mejor? Todos estos dan mucha información. En algunos casos, ni siquiera es importante si resolvió el problema, si demuestra que lo habría hecho en un tiempo, y su solución hubiera sido excelente. (Dicho esto, es mejor que no busques una solución complicada primero, ya que también estoy buscando pragmatismo).

La tercera área es solo habilidades de codificación. Lamentablemente, hay personas que pueden resolver problemas, pero no pueden escribir el código correcto. Para hacerlo bien en esta área, domine un idioma que usará para la entrevista. Escribir código unidiomático, redundante o sintácticamente inválido es un problema grave. A veces también se ven personas que tienen problemas para escribir su algoritmo como código. En última instancia, esta área suele ser lo más fácil de dominar, pero algunas personas no lo hacen.

En general, espero que las personas demuestren un nivel razonable de competencia en la resolución de problemas, un nivel correcto de habilidades de codificación y que no se equivoquen con la cultura, y me alegraría que se uniera a mi equipo.

Busco su habilidad para hacer el trabajo. La mejor manera de aprender eso, en mi opinión, es hacerle una pregunta de codificación al candidato y dejar que ingrese el código para resolverlo, en un documento de Google en el idioma de su elección.

Soy extremadamente indulgente con los errores de sintaxis y el rendimiento del código en tiempo de ejecución. Solo quiero ver un código que funcione. Además, la pregunta de codificación es solo de dificultad moderada y doy pistas si se atascan. Sin embargo, requiere que el candidato sepa cómo usar algunas estructuras de datos comunes y que se encargue de los casos extremos.

More Interesting

¿Qué debo estudiar para convertirme en ingeniero de software?

¿Cómo puede SDE de Microsoft IDC Hyderabad pasar a Redmond?

¿Amazon es una empresa de tecnología de segundo nivel?

¿Cuál es el mejor foro / forma de encontrar un par de grandes ingenieros de software para una nueva empresa de servicios de salud que trabajan en India con un presupuesto reducido, donde la excelente ejecución del desarrollo de software es el factor crítico para determinar el éxito del inicio? -¿arriba?

¿Puede un ingeniero de software convertirse en un oficial de IAS sin dejar su trabajo?

¿Qué cosas has aprendido en tus primeros 6 meses de trabajo como ingeniero de software?

¿Pueden los ingenieros de software tener un cuerpo sano dado que trabajan en una silla la mayor parte del día?

¿Los trabajadores indios H1B cambiaron la respetada percepción de la ingeniería de software?

¿Cuánto más productiva es la programación de pares en comparación con la programación individual en la industria de desarrollo de software?

¿Cómo evalúa eficientemente un ingeniero de software en un equipo de inteligencia artificial las ideas de trabajos de investigación publicados?

Cómo convertirse en un ingeniero de software de mente más abierta

Cómo convertirse en un ingeniero de software de clase mundial

¿Qué significa tener experiencia con un sistema operativo Linux en los requisitos de trabajo para un puesto de ingeniería de software?

Soy un viejo estudiante ¿Debo ser ingeniero de software o analista cuantitativo?

¿Las matemáticas son cruciales para los ingenieros de software?