Bueno, solía estar tan satisfecho con mi conocimiento de las estructuras de datos, hasta que conocí el espectacular libro de Knuth, Art of computer Programming. Mientras lo revisaba, página por página, me estaba enviando a un planeta desconcertado. Llego a saber que no sabía nada. Y, por supuesto, fue el despertar. Nunca fui tan malo en matemáticas, pero realmente nunca pensé en las estructuras de datos de esa manera. El libro me hizo mirar las estructuras de datos y el algoritmo de una manera completamente nueva. Y también me enseñó algunas lecciones increíbles:
1. ¿Por qué usar el software de otra persona? Entonces, si desea hacerlo nuevamente, hágalo en un lenguaje que esté más cerca de la máquina. Las estructuras de datos tienen que ver con la percepción de datos de la máquina. Entonces, conozca su máquina correctamente. Hazlo en asamblea.
2. Como programador / ingeniero, tendrás una relación oscura, mestiza, con las matemáticas, toda tu vida . No importa cuán duro trate de evitarlo, siempre se colará. Y, muchas veces no tendrá idea, estuvo presente allí. Las estructuras de datos y Algos están profundamente arraigados en matemáticas. Si quieres volver a hacerlo, hazlo después de desarrollar una profunda afinidad por las matemáticas. El mundo se verá más hermoso y obvio.
- ¿Hay algún algoritmo de clasificación que sea sustancialmente más rápido que QuickSort?
- ¿Cómo pueden uno y qué algoritmos podrían usarse para entrenar una red neuronal profunda con una cantidad limitada de datos desaprender sus representaciones mal aprendidas?
- ¿Qué se entiende por 'profundidad' en DFS?
- ¿Qué series matemáticas debo saber para calcular la complejidad de cualquier algoritmo o pseudocódigo?
- ¿Qué es un algoritmo de descubrimiento de ruta de ataque cibernético?
3. Y por último, si aún no lo ha hecho, hágalo nuevamente con Knuth’s The Art of Computer Programming. Pocas sugerencias,
a) No te vuelvas demasiado religioso sobre las matemáticas. Con este libro en la mano, hay grandes posibilidades de que te atrapen con las matemáticas de tal manera que puedas terminar con un título en matemáticas básicas. Siempre mantén el enfoque. Al final, debes ser un programador, ¡recuerda!
b) No pierdas la esperanza si no entiendes las cosas. Sigue recorriendo las páginas. Algún día lo harás.
c) No sigas este libro para tus exámenes.