Gran respuesta dada por Mohan S Nayaka
En particular, una línea del artículo sobre Leaky Abstraction a la que se refiere es absolutamente fantástica:
“… las abstracciones nos ahorran tiempo de trabajo, pero no nos ahorran tiempo de aprendizaje”.
Una cosa es usar bibliotecas, marcos y herramientas listas para usar, etc., pero comprenderlas es un juego totalmente diferente.
No tiene que aprender a codificar estructuras de datos, algoritmos y conceptos matemáticos, pero no puede elegir las herramientas adecuadas a menos que comprenda cómo funcionan. Y la elección correcta puede dar lugar a grandes diferencias en la eficiencia.
Solo para agregar un ejemplo más a la Lista de abstracciones con fugas:
Solía haber una “colección” en Visual Basic (alrededor del año 2000) a la que se podían agregar y eliminar objetos sin ningún conocimiento de la implementación. ¡Ahora, un tipo inteligente descubrió que el primer elemento se recuperaba más rápido que el último elemento! Un poco de pensamiento y dices: “¡Ajá! ¡Quizás estén usando una lista vinculada para la colección!” ¡Y tan pronto como aprendí esto, dejé de usar la “colección” incorporada y escribí mi propia clase de “Colección” basada en matrices, que fue más rápida para todos los elementos!
¡Gracias por el A2A y la mejor de las suertes!
- ¿Debo postularme a trabajos de desarrollo web si puedo construir aplicaciones CRUD pero no asimilo la notación Big O y nunca he trabajado en un proyecto grupal?
- En programación de computadoras, ¿cómo es recursivo el proceso de evaluación?
- ¿Qué algoritmo de búsqueda aplicaría para la siguiente matriz y por qué?
- ¿Cuál es la forma más fácil de eliminar elementos duplicados de una matriz de derecha a izquierda?
- Cómo contar inversiones divididas con el algoritmo de clasificación de fusión