La programación requiere la capacidad de resolver problemas. Tienes que ser capaz de tomar grandes problemas y dividirlos en problemas más pequeños. Tienes que ser un pensador claro. Resolver problemas relacionados con algoritmos requiere habilidades similares de resolución de problemas. Si puede demostrar que es un solucionador de problemas sólido con una pregunta de algoritmos, entonces el entrevistador puede asumir que tiene el potencial de ser un buen programador. Esta suposición podría estar equivocada, pero las empresas están dispuestas a apostar que no lo es. No estoy diciendo que si no puedes hacer algoritmos no puedes ser un buen programador.
Además, los entrevistadores no quieren evaluar a las personas en idiomas específicos porque las personas pueden aprender nuevos idiomas fácilmente. Hay pocas razones para rechazar a alguien porque aún no está familiarizado con la pila de programación que usa en su empresa.
Entonces, ¿con qué nos deja eso? Preguntas de diseño y preguntas de algoritmos. Y estos son generalmente lo que se pregunta en las entrevistas. Si no cree que los algoritmos tengan algo que ver con su trabajo, podría estar en lo cierto, pero si alguna vez desea desarrollar tecnología de punta, es importante saber cómo resolver algoritmos.
- ¿Qué debo aprender para las entrevistas de programación Java? ¿Qué se necesita para obtener una entrevista?
- ¿Cuán diferente es la entrevista de Google para el puesto de Ingeniero de Software en comparación con el puesto de Ingeniero de Software, University Grad?
- ¿Cuáles son las preguntas comunes de la entrevista del programador de red?
- Dada una matriz de entrada de enteros de tamaño n, y una matriz de consulta de enteros de tamaño k, ¿cómo encuentro la ventana más pequeña de la matriz de entrada que contiene todos los elementos de la matriz de consulta, preservando el orden?
- ¿Cómo podemos encontrar el número de subcadenas distintas en una cadena que son palíndromos en O (N) u O (N log N)?
Otra razón por la que los entrevistadores hacen preguntas sobre algoritmos es que los algoritmos son algo que se supone que has aprendido en la escuela (suponiendo que hayas estudiado informática). No quieren personas que puedan regurgitar lo que aprendieron en la escuela. Quieren personas que puedan aplicar lo que aprendieron de la escuela. Probar habilidades algorítmicas de resolución de problemas es una forma de diferenciar a los estudiantes inteligentes de los estudiantes promedio.
Dado que se espera poder resolver preguntas de algoritmos, es común que las personas se preparen para una entrevista practicando algoritmos. Entonces, hacer preguntas a los algoritmos también es una forma de ver quién se preocupa lo suficiente por el trabajo para prepararse.
Los entrevistadores de hoy analizan el trabajo y el perfil anteriores. Pero eso no les dice si eres un buen comunicador. Eso no les dice qué tan rápido puede resolver un problema, o qué tan rápido puede codificar. Eso no dice si eres un apasionado de tu trabajo. Les dice casi nada acerca de sus habilidades para resolver problemas.
TL; DR: Ser bueno en algoritmos no es necesario para estar calificado para un trabajo. Sin embargo, ser bueno en algoritmos es un indicador probable de que puede aprender rápidamente y convertirse en un buen ingeniero de software. Probar algoritmos es una manera fácil para que las empresas ahorren tiempo al buscar candidatos calificados y apasionados.