Por lo general, se lo entrevistaría sobre algoritmos / estructuras de datos (y habilidades analíticas), programación y diseño de sistemas. Aquí hay una descripción general de cómo puede mejorar estas habilidades:
- Paso 1: Algoritmos : Obtenga este libro – Diseño de algoritmo: Kleinberg / Tardos. Por alguna razón, este libro no es tan popular como los otros libros de algoritmos, pero está muy bien organizado. El conjunto completo de algoritmos se divide claramente en unos pocos capítulos: teoría de gráficos, algoritmos codiciosos, dividir y conquistar, programación dinámica , flujo de red y algunos otros temas diversos en algoritmos. Debería dedicar unos días a cada uno de los temas anteriores en negrita: estudie el capítulo en 1–2 días y haga los 50 problemas al final. Debido a que solo hay un número manejable de problemas en cada capítulo, puede resolver la mayoría de los problemas en un tiempo razonable. Es posible que desee omitir entre el 20 y el 30% de los problemas que son relativamente difíciles, pero debería poder resolver el 70–80% de los problemas, solo o con poca ayuda.
- Paso 2: estructuras de datos y programación : para este paso, elija un idioma cuando comience y practique el uso de ese idioma solamente. Creo que Java es el mejor en lo que respecta a las entrevistas: orientado a objetos que ayuda a escribir código modular con mayor facilidad, tiene verificación de tipo, facilita el razonamiento sobre la corrección del código (a diferencia de Python) y tiene buenas bibliotecas para estructuras de datos y para manejo de cadenas (a diferencia de C ++). Encontré Cracking the Coding Interview bastante bueno. Una vez más, hay capítulos sobre cada tema importante (aunque más detallado que el libro anterior). Para cada capítulo, hay un conjunto de aproximadamente 10 problemas. Por lo general, omito los más fáciles y solo elijo los 1 o 2 problemas más desafiantes del conjunto. Dependiendo de su nivel, es posible que desee hacer lo mismo o probar todos los problemas. Para cada problema que resuelva, escriba el código desde cero sin un IDE . Y luego escribe casos de prueba. (De hecho, deje de usar IDE en la medida de lo posible en su trabajo diario. Esa será una buena práctica para aprender el idioma en el que está trabajando). Al momento de escribir el código, piense en la legibilidad, modularidad y eficiencia de su código. Finalmente, lea las soluciones proporcionadas.
- Paso 3: Diseño del sistema : una vez más, descifrar la entrevista de codificación tiene algunos buenos problemas en esta área. Practicalos.
- Paso 4: Preguntas de la entrevista : en esta etapa, querrá consultar los recursos en línea, como GeeksforGeeks y CareerCup.
Luego, en función de su autoanálisis, es posible que desee volver a uno o más de estos pasos y continuar trabajando en habilidades particulares.
- ¿Qué sitio de codificación competitivo tiene la mejor oportunidad de obtener una entrevista para un puesto de Ingeniería de Software?
- ¿Qué opinas de CodePair by HackerRank?
- ¿Cómo encontraría eficientemente un número que se elimina de una matriz sin clasificar con los números 1, 2, 3 ... N?
- ¿Debo usar TopCoder o el libro Cracking the Coding Interview?
- Si menciona en su currículum que tiene un nivel principiante de competencia en un lenguaje de programación en particular, ¿cuánto se espera que sepa?