Author: Joshua D. Carter
Publisher: Pragmatic Bookshelf, 2010
Aimed at: New entrants to professional programming
Pros: Readable and relevant
Cons: Less applicable to small workplaces
Reviewed by: Sue Gee
If you are embarking on a career as a programmer will this book help you find your feet?
When rating a book for I-Programmer we bear in mind the intended audience and sometimes it is difficult to decide who exactly the author had in mind. Here Josh Carter spells out three broad categories - college students and other graduates who have taken computer science courses, professionals from other backgrounds who got into programming as a hobby and want to move into it as a career and others considering programming as a career.
The introduction also explains the book's format. It is written as a series of "tips" which are highly focused and succinct, around five to ten pages each. There are also "graduated" using a martial arts metaphor. White belt tips are for the novice, brown belt for intermediates , i.e. those with two to five years' experience and black belt used for those further into their careers who are already "masters" - and of these there a just a couple towards the end of the book.
The tips are arranged into seven chapters in four parts. I was pleased to find that Part I - Professional Programming is the one about programming itself with the tips in Chapter 1: Program for Production being ones that discuss the essential characteristics of real world code.
This initial chapter has more tips than any other and it covers issues such as testing, code complexity and how to avoid it and writing code with good style.
The second chapter has the title Get Your Tools in Order and for novices covers choice of text editor, debugger, profiler in its first tip, then emphasizes the importance of knowing at least one language fluently, recommends you automate tasks and discusses the use of version control. For intermediate programmers it has two tips – to get to know the platforms they are working on and to take advantage of open source code.
Part II is about People Skills – something that is of crucial importance whatever profession you choose but here it is angled to programmers. Its first chapter is about you as an individual The novice tips are to find one (or several) mentors; to pay attention to the image you project and to log your accomplishments well in advance of your annual performance review.
Different advice is given at the brown belt level – you should make yourself visible; manage your stress and treat your body right. The following chapter is on teamwork and its first two tips are brown belt ones on appreciating personality differences and understanding the formal and informal connections between co-workers. There are two white belt tips about working together with others and how to cope with meetings effectively.
Part III - The Corporate World has two tips in its first chapter on "Inside the Company". The first is a white belt tip about understanding the job roles of the people in your team and your own place in it. The other, at an intermediate level is about understanding the corporate structure - from administrative assistant through marketing, sales, human resources, manufacturing and so on to the executives and board of directors. For the more lowly of these, Carter provides his ideas on conversation starters - although in the case of finance and accounting he admits to having no idea. As far as executives are concerned his advice is:
"If you get an opportunity to talk to the CEO, by all means take it. Most CEOs are curious to hear how things are in the trenches ...".
hmmm... it's still a scary option.
Next comes Chapter 6: Mind Your Business on the business context in which you are working. Here the first tip, at white belt level is about scheduling and two alternative styles of project management - waterfall (with Gantt charts) and agile (with iterations. Next comes a brown belt tip on product life cycle and then there's a short black belt tip "Put Yourself in the Company's Shoes" advising you to understand the bigger picture. The final tip (white-belt) is "Identify Corporate Antipatterns" which helps you recognize when it’s time to look for another job.
The final part "Looking Forward" consists of a single chapter and has tips at all three levels of "Kaizen", a Japanese term for continuous improvement which round out this book very appropriately.
Throughout the book Carter references other books and his bibliography of more than 30 titles is included as Appendix 1. Having read quite a few of them already - (see the list of related reviews and the side panel for recommended titles) I've been motivated to read other classics such as Malcolm Gladwell's the tipping point. It's a plus point for a book if it makes you want to read another one. It's not just Carter's advice that is included in this book. There are frequent sidebars with advice from industry pros, both programmers and managers.
This is a worthwhile read from cover to cover for anyone just starting on a career in programming, or contemplating one in the near future. It covers an excellent mix of topics with enough about code to make it seem relevant to the novice programmer rather than a newcomer to any other office-based industry. It manages to be helpful without being condescending and, as befits the choice of publisher, it is certainly pragmatic.
Land the Tech Job You Love
The Clean Coder
The Passionate Programmer
Seven Languages in Seven Weeks
Driving Technical Change