No voy a recomendar libros sobre C ++, sino libros que puedan influir en su forma de pensar sobre programación, sobre ingeniería de software. La programación y la ingeniería de software se pueden practicar a un nivel más alto que cualquier lenguaje dado (aunque el uso de un lenguaje de computadora es necesario para poner en práctica sus pensamientos). Los idiomas son fáciles, pensar es más difícil.
Dos libros sorprendentemente influyentes para la ingeniería de software han sido The Timeless Way of Building y su sucesor / compañero A Pattern Language , ambos del arquitecto Christopher Alexander. Estos dos libros sobre cómo construir edificios han tenido una fuerte influencia en el “movimiento de patrones” dentro de la ingeniería de software.
También recomendaría libros sobre “Programación extrema, como Explicación de la programación extrema de Kent Beck , segunda edición , así como estudiar algunas de sus prácticas, como Desarrollo guiado por pruebas (Kent Beck también tiene un desarrollo guiado por pruebas por ejemplo ). Extreme Programming se basa en la idea de tomar una serie de “Mejores prácticas” de ingeniería de software y luego, en palabras inmortales de Nigel Tufnel, convertirlas en 11. Si la revisión del código es buena, ¿por qué no la revisión continua del código (programación de pares) , si la prueba es buena, ¿por qué no probar todo el tiempo (lo que lleva a un desarrollo impulsado por la prueba), etc. Incluso si nunca entra en un entorno donde puede practicar XP, es útil conocer las mejores prácticas que propugna y por qué trabajar mejor juntos
- No puedo formatear ni convertir mi tarjeta SD del sistema de archivos exFAT de 64 GB a FAT32. ¿Qué se puede hacer?
- ¿Las matemáticas son cruciales para los ingenieros de software?
- Ingeniero experimentado en software de sistemas Linux, pero no puede pasar las pruebas de codificación en línea. ¿Qué tengo que hacer?
- ¿Qué debo hacer para ser ingeniero de software? ¿Qué camino de aprendizaje debo tomar?
- ¿Siempre es difícil ser ingeniero de software honesto?
Estás aprendiendo C ++. Le recomiendo que siga aprendiendo un idioma muy diferente, como Scheme, F # o Haskell. El libro The Structure and Interpretation of Computer Programs , (SICP) de Abelson y Sussman, fue el libro de texto de ciencias informáticas de primer año en el MIT durante 28 años y, en mi opinión, es una excelente introducción al pensamiento sobre la computación y el software de maneras muy poco comprensivas. C-like. Es un libro de 5 capítulos, que va de “introducción a la computación” a “compiladores de compilación”, que no introduce el concepto de estado mutable (es decir, poder decir, en términos de C ++, x = x+1
hasta el capítulo 3 Su enfoque no es Scheme, pero usa Scheme. Probablemente sea posible, con un poco de persuasión, usarlo para F #, ocaml o Haskell (al menos, hasta el capítulo 3). También es gratis en Enlace que le di.