Donde pongo libro puedo poner curso o cualquier otro recurso para aprender. Muchas son las ocasiones en las que leyendo un foro o comunidad de programadores encuentro esta pregunta. Los recién llegados, novatos en realidad (no es ninguna mala palabra, es lo que es), quieren saber cómo empezar. Quizás en su ilusión creen que hay una fórmula mágica o un camino rápido para aprehender ese lenguaje o ese sistema y avanzar lo antes posible.
Debo decir que no.
No hay un libro «maestro» que nos enseñe a los profesionales y a los futuros profesionales del sector el camino correcto y único. No hay un camino correcto y único. Hay muchísimos, al igual que cada cual aprende a su ritmo y a su manera. Por tanto no hay libros únicos. Hay muchos libros, demasiados incluso. La forma de no perder mucho tiempo es hacer un filtrado lo más preciso posible.
Si eres novato, principiante, no tienes conocimiento alguno (y esto vale para cualquier materia), fíjate en los títulos dedicados justo a este sector: «para principiantes», «inicio en», «primeros pasos», etc. Los hay. No son nada despreciables en el sentido de que, por supuesto que son básicos y es justo lo que se busca ¿verdad? Hay que empezar por el abc para llegar luego a escribir poesía.
Bastante difícil es elegir un lenguaje o ahora que esta tan de moda, el «stack»* con el que queremos iniciar el aprendizaje, como para que además queramos el libro desde cero a mil en un solo tomo.
Varios de esos libros básicos (cuando digo libros me refiero como decía al principio a cualquier recurso) compartirán la misma información. Es lógico. La diferencia será el estilo de enseñanza, los ejemplos y ejercicios que incluya y la extensión de la misma.
Pienso que es un error empezar por títulos como «Programación experta en…» y mucho más los que prometen lo imposible: «Programación en… en 24h», o los más conservadores, «… en un fin de semana», «… en una semana», etc. Eso es totalmente imposible y ridículo. ¿Puede aprenderse ajedrez en esos tiempos? La respuesta es un rotundo no. En ese tiempo se aprende a mover las piezas, no a JUGAR. Lo mismo sucede con la programación. Se necesita de mucha práctica y muchos problemas a resolver, y resolverlos, para sentirse realmente un iniciado o un experto.
En resumen, que un libro para iniciarse no se tome a la ligera. Es justo lo que hace falta. Iniciarse. Ya vendrán los siguientes niveles. Para cuando estos estén al alcance también ocurrirá lo mismo: existen miles de libros de cada nivel donde poder elegir. ¿Cuál es mejor? Ahí debo reconocer que algunas editoriales tienen más crédito o rigor que otras, así como sus autores. Siempre que sea posible elegir los títulos originales, no las traducciones. En el proceso de traducir suelen generarse gazapos y errores de interpretación.
*Stack: Pila, es decir, el conjunto de herramientas que conforman el entorno de desarrollo y ejecución para un sistema. Por ejemplo, LAMP: Linux + Apache + MySQL + PHP.