Cómo mejorar en la resolución lógica de problemas algorítmicos para entrevistas técnicas

Eres un mal programador, y ese no es el problema. Aunque las matemáticas son muy importantes, y conocer los algoritmos es un gran activo, puede ser un programador terrible pero un desarrollador brillante de JavaScript (reemplace JavaScript con el idioma / plataforma de su elección).

Mi última entrevista técnica tuvo un algoritmo que tomó el máximo entre los índices de dos letras, en una cadena. La firma de la función era así getMaxBetweenIndexes(string, firstLetter, secondLetter) . El código era feo y querían que lo mejorara, lo optimizara y también lo acortara. Eran aproximadamente 80 líneas de código y 300 tokens.

Math.max un Math.max simple sobre string.lastIndexOf(firstLetter) y string.lastIndexOf(secondLetter) . Convertí esa función en un 1-liner, usando las funciones de flecha en ES6.

Si crees que apreciaron esto, me atrevería a argumentar en contra de eso, ya que no se han molestado en responder. Probablemente esperaban que usara un algoritmo antiguo que aprendí hace unos 10 años cuando estaba en la escuela y que nunca tuve que usar después de eso.

Creo que, por ejemplo, agregar un montón de basura roja-negra, de amplitud y profundidad primero a las entrevistas de front-end, es solo una forma estúpida para que las empresas salgan buscando solo el mejor talento en el campo y presumir al respecto

Los programadores, para mí, son personas que son extraordinarias en matemáticas y algoritmos, y pueden hacer que su cerebro explote por la amplitud y profundidad de su conocimiento en estos campos, pero que no necesariamente escriben códigos hermosos, por ejemplo.

Del mismo modo, los desarrolladores de software pueden no conocer más de dos algoritmos de búsqueda y un algoritmo de clasificación, pero crean software que la gente usa.

En mi versión de la vida, los programadores exponen las bases sobre las que crean los desarrolladores de software. Sin verdaderos programadores, las computadoras no serían tan rápidas, la nube probablemente sería un sueño y aún estaríamos usando tarjetas perforadas. Volviendo a los Desarrolladores de software, sin ellos, probablemente tendríamos servicios y aplicaciones en la nube con interfaces basadas en texto y API que requerirían que cada empresa tenga un empleado llamado Alan Turing.

¡Salud!

Práctica. Esto parece una brecha bastante grande en su conocimiento, considerando que los algoritmos y las estructuras de datos son los fundamentos de la programación. Pruebe el curso de algoritmos de Khan Academy para rellenar o actualizar sus conocimientos. Lea los libros de programación, Eloquent JavaScript es fantástico.

Siguiente – práctica. Intente resolver algunas pruebas de entrevistas de programación para tener una idea de lo que se espera.

¡Buena suerte!

More Interesting

¿Cuáles son algunas de las mejores preguntas que generalmente se hacen en una entrevista IIT?

Cómo aprender y dominar Linux para descifrar una entrevista en una empresa

¿Qué debo hacer si obtendré un título de CS y tengo poco conocimiento de las estadísticas, pero me inscribí en un programa de ciencia de datos de MS?

Cómo preparar aptitudes en dos días para una entrevista de software

¿Cuántos candidatos entrevistan las principales compañías de Internet cada mes para funciones de ingeniería?

¿Cuáles son algunas de las preguntas importantes de la entrevista técnica que utiliza la estructura de datos matriciales?

¿Qué es una subcadena?

Como programador competitivo, ¿cuál debería ser su enfoque cuando un entrevistador hace una pregunta fácil / moderada que puede resolver fácilmente?

¿Qué preparativos son necesarios para una entrevista técnica como diseñador de experiencia de usuario en una empresa de consultoría?

¿Es aconsejable no dar las respuestas de inmediato en una entrevista de programación para dar una buena impresión de que conozco todas las respuestas, así como reducir el número de preguntas del entrevistador ya que está programado?

Cómo asegurarse de que me he preparado exhaustivamente para las ubicaciones

¿Cuáles son los programas técnicos C solicitados en entrevistas?

Cómo buscar en una matriz ordenada por filas y columnas

Es probable que asista a una entrevista (software) el próximo mes, ¿dónde puedo prepararme para la entrevista en línea?

¿Puedo desafiar al entrevistador durante la entrevista técnica?