50 algoritmos que todo programador debería conocer (segunda edición)
Un nuevo título de O’Reilly/Packt, “50 Algorithms Every Programmer Should Know”, despierta escepticismo tanto por su editorial como por su alcance, que salta desde estructuras de datos básicas hasta handshakes de TLS y temas de deep learning como LSTM y LLM. Muchos comentaristas sostienen que el libro es superficial y está guiado por la moda más que por la necesidad, en contraste con textos de algoritmos más respetados y cursos universitarios gratuitos. La conversación se amplía hacia si la mayoría de los ingenieros de software necesita implementar realmente esos algoritmos, el valor de entenderlos conceptualmente frente a depender de bibliotecas y el cansancio ante afirmaciones del estilo “todo programador debería saber”.
Percepción de la editorial y calidad de la edición
- Muchos comentaristas desconfían de la editorial (Packt), describiendo su modelo como “cantidad por encima de calidad”, una débil selección de autores, edición mínima y una fuerte dependencia de tácticas de reseña a cambio de libros gratis.
- Varios cuentan que fueron contactados como autores/revisores inexpertos, lo que refuerza la sensación de bajos estándares editoriales.
- Algunos señalan excepciones (algunos títulos que les gustan), pero en general evitan los libros de Packt.
- La coedición en oreilly.com se percibe como una dilución de la marca tradicionalmente más sólida de O’Reilly.
Alcance del libro, contenido y público objetivo
- Se critica que el índice esté sobrecargado: informática básica (ordenación, big‑O, estructuras de datos), criptografía/TLS y una gran parte de ML/deep learning (k-means, RNN, LSTM, GRU, LLM, SciPy/Jupyter).
- Muchos ven esto como un superficial “todo lo que se vende ahora” más que como un texto coherente de algoritmos; algunos lo llaman una “crisis de identidad”, más parecido a una panorámica de ML/IA.
- Las RNN/GRU/LLM se consideran ampliamente irrelevantes para “todo programador”.
- Una revisión técnica del capítulo sobre el handshake de TLS lo considera confuso y engañoso.
- Algunos sugieren que el público objetivo real son personas centradas en LeetCode y entrevistas de programación.
Recursos alternativos
- Se recomiendan varios textos clásicos de algoritmos y apuntes gratuitos en línea como alternativas más sólidas, profundas o enfocadas.
- También se mencionan positivamente introducciones más accesibles (p. ej., libros de estilo “grokking”, tratamientos visuales e intuitivos).
¿Necesitan los programadores conocer/implementar algoritmos?
Muchos programadores de la industria dicen que casi nunca implementan algoritmos básicos por su cuenta; usan estructuras de datos y funciones de ordenación/búsqueda de bibliotecas.
Aun así, muchos sostienen que entender los conceptos (estructuras de datos, BFS/DFS, ordenación topológica, complejidad, localidad de memoria) es crucial para:
- Elegir contenedores y bibliotecas apropiados.
- Depurar y ajustar el rendimiento.
- Reconocer cuándo un problema coincide con un algoritmo conocido.
Otros replican que memorizar big‑O y detalles suele ser “trivia” y que el rendimiento real proviene de perfilar y entender implementaciones concretas y la E/S.
Educación, entrevistas y “todo programador debería saber”
- Varios señalan una brecha entre las entrevistas centradas en algoritmos y el trabajo diario, donde esas habilidades rara vez se usan directamente.
- Los desarrolladores autodidactas describen síndrome del impostor en torno a algoritmos “avanzados”, pero descubren que en su mayoría necesitan conciencia conceptual, no una implementación detallada.
- El estilo de “N cosas que todo programador debería conocer” se considera ampliamente clickbait, dogmático y generador de ansiedad.