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.