There are many good books for programmers outside of those that teach how a certain technology or programming language. I’ve listed some I’ve read in this article.
Note: this post includes affiliate links, which means I get a small commission from any sales of these books from Amazon at no extra cost to you.
Getting Things Done – The Art of Stress-Free Productivity (David Allen)
Let me tell you a story of how I discovered the single greatest way to improve my productivity in my IT career and my life in general. It’s so good, that I don’t know how I lived without it.
A couple of years ago, I found myself pretty busy with work and life in general. I felt like I had so many things to do and so little time to do them in. I had holidays to organise, social things to attend, presents to buy – and of course, plenty of work that just seemed to keep coming.
I mentioned this to a guy at work, who mentioned he used to feel that way. Used to, that is, until he read this book on the Art of Stress-Free Productivity.
It was a book on How To Get Things Done.
I read the first chapter of his copy and went out to buy the book soon after, just because I wanted my own copy.
I got through it in a couple of days and started to put into practice some of the things I learnt in the book. It describes how someone’s tasks and commitments are held in their head and cause unnecessary stress and loss of productivity, and how important it is to have a system to control them – no matter how primitive or advanced, every bit helps.
It shows you a great methodology of how to keep track of all the things you have going on in your life.
I’ve put it into practice for both work and non-work commitments, and I don’t know how I lived before this.
Which is why I recommend this book to you. It’s called Getting Things Done: The Art of Stress-Free Productivity. It’s by a man named David Allen, who has a lot of experience coaching this topic and has even formed his own company around it! So he really knows what he’s talking about.
I recommend reading it – it’s probably the single greatest thing I’ve done to improve my productivity and reduce my stress, both at home and at work.
Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
I’ve been reading a lot of books lately on my commute to work, and one of the books I recently read was this one.
Why did I decide to read this book?
Well, it started with me reading John Sonmez’s list of books every software developer must read. On this list was Clean Code, and he says:
“I can neatly divide my programming career into pre-Code Complete, pre-Clean Code and after.”
It’s also written by Robert Martin, aka Uncle Bob, who is one of the most well-known software developers in the industry.
So, I thought it was a good idea to read it, as one of the most recommended books for programmers that I’ve seen.
Also, I haven’t read a software development book for a while, so I thought I’d start with this one.
I had this book an eBook format as I much prefer to read it electronically.
My first impressions from reading this book were that it seemed pretty comprehensive and straight to the point.
Just reading the contents page shows how much material has gone into the book. It doesn’t just cover how to structure functions or effective commenting, it covers much more than that. I knew that by reading this book I should get quite a bit of value form it.
I also noticed from reading it that the author doesn’t mess around. There is no fluff like I’ve seen in other books I’ve read.
He starts with explaining the structure of the book, and the benefits of reading all of the sections.
He then goes into detail about the benefits of clean code and what it actually is.
After that, he discusses the strategies and definitions of clean code and how you can transform your code. He uses examples from code he has written, publicly available code, and other examples.
The examples are easy to follow if you’ve done Java programming, which I have. While the examples are in Java, he mentions that the concepts should apply to any programming language, and I think it does.
So, what did I think as I was reading the book and after I read it?
Thinking About The Code I’ve Written In The Past
The main thought that occurred to me for a good part of the book was, “Wow, I’ve actually written some pretty bad code in my time!”
As I was reading through his tips and strategies for improving your code, I realised that my recent development projects adhered to about 60%-70% of them. There were many that I did not follow. This was because:
- I knew what I was doing may not have been the best, but did not know there was a better way
- I did not take the time to improve it
- I thought what I was doing was the right way
For example, Robert really highlights the importance of choosing valuable names for your functions, variables, and classes. I knew the basics, such as give them meaningful names and don’t use single-letter variables.
However, taking the time to name your variables right is one of the best things you can do for your code, as it helps you in the future, as well as any other developer that looks at your code.
It’s also different from what I was taught in university. This is understanding, though. In uni, they taught us the fundamentals of writing code and computer science, such as how object-oriented design works, how to write programs in Java and to get them to compile. All of the information on best practices that are mentioned in the book is based off many years of experience, which really shows.
My Current Employer
Another thing I thought when I read the book was that the developers that I currently work with would really benefit from reading this book.
I work for a consulting company and there are a lot of developers that work with us. I might recommend this book to them. They would most likely benefit from this book, no matter what language they develop in.
Then, I wondered about the systems at my current workplace and how hard it is to get things changed. I mean, I understand the process and the release cycles, but I wonder if the “unclean” code is a factor in this? And how much it could be improved if the code was cleaned up?
The End Result – “Clean Code” Review
The book taught me a lot of ways I can improve my code. I don’t write a lot of code in my current role, but if I ever go back, there will be an improvement in how I write code.
It also gave me the motivation to do some programming of my own. Perhaps start a side project. Just to see if I can put these tips into action and see the benefits of writing quality code. It would make a great enhancement to my Github profile and for any future jobs I want to go for.
So, what would I rate this book?
It’s the first book review I’ve done on this site, and I thought it was a great book. The code samples were good, the concepts made sense, and even the references between the code samples and supporting material were clear.
I give it five stars. I’ve also left an Amazon review on the book as well.
If you’re interested in reading the book, you can get it at Amazon: Clean Code: A Handbook of Agile Software Craftsmanship
Soft Skills – The Software Developer’s Life Manual (John Sonmez)
I first discovered John Sonmez and his website, Simple Programmer, after a Google search landed me on one of his articles. I found the article very useful (I forget which article it was), and I’ve been following his site ever since.
When he released his book, “Soft Skills – The Software Developer’s Life Manual”, I got myself a copy. Why did I want to read this book?
- I enjoy learning and reading
- I’m a software developer and thought that the book could help me
- The Simple Programmer blog contained a lot of helpful information, so I knew that there was a good chance it would be a quality book
So, I got the eBook copy of the book, as I much prefer eBooks to physical books. And I began reading it.
My first impression was that the title of the book seemed to be a good fit. As the author noted, there are plenty of books that teach technical skills for developers, but not many that teach the other skills, or “soft skills”. He teaches them and explains them in this book.
I also thought that the title of the book was quite targeted. Soft skills for software developers. It’s not just a book about soft skills for everyone, it’s specifically for software developers.
The other impression I had was on the cover. The cover of the book has an image of some kind of scholar or monk with a book. I’m not sure this is a good fit as it doesn’t really relate to the subject material.
However, I understand this book was published through a publishing company who would have had final say on the cover. I’ve seen other book publishers use random images and animal drawings on their technical manuals, so maybe it doesn’t need to match the subject. Also, it’s better than a stock photo of a guy at a computer or something, so it could have been worse.
The Book Covers A Lot of Areas
The next impression I got of the book was when I saw the contents page. This is one of the first sections I look at when deciding whether or not to read the book, or even when I start reading the book.
The book is divided into seven sections:
- Marketing Yourself
The book seems quite comprehensive in what it covers and looking through this, I was excited to read it. I was expecting the book to contain some of the traditional “soft skills” that software developers might use, such as communication, negotiation, writing, and so on.
I was pleasantly surprised.
It seems like I was going to learn a lot from this book in many different areas.
Reading the Book
As I was reading the book, I noticed that the tone it was written in made it easy to read. John writes in a very casual and conversational tone, which is easier to read and follow than other career advice books.
The chapters contain subheadings, bullet points, and tips you can put into place to improve your career and life in different areas.
At the end of each chapter, the author includes a list of action points that include material from that chapter. This is one of the best features in the book, in my opinion. It makes sure you don’t just read the book and do nothing with the information. It makes it easier to see what you have learnt and how you can put it into action in your own life.
Sometimes these action points are just questions for you to answer. Other times they are things you should do in your career or your life.
More Than Just Workplace Soft Skills
As I mentioned earlier, this book covers more than just the traditional workplace soft skills. John is quite knowledgeable about the different areas in his book.
He teaches you how to market yourself as a software developer, which is something he also teaches on his website.
There’s a chapter on learning, which I didn’t think would be that valuable, but he teaches his method of learning quickly. As I was reading it, I actually got some value from it. I’ll be learning some new technologies and adding the material to Complete IT Professional, so learning how to learn better is probably good for me.
Productivity is something I’m interested in generally so I knew much of the advice he mentioned. The Pomodoro technique sounds like something that can help me and can help others who are looking for ways to improve their productivity and get more done.
Financial is also an area that I have an interest in, and I was curious to see what the book contained on this topic.
As John mentions in the book, this is only meant to be a high-level overview of financial topics, which he successfully delivers on.
A lot of the material I already knew, but I also learnt a few things. His explanation of what options are was very clear and made me have that “aha” moment when I finally understand something.
I’m also glad that the advice wasn’t just US-specific. As an Australian resident, I’ve found a lot of personal finance advice on the Internet is specific to US residents. This section of the book is high level and the concepts apply to many places.
The Fitness and Spirit sections were also quite helpful, even though I had less of an interest in them. I knew some of the basics but also got some valuable information from reading these sections.
I give it 4.5 stars.
It’s a great book that covers a lot of material that is useful to software developers. I certainly learnt a lot from this book and encourage you to read it as well.
There are only a few improvements that I could think of – and I really had to struggle to come up with them.
I mentioned the cover already, but this has no impact on the content and was probably not the author’s decision.
The one thing that I felt the author could have gone into more detail on was on marketing yourself. Having said that, he does have an online course that covers this very topic, so perhaps it was done on purpose so it didn’t seem like that was all the book was about.
There were a couple of sections that were hard to read in my Kindle version of the book, but they may have been fixed and I do have an old version of the Kindle. Once again, this does not detract from the quality of the material.
So, in summary, it’s one of the best books for programmers I’ve read, and I recommend reading it as I’m sure you’ll find some great tips to improve your career and your life from it.
Cracking the Career Code (Tom Henricksen)
I had discovered Tom Henricksen and his site MyITCareerCoach through a Google search for some career-related information a little while ago. I had been reading his site for a while.
Soon after that, I had begun getting to know Tom and seeing more of what his site had to offer. I purchased his recently-released book, “Cracking the Career Code“, as I saw that his site had some high-quality information and wanted to see what his book had to offer.
I ordered the book and had it shipped to me. It arrived in a little over a week, which I thought was pretty good, seeing as I live in Australia and most shipping from the US takes about two weeks.
When I received the book, the first impression I had was that it was smaller than I thought. I imagined the book to be thicker, but that could be because the most recent books I had read were bigger (Clean Code, and Soft Skills).
However, as an avid reader and a website owner, I know that size does not necessarily equal value. Just because it is smaller does not mean that it’s any less valuable. The benefits you get from a book should not be related to the thickness of the spine.
With that being said, I like the cover. It’s a clear image, with the title in a big clear font. The image is relevant and plays on the use of the words “cracking” and “code” in the title.
I opened the cover and saw that Tom had personally signed it, which I thought was a great gesture. I like it when authors take the effort to sign their books. It shows they are dedicated to the book.
From College To Career
I would summarise the topic of this book as a guide for college students getting into a career. It starts at the stage of finishing high school and contains a lot of great advice for getting into colleges. From there, it provides advice for moving into a career that you want.
Now, I’m not at the stage of life that this book is aimed at, but I still learnt a few things from this book.
First of all, I learnt more about the US college system. Living in Australia, we have universities which are more common than colleges. The system is different, but I knew the basics of colleges from watching American movies!
What I learnt in this book about US college I imagine would not have been taught normally to high school kids. I would have found the information valuable if I was at that age and living in the US. That stage of your life can be quite confusing, and a book like this would have certainly helped.
Also, I can’t believe how expensive college is in the US!
My degree cost about $4000 per semester, which ended up to be $12,000 because I went to TAFE (kind of like a technical, hands-on school for getting Diplomas) for two years and it counted towards the three-year degree. In Australia, we also had the HECS system where the government pays for your fees in full and you pay them back when you start to work full time.
In the US, as I’m sure my US-based readers know, these degrees are much higher. I didn’t know much about this before reading the book, but in the book, Tom mentions one example where the cost of a bachelor’s degree was $37,732 for in-state residents and $97,840 for out-of-state residents.
In addition to that, there is some valuable information on networking within your industry. He covers many other sections, such as the importance of learning throughout your career, which is a great way to improve your career.
Overall Rating for Cracking the Career Code
Overall I would give this book 4 stars.
It’s a short book, an easy read, and it has a lot of valuable information for those looking to go to college and get into a career that they really want. As mentioned, I wish I had something like this when I was at that age.
What recommendations would I have for this book?
Tom has a lot of experience in the IT industry, and I would have liked it if there was more focus on the IT industry in this book. He does mention a few stories and tips for the IT industry, but also makes reference to other careers, which are not related to IT. This is good general knowledge, but I think that having it focused on an IT career may have helped.
I think that the examples in the book were helpful, where he mentions people he knows that are in situations or stories that relate to the point he is explaining. I thought that some of these could have been longer, to go into more detail on the point.
Also, some more information about the author could have been helpful. Reading the book, I got an overview of his career, but some more stories and information about the author could have made it more relatable.
Overall, it’s a good read, and it would be helpful to those who are getting ready for college or already in college and looking to get started with their career. It helps to clear up a lot of confusion and questions that college grads or anyone may have.
If you are looking to go to college, or are in college and looking for career advice, check out Tom’s book.