Como ingeniero de software junior, es muy fácil.
Te voy a hacer una pregunta de programación. Se trata de un algoritmo simple y una estructura de datos. Voy a dejar de lado un montón de detalles. Ir.
Esto es lo que estoy buscando:
- ¿Cómo se explica el algoritmo de Metropolis-Hastings en términos simples?
- ¿Cuáles son los algoritmos de búsqueda paralelos más importantes? ¿Qué ventajas tienen sobre los algoritmos de búsqueda clásicos?
- Estoy buscando algunas clases que me darían consejos sobre el enfoque. ¿Debo tomar el diseño del sistema, el algoritmo o la preparación de la estructura de datos?
- Cómo comenzar a aprender cómo crear algoritmos de comercio Quant en Java
- ¿Alguien puede darme una idea para escribir un programa que use varias estructuras de datos?
- ¿Preguntó sobre los detalles faltantes o acaba de comenzar con el problema?
- ¿Primero descubriste una solución o comenzaste a escribir código?
- ¿Viste los casos límite?
- Si encontró un problema con los casos extremos en su código, ¿se tomó un momento para volver a su solución o simplemente comenzó a descifrar el código para intentar que funcione?
- ¿Hiciste algunas pruebas (incluso a mano) del código antes de decir que ya terminaste?
- Si se encontró con algunos problemas y le di algunas pistas o comentarios, ¿escuchó?
- Si le hago una pregunta sobre su código o solución que tiene un problema, ¿escuchó y consideró, o se puso a la defensiva?
- ¿Puede explicar su solución claramente sin recurrir al código?
- ¿Puede recorrer su código línea por línea y explicar qué está haciendo y cómo se relaciona con su solución?
Si puede hacer todo esto y no necesita que se lo indiquen, ¡felicidades! Eres un desarrollador junior bastante bueno. En serio, si hiciste todo esto sin preguntar, estás en el 80% de todos los desarrolladores junior.
A continuación, le pediré que codifique la solución para una simple pregunta de seguimiento basada en lo que acabamos de hacer. ¿Lo atraviesas? ¡Bueno! Acabas de cimentar tu clasificación más alta anterior. Si no le fue tan bien en la primera parte, ¿escuchó los comentarios cuando discutíamos su trabajo y le fue mejor? Esto también es bueno.
Finalmente, si llegamos hasta aquí, le pediré un seguimiento más complicado basado en lo que acabamos de hacer. ¿Puedes hacer una puñalada decente en la solución? No necesita codificarlo. Simplemente presente un enfoque y una explicación decentes. Felicitaciones, usted se encuentra fácilmente en el 95% superior de todos los desarrolladores junior.
Realmente no me importa si puedes encontrar un algoritmo elegante o una estructura de datos en los 60 minutos que tengo disponibles para una entrevista. Así no es como funciona la programación del mundo real. Necesito averiguar si sabes sobre estas otras cosas que mencioné anteriormente. Si puede hacer eso, sé que puede trabajar de manera confiable en un entorno del mundo real.
Lo admito, soy un poco idiota con respecto a tus proyectos anteriores. Con respecto a sus proyectos de trabajo anteriores, ¿puede explicarlos y lo que hizo en ellos? Son alrededor de 5, quizás 10 minutos de conversación, pero esto reduce el tiempo de la entrevista. Si no parecen tan interesantes, no voy a pasar mucho tiempo en eso.
Con respecto a sus proyectos personales, realmente no me importa mucho a menos que se publique en una revista en alguna parte. La razón es que no tengo idea de cómo lograste el proyecto. ¿Solo estabas buscando el código de Google? ¿Lo has pirateado sin descanso hasta que funcionó? ¿Hubo alguna limitación de tiempo para su proyecto? ¿Qué pasa con los otros 99 proyectos que se estrellaron y se quemaron? Realmente no voy a pasar un tiempo limitado de entrevistas haciendo revisiones de código de sus proyectos personales.
Después de pasar la entrevista, tendremos tiempo de sobra para discutir proyectos personales e historias comerciales.