Review of the new Book by John Sonmez. Is it a book, which every software developer should have on their bookshelf? Can it actually help in advancing your career?
John Sonmez is a creator of site Simple Programmer blog, which covers various topics about software development, soft skills and developing your career as a programmer. In addition to his blog, he produces a lot of Youtube Videos and some Podcasts. This is his second book in addition to Soft Skills: The software developer's life manual.
This section can be really useful for someone who is about to get started as a programmer. Not so much for somebody already in the field. There is a brief introduction to what the programming is about and then the importance of creating a plan, which you will follow to achieve your goals. To know the goals you need to know what skills you will actually need, which is covered, including the guide how to acquire them. Then there is a chapter describing how to choose your first programming language.
Finally, there is a comparison of different approaches to starting your career in the field. That is College vs Boot Camps vs Self Taught.
Once you have some basic prerequisites (covered in section 1), it is the time to actually look for a job. This section covers various approaches to landing your next job. Different scenarios are covered such as starting with an internship, switching from QA to development, getting a job with no experience or switching late from a different industry.
There is some useful information on salary negotiation, the interview process and crafting your resume. And of course, how to properly leave your previous job.
This section provides a brief overview of the software development industry. That is what are some of the most popular programming languages, what is the difference between front-end, back-end or mobile development, software development methodologies, Continous Integration or Source Control. If you are already for some time in the field, it will be nothing new, but if not, it is a great overview.
This part is a mixed bag of various topics. There are several chapters on how to deal with your coworkers - Your boss, your teammates, QA people or women. How to handle situations such as switching to a leadership role, struggling with prejudice, your yearly review or negotiating a raise or a promotion. Even how to dress.
This is probably the most interesting part. It's about growing as a software developer. About constantly honing your skills. How to approach training and certifications. But most importantly, about building your personal brand. That is, building your network of contacts, creating a blog or becoming a speaker at conferences and similar events. This section is crucial and in my opinion, it alone makes this book worth your time and money.
The value you get for your money will differ a lot based on your current experience in the software development world. If you are a complete junior a student or someone considering switching career paths to software development, this book is great and you will benefit from pretty much every chapter. If you have already several years of work experience, not so much. In such case, you can pretty much ignore the sections "Getting started as a software developer" and "What you need to know about software development". And many of the chapters from other sections as well such as "Internships" or "Getting a job without experience".
In spite of this, the value is still pretty good considering that the Kindle version of the book costs just $9.99. For a short period of time after the launch, it was even available just for $0.99.
If you are just starting your career this book is great. It gives you a good high-level picture of the software development in general. And it teaches you some important habits, which will benefit you much, especially if you embrace them early on. However, despite the name, it cannot be used as a Definitive guide - the range of topics covered is so wide that each topic is covered not in much depth. Given the number of topics, it wouldn't even be possible as you could write whole books about each of the topics. That does not mean it is not useful, you just need to have realistic expectations. Instead of targeting audience of developers of all skill levels, the book could have been divided into two or more books, which would go into more detail.
The style of the writing is fresh and the book reads easily. The chapters are not dependent on each other, so you can choose just the parts you are interested in, which is good. The style is succinct, however, as I already mention shallow in some cases.
The content of the book is mostly composed of information already published by the author over the years in the form of blog posts, youtube videos or podcasts. It is not a bad thing as it is useful to have a compilation instead of hunting for individual posts. However, the whole book is littered with dozens and dozens of external links, which in a vast majority of cases point to blog posts, videos, and other products of the author. It is mostly useful, but it feels like the whole book is just a promotion of the author's other products. But it is acceptable given the low price of the book and the facts that the linked resources are relevant to the topics discussed.
Overall I think it is a good book, especially for the price of the electronic version and I can recommend it.
In addition to the links above, the chapters of the book were published as blog posts on Simple Programmer. The best way to check the quality and content of the book is, therefore, to check the posts there.