New Programmers Survival Manual
Navigate Your Workplace,
Cube Farm, or Startup
by Josh Carter
Version: P1.0 (November 2011)
Copyright 2011 Pragmatic Programmers, LLC. This book is licensed tothe individual who purchased it. We don't copy-protect itbecause that would limit your ability to use it for yourown purposes. Please don't break this trust-don't allow othersto use your copy of the book. Thanks.
- Dave & Andy.
For Daria and Genevieve.
Table of Contents
Copyright 2011, The Pragmatic Bookshelf.
What Readers Are Saying About New Programmers Survival Manual
I love the pragmatic tone and content.
Bob Martin |
President, Object Mentor, Inc., and author of The Clean Coder |
An excellent overview of the big picture and the many facets of software development that a lot of new developers lack. A great primer for starting an exciting career in software development.
Andy Keffalas |
Software engineer and team lead |
A funny, honest, inside look at the ever-growing, ever-changing industry of writing code. If you just got handed your CS degree, this book is a must-have.
Sam Rose |
Computer science student, University of Glamorgan |
This book has everything I should have sought out to learn when I started in the industry. A must-read for new developers and a good read for everyone in the industry.
Chad Dumler-Montplaisir |
Software developer |
Acknowledgments
First, I must thank my ever-patient editor, Susannah Davidson Pfalzer. This book couldnt have happened without her clear-minded guidance, words of encouragement, and occasional swift kick in the rear to keep me going. Susannah, thank you so much for helping this first-time author bring a book to life.
Next, numerous reviewers ranging from new programmers to industry pros provided tremendous help. They read (or should I say, endured ) early drafts of this book and offered their own viewpoints, expertise, and corrections. Id like to thank Daniel Bretoi, Bob Cochran, Russell Champoux, Javier Collado, Geoff Drake, Chad Dumler-Montplaisir, Kevin Gisi, Brian Hogan, Andy Keffalas, Steve Klabnik, Robert C. Martin, Rajesh Pillai, Antonio Gomes Rodrigues, Sam Rose, Brian Schau, Julian Schrittwieser, Tibor Simic, Jen Spinney, Stefan Turalski, Juho Vepslinen, Nick Watts, and Chris Wright. You have all made this book far, far better with your diligent and thorough reviews. Iand every reader of this bookappreciate your work.
From the beginning, several friends and co-workers allowed me to pester them over and over again for advice, including Jeb Bolding, Mark The Red Harlan, Scott Knaster, David Olson, Rich Rector, and Zz Zimmerman. I truly appreciate your patience.
Finally, an extra-special thanks for my two biggest fans. My daughter, Genevieve, gave me grace many, many evenings as I needed to duck away and write. And my wife, Daria, not only gave me time to write, but she was the first to buy and read the beta version of the bookin one sitting, no less, starting at ten at night. She offered her thoughts and perspective since this book was just an idea I was pondering over the dinner table. And she provided her support and encouragement through the whole process.
Daria and Genevieve, I couldnt have done it without you. Thank you from the bottom of my heart.
Copyright 2011, The Pragmatic Bookshelf.
Introduction
Its day one on the job. You have programming chops, youve landed the job, youre sitting at your workstationnow what? Before you, a new jungle awaits:
Programming at industry scale, with code bases measured in thousands (or hundreds of thousands) of lines of code. How do you get your bearings and start contributing quickly?
Navigating an organization containing programmers but also people in many, many other roles. When you need guidance on a product feature, who do you ask?
Building your portfolio of achievements each year. When performance reviews lurk on the horizon, do you know what your boss is looking for and how youll be judged?
and so much more. Your programming skills are only one part of what youll need in these first years on the job.
The lucky among us have guides who already know the landscape. This book is a virtual guide . Itll get you oriented, point out the mountains and canyons ahead, and also save you from some nasty pitfalls.
Where Im Coming From
You may find some similarity between your experience and where I stood in college in 1995: I started on a traditional path, a computer science and electrical engineering program at Duke University. I went to my advisor, asking about classes that would best prepare me for working in industry. He was a smart guya Rhodes scholar and rising star in the engineering schooland he responded, I have no idea. Ive never worked a day in industry in my life.
I was more than a little disillusioned. I wanted to build real, shipping productsnot write research papers. So, that summer I managed to get my foot in the door at one of the hottest start-ups in Silicon Valley, General Magic. It was founded by some of the same guys who created the original Macintosh computer, Andy Hertzfeld and Bill Atkinson. My peers included some of the top players from Apples System 7 (operating system) team and the guy who would later found eBay.
I learned more about programming in my two-month internship than I could have learned in two years of school. I called Duke and said I wasnt coming back. And so my wild ride in industry began.
And Now About You
Readers of this book will fall into a few broad categories:
College students and recent graduates taking computer science classes and wondering, Is this what programming is like in the real world? (Short answer: no.)
Professionals from other backgrounds who got into programming as a hobby or side job, now wanting to take it on full-time.
Others who are considering a job in programming but want the skinny on what the books and classes arent telling them.
Regardless of path, here you are: its time to pay the bills with code. There are plenty of books out there on the code part. Theres not so much on everything else that goes with the joband thats where this book comes in.
For the professionals coming from other fields, some sections wont apply as much to youyou dont need me to tell you what marketing does if your background is marketing. However, you will still benefit from details about how things run within the engineering department and how code evolves from concept to release.
Structure of This Book
This book is written in small mini-chapters, called tips , that are designed to address a single topic within a few pages. Some are longer by necessity. Related tips are close together, but you can read them in any order. If youre going for the big picture, go ahead and read it from cover to cover. But feel free to flip aroundwhen tips need to reference each other, thats stated explicitly in the text.
We start close to the code: Chapter 1, starts from your programming talent and gives you guidance on making it production-ready. Nobody wants to ship buggy code, but its especially challenging on industrial-scale projects to ensure that your code is correct and well-tested.