Computer science is an exciting, fast-growing field, and LSU’s College of Engineering offers a strong program that can give you a solid foundation for getting your career off the ground. But what if you’re looking to build a base before your formal computer science education begins?
We have rounded up a list of books to help. Whether it’s classic best practices for code, the specifics of Java or Agile software development, or how to run an app startup in the smartest way possible in today’s economy, these books can help. Some of them dive pretty deep, but they’re all readable even by novices and newbies.
Steve McConnell’s seminal book remains one of the most respected guides to best practices in software design. This second edition was published in 2004, but it remains timeless as an encyclopedic but eminently readable tool for learning the right way to do things from the start, including overall structure, making debugging more efficient, evolving your code as needed and seeing how all the pieces fit together.
Robert C. Martin’s “Handbook of Agile Software Craftsmanship” is focused on making good code cleaner and better, something any programmer of any experience level should aspire to. The book starts by invoking the Boy Scout Rule — “Leave the campground cleaner than you found it” — and is both about undoing/avoiding bad habits in yourself and your own code and about improving code written by others, not only to make it run better but to improve others’ efficiency and clarity when they follow you in the file.
Longtime programming writer Charles Petzold takes an unusual, indirect approach of explaining how computers work by examining other technologies and logical processes used by humans, some dating back hundreds or thousands of years. Topics include the history of number systems such as binary and hexadecimal and the development of Braille and Morse code. But he also gets directly into the creation of early machine languages and historic processors such as the Intel 8080 and Motorola 6800.
The first edition of this book launched O’Reilly Media’s “Head First” series, which uses nontraditional approaches and a heavy reliance on images to explain technical subjects in a deceptively deep way that’s intended to make your brain happily do work that it might otherwise decide is “boring.” This second edition by co-authors Kathy Sierra and Bert Bates starts with the fundamentals of Java and its object-oriented approach, but it also goes into advanced topics such as threads and distributed programming.
This O’Reilly “Head First” book goes further down the road on object-oriented programming with Java, and especially focuses on overall program design and the area known as “design patterns.” It’s largely seen as an updated and advanced — but still user-friendly — version of the 1994 book “Design Patterns: Elements of Reusable Object-Oriented Software” by the same four authors, known in Java circles as the “Gang of Four.”
Eric Ries’ book offers a guide for entrepreneurs that largely hews to the principles of Agile software development — use shorter development cycles, test constantly, measure actual progress rather than aiming for calendar-based milestones and change direction as warranted by conditions. His focus is creating a company that can sustain itself with products that are initially flawed but constantly improved, rather than on creating and perfecting a product during an undetermined period where the company has no visible means of supporting itself.