Paso 1 Mejora tus conocimientos teóricos.
Mi consejo es tomar el Curso de Algoritmos de Princeton en Coursera:
https://www.coursera.org/course/…
- ¿Cómo se puede ir más allá de las estructuras introductorias de informática / datos y comenzar a construir programas y aplicaciones por su cuenta?
- ¿Por qué las compañías de software, durante las entrevistas, se preocupan si los candidatos conocen la sintaxis exacta del código?
- Dadas 2 matrices ordenadas de enteros, ¿cómo se combinan en 1 matriz para que no haya duplicados y esté en orden ascendente?
- ¿Podemos pedir más detalles sobre la entrevista con Google?
- 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?
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!