I recently finished reading the Soft Skills - The software developer's life manual book by John Z. Sonmez. Through this blog post, I'll to share my honest thoughts about the book in hopes that other developers will find it useful.
What is this book about
This book is not about coding. It's about everything else in your life!
The goal of the book is to help you become a well-rounded software engineer. It aims to make your journey as a software developer easier & provide you with the tools & the knowledge to succeed in all aspects of life.
When I first picked up the book, the BS sensors in brain went off quickly! The table of contents & preface mentioned topics ranging from career development, resume writing, dealing with burnout, building a personal brand, increasing productivity, losing weight, gaining muscle, early retirement, investing in real estate, soul searching & more. Phew! So much in one book?
This one book is going me to teach me all that? It just all sounded too good to be true. I decided to give it a go but skip sections that weren't relevant to me.
I'll skip it like I skip leg day.
Read, take action, stop. Repeat.
Each chapter contains a "taking action" section in which John recommends putting your new found knowledge to immediate use. I highly recommend that you don't just skip over those. Reading it from cover-to-cover will do you no good if you don't take your time to test our the advice provided by the author.
Your actions will define how much value you get out of this book.
I tried to follow as many of these action tasks as I as I could. I would read a few chapters, make a list of actions I needed to take and then put the book aside for some time. I'd only go back to reading after I had spent enough time on each action to determine whether it was a good idea to incorporate it into my routine or not. Sometimes, I'd tweak the recommended actions a bit to better suit my lifestyle/schedule.
This blog started as part of the action task from one of the chapters & I'm still going!
I became a believer
Despite initial skepticism, my thoughts about the book slowly turned 180 degrees. As I read through the book, I realized that rather than some magical fairy land BS (as I expected), the book was full of solid advice based on real life experiences.
Is the advice offered in the book 100% correct?
Absolutely not. Nor does he claim to know it all. But the book contains enough good advice in it that almost everybody reading it will benefit one way or another. I'll share a few examples of advice that stood out to me.
Think like a business - John recommends that we think of our skills as a business. Just like a business offers a product to its customers, we are offering our services to a single customer (your employer). Like a business, we must continuously evolve the value we're offering.
Market yourself - John's advice around marketing benefited me the most & is my favorite part of the book.
Be in charge of your marketing - It’s rare for a business to succeed without marketing. You could have the best product in town but no one's going to buy it if they don't know about it. We might not be aware of this, but we are constantly selling our ideas. Remember the last time you had a discussion about whether semicolons were good or bad? Or the time when you tried to convince your team to switch to a specific framework and/or technology? Guess what? You were marketing your idea during those times. John recommends we take control of this & rightly so.
Think about a famous developer you really look up to. Do they have some exclusive knowledge that no one else in the world has? ABSOLUTELY NOT. Marketing is what elevates these "rock star" developers above the rest of us.
Get out there - John suggests in the book that you resort to mediums that you have easy access to fuel your marketing efforts. Twitter, LinkedIn, blogs, local meetups are an easy place to start.
Provide value to others - You could reach out to people via all the aforementioned platforms but if the message you're communicating is entirely centered around yourself, you're unlikely to get traction. Instead, your message should be about the needs of others. When you provide value to other people, they're are more likely to hear what you have to say & also spread that message on your behalf. We see this in the open source community all the time. A developer builds a product that addresses a pain point of the community. The community reciprocates by showing tons of respect & love to the developer. These moments can be career changing.
Don't be afraid to look like an idiot - This one had a deep effect on me. I always wanted to blog & was scared what people would think. My English isn't perfect. I make grammatical errors. I am not the most knowledgeable developer out there. What if my co-worker sees my post. Will they make fun of me?
Reading the book inspired me to put those fears aside & just hit the publish button. Look at me now, I am writing this blog post & plan on sharing the link on sites like Reddit & Hacker News. I might get a lot of hate, but that doesn't matter to me anymore.
This has also helped me in other aspects. I am not as scared to dive into open source projects & expose my code to the eyes of strangers.
You might fail if you try. But you're guaranteed to fail if you don't.
Building a brand - Once you leave behind the fear of looking like an idiot & take control of your marketing, you can work towards building a brand. No, we aren't talking about bringing in millions of dollars & being on every billboard in the city. By brand, he means someone who others in the industry recognize & respect. Having a brand can help you during interviews, charge a higher hourly rate, get more speaking and/or teaching gigs and so on.
Productivity & Learning
These two sections are a brain dump of all the techniques John uses to get things done. He shares how he plans & organizes actionable tasks to accomplish his goals. He also shares productivity & learning tricks including what he likes to call 10 step process. If you're a developer who would like to maximize your efficiency, you should give this a read.
Unfortunately, John's signature 10-step process has been a bust for me.
Not everything he mentions will work for you. It for sure didn't work for me. However, there is so much information in there that something will stick.
Every developer who is serious about productivity, efficiency & achieving goals should read these two sections of the book.
I tested most techniques & tips offered in this section & have permanently incorporated several of them into my daily routine. It took me a long time to work my way through this section but the payoff in productivity boost has been worth it.
Something as simple as using the Pomodoro technique might make a massive impact on your ability to get things done.
The financial section covers topics such as salary negotiations, stock options, debt management & real estate investment. The only reason I didn’t skip over this section is because I myself have been pondering over the possibilities of investing in real estate. Mostly, the section just reinforced what I already knew or believed in.
The lack of body movement in our profession comes with a significant health risk. In this section, John tries to motivate developers like myself who only go to gyms when playing Pokémon Go. He explains how to count calories & diet necessary to achieve your ultimate body goal. If you're a fitness enthusiast you'll likely be underwhelmed by the contents of this chapter. But for absolute beginners, this contains enough information to get you started.
Although I am not using any of the techniques mentions in this section by John, it did motivate me to once again (for the 87th time) start working out.
You can’t be everything
Following all the advice in this book would yield a productive, financially sound, extremely famous software engineer with six pack abs who's about to retire in his mid-30s.
You can't have it all. But take it slow, do the actions in chapters and come back to the book once you've succeeded at those. You'd find that the simple things will make a big difference in the long run.