front matter
preface
The goal of this book is to make you a better programmer.
I wrote the book to pass on what I’ve learned from decades of professional software development and teaching. I’ve studied, lived, worked, and taught in Silicon Valley my entire adult life. I’ve held senior engineering positions at established computer companies and at several startups. I’ve developed advanced software at IBM Research and at the Lawrence Livermore National Laboratory, and I was a senior scientist at NASA and JPL. I’ve taught software development at both the undergraduate and graduate levels at several universities, including San Jose State University, which supplies Silicon Valley with more engineers than any other school.
Working with students and junior programmers has taught me that it’s important to practice good software design before bad habits set in. As students, we inadvertently learn run and done: as soon as an assigned program runs successfully, it’s done! After we turn it in, we may never have to see it again, so good design concepts, such as maintainability, are immaterial. We must unlearn that mentality to have a successful career as software developers.