NOTICE: usual disclaimer applies. First draft. Structure of this book likely to change.
I obviously can’t teach you everything there is to know about industry. You’ll forge your own unique career path and no book could teach you exactly how to do that. But there’s a lot of common topics that I can address to help you get your career off on the right foot.
Here’s an overview of what’s to come:
Section One: Impedance Mismatch
Academia: The role of academia is not what you, your parents, or your future employer thinks it is. Computer science is not programming. This mismatch of expectations is the source of an awful lot of trouble, but before we can understand the disparity we need to look at what academia is trying to accomplish.
Industry: The role of industry is a little more straightforward. The bigger question is, where do you fit? I’ll discuss the engineering organization and jobs you might have. Perhaps more importantly, I’ll also tell you about the rest of the company and what it does. Dilbert has one perspective on Marketing—two drink minimum—but I’ll tell you a lot more.
Section Two: Right Thing, Right Way
Practice of Programming: Now for details on the day-to-day tools and techniques used in industry. We’ll compile and disassemble C code, use a debugger, write tests, figure out what source control is good for, create virtual machines, and create all kinds of mess.
Product Lifecycle: Despite our adventures, “all kinds of mess” is not what’s supposed to ship to the customer. Here I’ll step back and take you through product development as it happens over time, and how your day-to-day programming changes with the product’s lifecycle.
Section Three: The Long Way Round
Kaizen: The Japanese term Kaizen, 改善, is a philosophy of continuous improvement. After several years in industry you’ll appreciate computing as both science and craft. And so we’ll come full circle back to academia and integrating its value into your work life.