Last month, I got to give a ten minute speech at work about what got me to write a book and what it was like. I then gave a shorter version of it as a Toastmasters speech. The highlights seem like a good blog post. Along with a good number of more detailed points I had to omit due to time.
Getting there
- Over a decade ago, my teammate, Chris, asked me if I’d ever write a book. I went to a fairly animated response about there is no way I’d ever write a book because it is so time consuming. And here we are. He knew before I did. (It’s good to have a mentor that knows you better than you know yourself.)
- Busy people attract time consuming hobbies. After I finished grad school, I started blogging and mentoring. Moderator at CodeRanch.com. Oh, and writing lots of book reviews. Starting with Java 4, I also presented to people at work about new features in Java.
- My mind shifted from “no way” to “maybe someday.”
- I was still afraid at the time commitment, but curious about the process.When Martijn and Ben asked me to tech proof “The Well Grounded Java Developer” I said yes to learn about the process. It was interesting. I also proofed Manning’s OCA Java 7 Study Guide which was a different experience because I didn’t already know the author. Also, getting to write tghe foreword reminded me that I did want to write a book someday.
- At this point I shifted from “maybe someday” to “I’d seriously consider it if the right opportunity presented itself”. I had been approached for two other books, but they weren’t the right opportunity.
- When Bert was looking for contributors to K&B 7, I jumped at the chance. “Interviewing” with Bert was scary because I admired him so much. (In hindsight, I don’t think it was an interview, but I was certainly nervous enough for it to be one.) I learned a lot from Bert; he’s a great mentor. I also gained confidence because I got asked to write 1.5-2 chapters essentially half a chapter at a time. The first one felt like “taking a chance on me.” The last two groupings felt like I had earned it. I also learned my writing velocity which was huge for being able to commit to actually writing a book.
- My friend Erik and I talked about writing a book together. We wrote table of contents and the beginning of chapter one. Even though we didn’t proceed, it was good to have a practice run at organization. I used github to organize things. Knowing how I would so greatly happened when it came time for this book.
Previous work for Wiley
Michael Ernest asked me to tech proof his book “Java SE 7 Programming Essentials“. I didn’t get to due to, well bureaucracy in multiple places. I did learn to avoid that bureaucracy the next time the opportunity came up. Michael asked me to tech edit his next book with Wiley. I signed a contract. Then the book didn’t get written. Note that the only work I have done for Wiley at this point is sign a contract.
The right opportunity
As I sat in “I’d seriously consider to right opportunity, but not seek it out” mode, two publishers approached me. Both were big name tech publishers. One was an update of an existing book. There would have been new chapters about Java 8 that would be mine. And a lot of pruning/updating. The other was the one I choose. I did talk to a contact at both publishing houses before deciding. I also talked to the author of the previous edition (for the one I didn’t choose) and Michael Ernest for the one I did. I wanted to see why they didn’t want to do it. Just like coding, a greenfield project is often more fun and that’s what I went with on the book. I also had just finished working on Bert’s book and wanted the opportunity to have my own style.
When I spoke to Wiley on the phone, the acquisitions editor referred to “my previous work with Wiley.” That’d be the contract a signed that was later cancelled? Glad to know that shows I’m reliable. I imagine/hope that Michael vouching for me meant more than that meagre work experience.
I asked Scott to co-author with me. We had talked about writing a book together years ago and it’s always been a running joke/something that might happen one day. He was therefore my first choice as co-author.
Tools/Tech
- Github source control – For both example code and the book files
- Github tasks/issues – For managing deadlines/tasks/bugs/etc. I wrote a Spring/OAuth web service to automate this.
- Github wiki – For links, phone numbers, etc
- This blog – For announcements
- Jenkins/Selenium/XPath – For when Oracle changes the objectives
- Pomodoro Timer – To remind me both to stay focused and take breaks/look away from the computer