Los candidatos de prueba de las empresas solicitan a los candidatos que resuelvan nuevos problemas y escriban código para entender lo siguiente:
- ¿Qué tan inteligente eres? ¿Qué tan bueno eres para resolver nuevos problemas? ¿Piensas en las complejidades? ¿Continúa intentando mejorar su solución? ¿Entiende y evalúa las compensaciones entre diferentes soluciones?
- ¿Qué tan fuerte de un codificador eres? ¿Entiendes y te importa escribir código, código limpio y mantenible?
En general, las empresas no lo prueban con conocimiento de estructuras de datos y algoritmos. Sí, se requieren algunos conocimientos para resolver el problema, pero en realidad es bastante mínimo. No te interrogan sobre los detalles del problema de la mochila, por ejemplo.
Las habilidades para resolver problemas y las habilidades de codificación son muy relevantes para lo que hace a las personas un buen desarrollador en el mundo real.
- ¿Qué factores debe tener en cuenta una empresa estadounidense al contratar empleados que permanecerán y trabajarán en el extranjero?
- Cómo convertirse en un verdadero desarrollador después de solo trabajar independientemente
- Antes de que el memorando de Google argumentara en contra de apuntar a una proporción de género 50:50 en trabajos de ingeniería de software, ¿algún ingeniero fuera de Google alguna vez argumentó por eso?
- ¿Dónde puedo encontrar excelentes ingenieros de Ruby on Rails?
- Si he sido rechazado por muchas empresas importantes por un puesto de ingeniero de software, pero aceptado en una empresa pequeña, ¿cuál debería ser mi próximo paso?
¿En qué consiste la programación del mundo real?
- Creación de nuevos sistemas: comprenderá mejor cómo pensar en las compensaciones y resolver nuevos problemas. También debe ser un buen programador que entienda cómo escribir código real.
¿Por qué no probar esto directamente? Lo hacen, más o menos. Pero no puedes decir: “¡Aquí! ¡Construye esta cosa que nos llevó 12 meses!” Sin embargo, le pedirán que explique cómo lo diseñaría.
- Comprender las nuevas tecnologías: esto es algo importante, pero en realidad no es tan importante. No estás saltando a nuevos idiomas cada semana ni nada de eso. Hay pocas razones para probar esto directamente, aparte de asegurarse de que alguien sea inteligente.
- Manejo de proyectos grandes: Hay un aspecto de “gestión de proyectos” / ética de trabajo al manejar un proyecto grande, pero eso es difícil de probar. También hay un aspecto de mantenimiento de código de esto. Esto es lo que evalúan las pruebas de codificación.
- Uso de herramientas específicas como control de versiones y depuradores: si bien la programación del mundo real implica esto, también es fácil aprender estas cosas. No querrás rechazar a alguien porque nunca ha usado el control de versiones cuando puedes enseñarles estas cosas con bastante facilidad.
- Resolver nuevos problemas con buenas soluciones: esto está probado.
- Escritura de código para nuevas funciones: esto está probado.
- Probar su código y solucionarlo: Esto se prueba.
Si bien las preguntas de programación y codificación / algoritmo del mundo real son muy diferentes, las preguntas de codificación / algoritmo ayudan a diferenciar las habilidades y aptitudes que diferencian a las personas en la programación del mundo real. No diferenciará a las personas en todos los factores (como la ética de trabajo, que es probablemente uno de los atributos más importantes), pero esas cosas son difíciles de probar.