Mi consejo sería centrarse en comprender las ideas muy profundamente. Muchas personas se centran demasiado en los detalles mecánicos de un algoritmo sin entender suficientemente el proceso de pensamiento detrás de él. Desafíese a pensar profundamente y entienda realmente por qué un algoritmo está diseñado de la manera en que lo está, si se puede generalizar para resolver problemas relacionados, y cuáles son sus limitaciones, casos extremos y casos degenerados. En mi experiencia, las personas generalmente aprenden dos cosas cuando se trata de una técnica en particular:
1. Los detalles mecánicos. Por ejemplo, cómo calcular una integral, o los pasos necesarios para insertar un valor en un max-heap.
2. La forma de aplicar una técnica a situaciones del mundo real. Por ejemplo, cómo usar integrales como una herramienta útil para realizar cálculos, o cómo usar montones para resolver problemas en los que es útil tener una cola de prioridad.
Una vez que las personas han aprendido esas dos cosas, a menudo piensan que saben todo lo que hay que saber sobre el concepto. “Sé lo que es un montón, cómo codificar uno y cómo aplicar uno para resolver problemas. ¿Qué más podría haber para saber?”
Intenta ir más allá de eso y busca un tercer nivel de comprensión. Pregunte “¿Cómo alguien pensó en esta idea?”. Encuentra en tu mente una secuencia de pensamientos plausible que te lleve a redescubrir la idea . No tiene que ser históricamente exacto; es decir, no tiene que ser el mismo proceso de pensamiento que llevó al inventor del algoritmo a descubrir originalmente la idea. Tienes la ventaja de la retrospectiva para guiarte. Encuentre una secuencia de pensamientos que tenga sentido para usted y haga suyo el descubrimiento.
- A las chicas no les gusto y me cuesta hablar con ellas. Estoy en mis últimos veinte años, y nunca tuve ninguna relación. ¿Podría la psicoterapia ayudarme de alguna manera?
- No tengo la motivación para estudiar. ¿Qué tengo que hacer?
- Cómo adquirir habilidades interpersonales.
- ¿Qué libros de no ficción te han cambiado totalmente y te han hecho más inteligente?
- Cómo mejorar mis habilidades de debate y usarlas para obtener un mejor trabajo en el futuro
Por ejemplo, supongamos que busca comprender los árboles de búsqueda de equilibrio automático. Piense en el problema en cuestión: para crear una colección dinámica que admita operaciones rápidas de inserción, eliminación y búsqueda. Supongamos que ya has inventado el concepto de una lista enlazada. Podría tener la idea de que, para permitir operaciones más rápidas, puede mantener más que los punteros de cola y encabezado en la lista enlazada, puede mantener los punteros K que se distribuyen uniformemente en toda la lista enlazada. Si ajusta K para que sea [math] \ sqrt n [/ math], puede obtener [math] O (\ sqrt n) [/ math] insertar, eliminar y encontrar. Sin embargo, esta es todavía una estructura bastante plana, y se tiene la idea de hacer esto jerárquicamente. Encuentras que al hacer inserciones o eliminaciones, es difícil mantener el mismo número de hijos para cada padre y aún así obtener un buen tiempo de ejecución, por lo que permites que ese número varíe entre, por ejemplo, 2 y 4. Felicidades, has inventado Algo parecido a los árboles 2-3-4.
Cuando “adoptas” una idea como esa, tomando posesión de ella en tu propia mente, obtienes el poder de modificarla a voluntad para satisfacer tus necesidades. El camino que lo llevó a una idea a menudo se puede continuar, o retroceder y desviarse en otra dirección, para encontrar una idea relacionada para resolver un problema relacionado. Ve de una vez las fortalezas y debilidades de la idea actual, dónde puede generalizarse, dónde no puede tener éxito, por qué se hace de la manera en que se hace y no de alguna otra manera, qué formas alternativas podría haberse hecho, y todo lo que puede informar a la búsqueda.
Quizás lo más importante, a medida que practicas el proceso de pensamiento de la invención, entrenas tu mente para ser mejor inventando.