Table of Contents

With around 230 positive reviews (85% of five stars) (4.7 on the average), John Sonmez made a huge splash when he published his first book “Soft Skills”. 2.5 years later we get another book. Can the new book continue his success?

Can it move you further along with your?

Bonuses today: giveaway and little Q&A with John.

Let’s see!

The book  

The Complete Software Developer’s Career Guide

Amazon link - with already ~150 reviews (one day after the release) !!

The release date is 19th July, and as I know for a few days there will be a huge discount. Click on the link above for more details.

I probably don’t have to introduce John, as he’s quite a unique person in Software and Personal Development. If you like to know more about him, just visit SimpleProgrammer.com

Also, the book was written in parts, and most of that was already published on John’s blog. So you can check that out as well.

The structure  

The book consists of five main sections and a total of 60 chapters!

Getting Started as a Software Developer

How to Get Started. The Technical Skills You Need to Have. What Programming Language Should I Learn, College. Coding Boot Camps. Teaching Yourself.

Getting a Job

Internships. Getting a Job Without Experience. How to Find a Job. The Interview Process. Salaries and Negotiation. How to Leave a Job. Switching Mid-Career. Contracting. How the Recruiting Industry Works.

What You Need to Know About Software Development

Overview of Programming Languages. Web Development. Mobile Development. Backend Development. Video Game Development. DBAs and DevOps. Software Development Methodologies. Testing and QA. TDD. Source Control. Continuous Integration. Debugging. Maintaining Code. Types of Work.

Working as a Developer

Dealing with Coworkers and Your Boss. Working With QA. Life / Work Balance. Teams. Selling Your Ideas. How to Dress. The Review Process. Dealing with Prejudice. Being in a Leadership Position. Getting a Raise or Promotion. Women in Tech.

Advancing Your Career

Creating a Reputation. Networking. Keeping Your Skills Up to Date. Generalist vs Specialist. Speaking and Conferences. Creating a Blog. Freelancing and Starting a Business. Career Paths. Job Stability and Security. Training and Certifications. Side Projects.

Best Books to Read. Parting Words

My view  

The first thing that impressed me was the introduction. I wanted to know if this book is also for an experienced developer. So here are some good parts:

I know. I know you know all this stuff.
You don’t need a basic book from some “hot-shot” on how to get started as a software developer. You don’t need to learn what source control is or get insight on whether you should go to college or boot camp.
I get it—really, I do.

But, trust me on this one, this book is still for you. Here’s why: …

I like the style of writing! After reading a few paragraphs, I can see that John is honest and writes about real things, not theoretical stuff. And it’s not just the first few pages that are fun to read. There are many more throughout the whole book.

I can skip the whole part about the introduction to Software Development, Collage, etc… writing my first resume (since I am already that expert… right? :)). Still, there are some areas worth refreshing.

Clearly, I won’t be able to learn a programming language from that book or source control, or design patterns… but in those chapters, I could get a basic overview. For example, I am in backed dev mostly… so I liked the parts about Web Development.

I focused more on the last two sections: Working as a Developer and Advancing Your Career.

What have we here? Almost everything to move you further along in your career and be the best developer in the team.

For example, I totally agree that if you cooperate with your boss, and:

be the person your boss can count on to resolve problems and move the project forward, and you’ll be regarded as an extremely valuable asset.

Plus, there is also advice on how to deal with less-than-perfect bosses, like the “Ignoramus”, “Slave Driver,” or micromanage.

I like that the book emphasizes the need to collaborate across all the teams. It’s not just your code and your project. Talk to QA; create better tests; try to get what the real requirements are. Then, by understanding both the bigger picture and the little details, you’ll be able to move further and create better software.

I agree, with the need to build a personal brand. It’s not that you need to create a blog with thousands of readers - that’s one way of course, but you can also simply create a strong reputation in your company by being an influential expert in your field or being a great leader. In general, try to create value for others. If you get exposure/visibility, it will be easier to get a better job or promotion. Not to mention the satisfaction for yourself.

Some bullet point for me to take action on:

  • Make my boss happy by using at least daily/weekly reports of my tasks
  • Cooperate with other teams
  • Focus on automation
  • Take responsibility
  • Consistency beats all the other factors regarding blogging
  • Look for other areas; move away from your comfort zone

Summary  

Final mark: 4.5/5

Pros:

  • Easy to read as each chapter is a separate part.
  • I like that there are some letters with real dev stories included
  • Practical approach, not much dry theories
  • A lot of content, useful for beginners/intermediate/experts
    • Just pick a topic that is most related to your current career situation.
  • Motivates you to do something, be better and move forward.
  • Lots of evergreen content, not only valid for one year… should be valid even in 5 or more years.

Cons:

  • I couldn’t find chapters about remote jobs, would be nice addition
  • Some chapters might feel too general

The book feels like an extension of Soft Skills, but more focused on the programming/career. And it’s also stand-alone, so you don’t have to read Soft Skills first.
It should be a good start for people entering the industry, but also devs who are already inside - to refresh their knowledge, understand other areas of IT, and think about other possibilities.
Of course, John sometimes touches the tip of an iceberg, so it’s only a high-level overview (especially in areas like CI, source control, methodologies, etc.) Still, a lot of content is unique - especially for career topics. There aren’t many books about that.

Have you read the book? What’s your opinion about it?
What’s your favorite book on a similar topic?

Bonus - little Q&A with John  

A few questions to John, with his answers!

Bartek: I’m a C++ programmer, so I need to ask you this :) In the book, you mentioned C++ several times. What do you think about Modern C++? With recent additions to the language in C++11, C++14, and upcoming C++17 it really feels like a new language. Do you still think there’s no future for it? Or will the code bases eventually move to Rust/Java/C#? (or even Java Script :))

John: I like the changes to the language and I think they are very much needed, but I still think the future is somewhat bleak.
What I mean by this is that even though I love C++, the new features and the legacy of it have really added to the complexity and confusion around it.

For example, take some classic book like Effective C++. It’s basically irrelevant at this point.

That’s really confusing. I wish they would have called the new C++ something completely different to break ties with the past.

I also feel like all this has been bolted on.

Of course you could say the same now about C# and Java, which are also beginning to suffer from the same kinds of problems.
In my opinion, C++. C# and Java have all become far too complex as the features have expanded and expanded.

With that said, of course, there is a future for existing C++ developers. There will be C++ for the next 50+ years, I’m sure of it. I just wouldn’t recommend new developers to get into it at this point–unless they really love the language.

Bartek: We have so many online courses, blogs, video… is learning from books still important?
My note: I believe books still have a future as they give a description of a problem from start to finish. If you learn from online/blogs, then the information seems to be more shattered/more chaotic.

John: I agree with you. Books often provide a more thought-out, organized and comprehensive and cohesive view of a topic or subject. Consider how long it takes and how much effort it takes to write a book versus produce a video or blog post.

At the same time though, I do believe video courses are very effective learning tools for software development.

Bartek: Just in five points: what are the 5 key skills of a good software developer?

John:

  1. Able to communicate and organize his ideas clearly.
  2. Ability to self-educate and learn whatever needs to be learned to do the job.
  3. Abstraction. The ability to take and simplify a problem and discover abstractions that further simplify it.
  4. Inspiring and mentoring others. A developer who makes the whole team better is the most valuable asset on a team.
  5. Ability to write clear and readable code. The best developers write code that reads like a book. Because they know that code is read more than written.

What would be your answers to those questions? Do you agree with John?

The giveaway  

Ended! :)

The winners: all the winners were notified, finalizing the process…

I’m happy you read through the whole post, so now I have a little prize for you.

I have three copies of John’s new book. Just take part in the giveaway. Enter your details below, add a comment, share my post on Twitter. The whole event lasts for two weeks - until 30th July midnight (Poland Time). I’ll announce winners on Monday 31st July in the morning.