What about a software development book that isn’t about software development?

More than four months have passed since I reviewed “The Pragmatic Programmer”, by Andy Hunt and Dave Thomas. So, I figured it was about time I wrote another book review.

Today’s book is Soft Skills: The software developer’s life manual, by John Sonmez.

For those of you who don’t know, John is a software developer best known for his blog Simple Programmer and his YouTube channel. On both of these platforms, he produces content about a broad range of topics, such as finances, negotiation, learning techniques, fitness, entrepreneurship, and so on.

Think of the content John produces and shares as some kind of “self-help for software developers”, but try not to apply the negative connotation that “self-help” usually carries.

So, what about the book?

Soft Skills: The software developer’s life manual was published in late 2014, and it has forewords by Scott Hanselman and Robert C. Martin aka Uncle Bob.

As its name suggests, this book doesn’t cover any tech-related topics, at least not in a direct way. It is divided into seven sections: Career, Marketing Yourself, Learning, Productivity, Financial, Fitness, Spirit. Each section is meant to cover a specific area of a software developer’s life, and is divided into several short chapters.

The books is somewhat lengthy - the edition I own is a paperback version which has 470 pages total. It took me a while to finish it, though I admit I read it in a slower pace than usual.

The Good

The book is written in a very conversational and easy-to-follow style. Mind you, I’m from Brazil, my first language is Portuguese, and I can still follow it very easily, which is a good sign.

The chapters are short, which, for me, it’s a good thing. I usually can’t afford to devote a large chunk of time to reading. What I’ve got instead are several smaller chunks throughout the day, so it’s great when chapters are small enough to fit in those chunks. I’m not sure why, but it feels wrong to leave a chapter unfinished, so I’m always a little bit anxious when I start reading a chapter knowing that I probably won’t be able to finish it in the same session.

Every chapter of Soft Skills ends with a “call to action”. John invites you to do a small exercise in order to help you get the most out of the content, and figure out how to apply it to your life. Don’t let the word “exercise” scare you though. The challenges proposed are all very easy to follow and generally involve some amount of thinking and a little bit of writing. And let me tell you, I’m usually the person who would dismiss this sort of thing as “self-help nonsense”. But what I’ve found while reading this book is that this can be really effective.

The thing is, you may think you know what you want to do with your career and your life. But when you force yourself to stop for a few minutes and actually think about it and write it down…you may be surprised by how little you actually know about your goals, your strengths, your weaknesses, and what you want to accomplish.

This is specially true when you’re starting your career. Our industry is quite huge. When you’re fresh out of college, young and inexperienced, the sheer amount of options to choose from can be overwhelming. Should I work at a start-up or a large company? Maybe follow the freelancing path? Ruby On Rails or Node.js? So many questions…

Soft Skills offers some help here. The first section of the book covers, among other things:

  • employment options (freelancer vs employee vs entrepreneur);
  • kinds of specialties for software developers;
  • kinds of companies you might work for;
  • advice for working remotely.

Section 4 (Productivity) is probably my favorite. The thing is: left to my own devices, I’m not that productive. Shame on me.

I’ve been fighting procrastination since college. I tried a lot of to-do apps and productivity techniques. I read David Allen’s Getting Things Done every year. I read Lifehacker almost on a daily basis. I even listen to a podcast that is mostly about work and productivity. And yet, I’m still not as productive as I’d like to be, even though I’ve been making progress.

Those of you who can relate to this feeling will probably find some value in Soft Skills. John covers a lot here, including the formation of habits, the importance of having a routine, and what are the major time wasters you should try to eliminate from your life. He also covers the Pomodoro technique and his personal productivity system. He even talks about burnout, which can be a real issue in our industry and you definitely should be prepared to deal with it in your career.

One common criticism that “Soft Skills” receives - and some people extend this criticism to all of John’s work - is that it has a very market-y vibe. This is kind of true, I’d say. But I don’t necessarily see it as a bad thing.

A few years ago, back in college, I’ve attended a talk in which the speaker said something along the lines of “it doesn’t matter if you’re the best programmer in the world if no one knows that”.

For many (most?) developers, the word marketing has a very negative connotation. It’s understandable, since we’ve all seen our share of shady and manipulative marketing tactics in our lives. What you need to understand here is that marketing is something that we all do, all the time, even if you don’t call it that. What is a job interview, if not a sales pitch?

Since marketing is something that you must do, it’s worth doing right and deliberately. This is where Soft Skills shines, in my opinion. It offers advice about treating your career as a business and your name as a brand. It also explains what exactly a brand is, what is its purpose, its components, and how you can create and establish your brand by generating value for others.

Sections 3 and 6 (Learning and Fitness, respectively) also deserve honorable mentions, but I won’t cover them in detail here for brevity sake. Go read the book!

The Bad

Now, let’s turn to the not-so-bright side and talk about some of the cons about Soft Skills.

Some of the chapters are really, really short. Yes, I know that not so many paragraphs ago I praised the brevity of the chapters. Now am I speaking the opposite?

I don’t mind a chapter being short if it provides values and insights. In fact, as I said earlier, I’d rather read a short chapter over a long one, if both of them provides the same value.

But the thing is: some chapters provide too little value. They would be better off as a paragraph in another section.

For instance. Chapter 18, “Don’t get religious about technology”, has three pages, in which John tell us not to get too much attached to particular languages, frameworks, operating systems and so on. Great advice, totally agree on that. How many hours have been wasted on the internet, in endless debates of the “tabs vs spaces” kind? Probably much more than we’d like to know. But this message could easily be summarized in a short paragraph or section in another chapter.

The book suffers from the opposite problem as well. Some subjects would probably benefit from a little more depth. In chapter 25, “Writing books and articles that attract a following”, John says that, in order to publish a book by traditional means, you should write a proposal, to try to pitch your book to publishers. But he stops there, without providing an example or template of what such proposal should look like, which would be incredible valuable for the wannabe author in his audience.

Some of the advice in Soft Skill sound…weird. I particularly disliked John’s advice to hire a professional resume writer. In our field, in the present day, resumes aren’t much more than a formality IMHO. Provided that your resume it’s not completely awful (i.e. contains a lot of spelling mistakes, it’s designed in a nonsensical way, it lacks essential information, etc) it probably won’t harm you. There are way more important factors that your prospective employer takes into account.

The Ugly

Almost every software development book has an ugly and/or weird cover, and Soft Skills is no exception. But who cares? I just wanted to make that reference :P.

In Conclusion

Soft Skills: The software developer’s life manual was a fun read. John offers some great insights, specially in regards to learning techniques, career and productivity.

There are some cons, of course, as I’ve said. Some of the advice offered just don’t make sense to me. I can understand that they probably worked out for John, tough.

My approach on these types of books is: keep what is valuable, ignore the rest. And I can safely say that I’ve found a good deal of valuable content in Soft Skills.