Todavía no he leído nada mejor que Code: The Hidden Language of Computer Hardware and Software por Charles Petzold .
Es un libro fantástico. No lo lleva a los algoritmos típicos (al menos eso recuerdo), sino que explica de la manera más intuitiva posible cómo se construye una computadora desde flip flops y lógica binaria hasta ensamblaje, lenguaje intermedio y compilación completa de Un lenguaje utilizable.
Básicamente, los programadores principiantes pueden adquirir una amplia comprensión de la base sobre la que se basan los programas que está construyendo al leer este libro. Se lee más como una exposición de no ficción que como un libro tutorial de lenguaje de programación, es decir, dado su tema, es una lectura fácil que puedes hacer en el sofá. Dependiendo de su habilidad y nivel de conocimiento, puede haber algunas secciones que tenga que volver a leer varias veces hasta que lo entienda, pero no sentirá que necesita ir a la silla de su computadora e intentar algo para comprender completamente eso.
Si puede hacer aritmética básica, puede leer este libro. Esa parece ser la premisa oculta. Que las computadoras son fáciles y deberían ser fáciles de entender. Este libro es un testimonio de eso. Aunque estoy seguro de que algunos descubrirán que esto no es lo suficientemente profundo. Pero el punto es: aprender generalmente creará muchos puntos de entrada para que pueda seguir en su viaje hacia la programación y la informática. Aclarará muchas cosas y esencialmente hará que el camino parezca menos aterrador y fuera de alcance. Este libro lo logra muy bien. Los programadores de alto nivel saldrán sintiéndose mucho menos inseguros sobre su falta de conocimiento de los fundamentos de lo que sea que estén desarrollando. Sé que lo hice. No puedo decir lo suficiente sobre este libro. Es el verdadero negocio. Estoy seguro de que aquellos con un título en informática podrían tener más que decir (es probable que piensen que es una descripción general), pero creo que para todos los demás es un título en informática en un libro que pueden leer en una o dos semanas. Al menos la mitad del grado. Para la segunda mitad, recomiendo Algorithms In A Nutshell. ¡Y hecho! Vuelva a programar su aplicación de JavaScript de alto nivel y continúe con su vida.
En una nota al margen: es mi opinión que la teoría primero es el camino equivocado. Primero, la aplicación, según sea necesario, es el enfoque correcto. De lo contrario, es como aprender teoría musical antes de que sepas que incluso te gusta tocar música. Puede que ni siquiera te guste ser programador o ser natural en eso. Y si pasas 4 años estudiando teoría primero, habrás pasado mucho tiempo para descubrir lo que podrías tener en un mes. Además, puede absorber la alegría y la diversión de la exploración de la programación y la informática. Es natural y divertido aprender mientras te sumerges en problemas reales. Todo lo que puedes aprender está en internet. Es muy gratificante y, a menudo, más rápido aprender cosas cuando está aprendiendo a alcanzar un objetivo específico. La teoría que aprendes parece tener mucho más sentido frente a alguna meta a la que tratas de aplicarla. En resumen, a lo largo de su carrera informática puede aprender las mismas cosas mucho más rápido y mucho más divertido si lo hace junto con problemas reales.
Pero dicho esto, a veces debes retroceder y asignar tiempo para los fundamentos, incluso si no tienes un problema específico con el que estén relacionados. Sin embargo, sabrá cuándo es hora de repasar los algoritmos, o finalmente aprender cómo funciona la computadora por debajo de su nivel de abstracción diario. Solo sepa que un porcentaje cada vez mayor de nosotros los programadores fuimos por la ruta aplicada, en lugar de la teoría de la informática primero + ruta de educación formal. Probablemente sea la mayoría de los programadores en este momento. En resumen, no estás solo aprendiendo esto a medida que avanzas. Aprende a disfrutar eso desde el principio y a salvarte del dolor de la inseguridad de no saberlo todo. Esta es una exploración e investigación, y quizás haga algunos descubrimientos que nadie más haya podido hacer, y mucho antes de que haya dominado y entendido todo lo que hay que saber sobre la computadora. Tal vez ese sea el mayor argumento de venta: ¡no tiene que saberlo todo para poder contribuir al mundo de la informática! Así que disfruta de tus actividades en la programación, sabiendo en tu exploración única en cualquier momento que puedas encontrar algo altamente novedoso y valioso.