Sí y no 🙂
La implementación específica de algoritmos en C / C ++ generalmente pone énfasis en la administración de memoria, por ejemplo, asignando y desasignando memoria. Este detalle de implementación a menudo cambia la forma en que se estructura y presenta un algoritmo. Uno de mis libros de algoritmos favoritos hace esto: ‘ The Algorithm Design Manual ‘ de Steven Skiena. Incluso si no está interesado en C / C ++, es un libro excelente, la mejor exposición que he encontrado sobre cómo aplicar algoritmos ‘en el mundo real’.
Otro libro famoso para algoritmos y estructuras de datos es la serie de Donald Knuth ‘ The Art of Computer Programming ‘. El Dr. Knuth inventó su propio lenguaje ensamblador para un procesador hipotético para ilustrar los algoritmos. Este libro contiene ejemplos extremadamente profundos y completos. En mi opinión, si no estás interesado en el rigor académico, este libro se lee mejor de manera oportunista; tírelo hacia abajo y lea una sección muy específica cuando haya encontrado una estructura de datos o algoritmo y ya esté ‘calentado’ con un problema del mundo real. Esto le dará una mejor idea de cómo se ha desarrollado el algoritmo y el estado de la técnica que los investigadores han creado. Puede ser extremadamente desalentador intentar leer este libro directamente.
- ¿Son los métodos en algoritmos Java?
- ¿Es malo si no entiendo un algoritmo? He estado tratando de entender algunos algoritmos (los recursivos en su mayoría), entiendo la mayoría de ellos, pero no pude entender algunos.
- ¿Cómo se programan y hacen los bots del juego (creados por jugadores) para conectarse con el juego y controlarlo?
- ¿Qué canal / tutorial en YouTube es mejor para aprender algoritmos o estructuras de datos?
- ¿Qué es una expresión regular que devolverá falso cuando una letra determinada aparece más de n veces?
Los algoritmos se pueden expresar de una manera “pura” que abstrae su implementación. Esto a menudo se hace escribiendo en pseudocódigo. Creo que el libro más conocido de esta categoría es ‘ Introducción a los algoritmos ‘, de Cormen, Leiserson, Rivest y Stein (generalmente abreviado como CLRS). Esto le permite aprender algoritmos sin ningún detalle de implementación, con un enfoque en el concepto mismo. Esto no funciona para todos. Si bien creo que es importante descubrir por qué un algoritmo funciona en abstracto, a menudo es muy importante comprender las advertencias de implementar en un idioma en particular.
Así que finalmente volviendo al núcleo de su pregunta: C / C ++ a JS. La mejor práctica es extremadamente diferente para los dos, pero los conceptos centrales del algoritmo siguen siendo los mismos. Si tiene el tiempo y los recursos para aprender en C / C ++, descubrirá que sus habilidades se traducen a Javascript, pero solo si realmente se asegura de haber entendido la lección de cada algoritmo; sobre todo, no escriba a ciegas el código sin entender por qué lo has hecho. Si su interés principal es Javascript y tiene la opción de estudiar algoritmos directamente en Javascript, esa será una ruta más corta. Las habilidades que aprende al comprender algoritmos y estructuras de datos se transmitirán a otros idiomas y lo convertirán en un mejor programador general.