No estoy seguro si estoy respondiendo la pregunta exactamente, pero intentaré escribir sobre los errores comunes que veo que los candidatos cometen al codificar entrevistas.
Suponiendo que uno haya traducido aproximadamente el flujo lógico del algoritmo a código, los errores más comunes ocurren alrededor del manejo inadecuado de casos extremos y el uso incorrecto de primitivas de codificación . Ejemplos:
- ausencia de cheques nulos
- casos base ausentes o inadecuados (por recursividad)
- paso por valor vs paso por referencia (en código C / C ++)
- errores fuera de uno e índice fuera de límites (como en contadores de bucle o variables y con índices de matriz)
- Acceso conflictivo incorrecto de variables estáticas / globales (el estado cambia de forma impredecible).
- valores de retorno incorrectos o casos en los que los valores de retorno pueden diferir a valores no deseados por el candidato, porque no todas las rutas se han codificado explícitamente.
- y más…
Fuera de estos, los errores lógicos pueden estar presentes en los algoritmos mismos.
- ¿Cómo me preparo para una entrevista in situ para el rol de ingeniero de desarrollo de software en Amazon Hyderabad?
- Con un par de entrevistas de programación en Square a la vuelta de la esquina, ¿cómo puede uno con falta de experiencia en pruebas unitarias prepararse mejor?
- ¿Qué preguntas me pueden hacer sobre las prácticas ágiles? ¿Cómo debo prepararme para tales preguntas?
- Cómo solucionar problemas con el proceso de entrevista de ingeniería de inicio
- Se le proporciona una matriz 2D (que representa un mapa mundial). Las celdas adyacentes con el mismo número representan alguna nacionalidad. Cuenta el número de todas las nacionalidades. ¿Cuál es el enfoque / algoritmo correcto aquí?
La mejor manera de combatir esto es construir ejemplos y recorrer su código rigurosamente para verificar que genera el resultado esperado. A veces, es posible que desee construir ejemplos para ver si puede romper deliberadamente su código.
Varios candidatos obtienen el enfoque correcto, pero introducen errores y errores en la etapa de codificación. No lo toman todo el camino para hacerlo apretado. Puede estar bien hacer esto, pero los entrevistadores esperarían que usted pueda identificarlos y corregirlos.
Para niveles más experimentados, los entrevistadores también pueden esperar que escriba un código limpio, utilizando módulos / interfaces bien separados, lógicamente simples, seguros para hilos, extensibles y comprobables.