Cómo dejar de sentirse mediocre en algoritmos y estructura de datos en entrevistas técnicas

Paso 1 Mejora tus conocimientos teóricos.

Mi consejo es tomar el Curso de Algoritmos de Princeton en Coursera:

https://www.coursera.org/course/…

https://www.coursera.org/course/…

Ambos están abiertos ahora, ¡pero muy pronto estarán cerrados! Así que mi consejo es darse prisa. Hay otros cursos abiertos de las mejores universidades, pero creo que son mucho peores. Pero de todos modos, proporcionaré algunos enlaces.

MIT OCW: Introducción a los algoritmos

Stanford vía Coursera (2 partes):

https://www.coursera.org/course/…

https://www.coursera.org/course/…

Berkley

Página del curso con tareas: CS170 Página de inicio

Video conferencias: Computer Science 170, 001 – Spring 2015

Paso 2 :

Resuelva tareas de programación a diario. Te recomiendo que diseñes tu propio horario estricto de práctica. Como pasar 1 hora por la tarde todos los lunes, miércoles y viernes. Para mí, la clave NO es hacerlo demasiado difícil. Debe tener suficiente motivación para practicar de acuerdo exactamente con este horario.

Recursos que uso para practicar:

Refactorizar usted mismo

Codewars

CodinGame

HackerRank

¡Espero eso ayude!

“Estructuras de datos y algoritmos” es el tema favorito de las empresas entrevistadas. Puede comenzar con la resolución de problemas en estructuras de datos y libros de algoritmos.

“Resolución de problemas en estructuras de datos y algoritmos” es una serie de libros sobre el uso de estructuras de datos y algoritmos en la programación de computadoras. El libro es fácil de seguir y está escrito para el punto de vista de preparación de la entrevista . En varios libros, los ejemplos se resuelven en varios lenguajes como C, C ++, Java, C #, Python, VB, JavaScript y PHP.

Composición del libro
Este libro está diseñado para entrevistas, por lo que en el Capítulo 0 se proponen varios planes de preparación . Luego, en los capítulos 1, se explica una breve introducción del lenguaje de programación y el concepto de recursión. Se explican varios problemas basados ​​en recursividad y matriz.

Luego, en el próximo capítulo, analizaremos el análisis de complejidad. Luego analizaremos las técnicas de clasificación y búsqueda.

Luego estudiará las diversas estructuras de datos y sus algoritmos. Buscaremos en una lista vinculada, pila, cola, árboles, montón, tabla hash y gráficos.

Luego analizaremos el análisis de algoritmos, analizaremos algoritmos de fuerza bruta, algoritmos codiciosos, algoritmos de división y conquista, programación dinámica y retroceso.

Al final, analizaremos el diseño del sistema , que proporcionará un enfoque sistemático para resolver los problemas de diseño en una entrevista.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos utilizando C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

Tabla de contenido
Capítulo 0: Cómo usar este libro.
Capítulo 1: Introducción – Descripción general de la programación
Capítulo 2: Análisis de Algoritmos
Capítulo 3: Enfoque para resolver problemas de diseño de algoritmos
Capítulo 4: Tipo de datos abstractos
Capítulo 5: Búsqueda
Capítulo 6: Clasificación
Capítulo 7: Lista vinculada
Capítulo 8: Pila
Capítulo 9: Cola
Capítulo 10: Árbol
Capítulo 11: Cola prioritaria
Capítulo 12: Hash-Table
Capítulo 13: Gráficos
Capítulo 14: Algoritmos de cadena
Capítulo 15: Técnicas de diseño de algoritmos
Capítulo 16: Algoritmo de fuerza bruta
Capítulo 17: Algoritmo codicioso
Capítulo 18: Divide y vencerás
Capítulo 19: Programación dinámica
Capítulo 20: Retroceso
Capítulo 21: Teoría de la complejidad
Capítulo 22: Estrategia de entrevista
Capítulo 23: Diseño del sistema

La mejor manera de mejorar en la resolución de problemas de algoritmos es resolver problemas de algoritmos.

Hay varios sitios web para practicar:

Hackerrank, Leetcode, Coderbyte, Topcoder, Proyecto Euler

… y toneladas de otros.

También recomiendo Cracking The Coding Interview por Gayle Laakmann McDowell.

Si estás en la escuela y tienes acceso a la pizarra, ponte frente a una y practica pizarra. Haga un amigo y una pareja, turnándose para responder preguntas sobre algoritmos. Esta es la clave. Esto es lo que harás en las entrevistas . ¡Practique, use los recursos a su disposición y buena suerte!

More Interesting

¿Qué enfoque debe seguir uno para prepararse para una entrevista de programación?

¿Vale la pena tomarse un pequeño descanso en la carrera para prepararse bien para entrevistas para trabajos aún mejores?

Cómo prepararse para una entrevista en Google para un ingeniero técnico

¿Resolver preguntas sobre el Proyecto Euler es una buena forma de practicar para programar entrevistas?

¿Las grandes compañías como Google, Microsoft o Apple contratan programadores principiantes de más de 30 años?

¿Qué tipo de preguntas de entrevista puedo esperar si elijo circuitos electrónicos analógicos y circuitos microelectrónicos?

¿Qué preparación especial hay que hacer para las entrevistas de empresas como Google, Amazon y Facebook?

Cómo aumentar mi nivel de programación

¿Cuáles son las preguntas que se le hacen a un ingeniero de instrumentación en una entrevista técnica?

¿Cuál es el algoritmo más eficiente y fácil (en términos de implementación) para la coincidencia de patrones en una cadena?

¿Cómo es la entrevista de pregrado de St. Stephen's College y cuáles son las preguntas más frecuentes?

¿Cómo perciben los empleadores a un ingeniero / programador con tatuajes durante la entrevista?

¿Cómo diseñaría un algoritmo que combina n matrices ordenadas en una, si solo podemos fusionar dos matrices a la vez y queremos minimizar el número total de veces que movemos un elemento?

¿Cómo debo responder a las preguntas de la entrevista técnica cuando no sé la respuesta?

¿Cuáles son algunos ejemplos de una entrevista semi-técnica para un programador?