With 2017 nearly over, it’s time to review the best tech books I’ve read this year. For a full list, you can checkout Goodreads. In this post I’ll be discussing my favourites.

Clean Code

In 2017 I wanted to read a book about code quality and software design, from outside the Ruby ecosystem. Of course, there are many books to choose from but I settled on Clean Code. I would say that Clean Code is written in a similar style to Practical Object-Oriented Design in Ruby, it attempts to explain what good code looks like. The book covers topics such as: methods, classes, comments etc. In each of the topics it tries to explain the difference between good code and bad code.

Although the book uses Java, I found most of it was very applicable to Ruby or JavaScript. I would recommend this book to Rubyists who want a different perspective.

REST API handbook

A lot of the work I do involves building REST APIs. I decided that it was time to really understand what makes a great REST API. This book provides a short and concise explanation for what a good REST API should look like. Anyone who is building APIs in Rails (or any other language) should pick up a copy of this book. It covers topics like: REST principles, authentication, versioning etc.

Practical Object-Oriented Design in Ruby (re-read)

Practical Object Oriented Design in Ruby (POODR) doesn’t need must introduction. It’s one of the most widely recommended ruby books and a must read for any Ruby developer. I read it again, for the third time, in 2017.

Ruby Design Patterns (re-read)

I read this book for a second time in 2017. I believe that internalising the design patterns in this book is a great way to level up, as a Ruby developer. For me, it’s a book that I need to keep reading because applying design patterns is a complex skill to master.

Gang of Four Design Patterns is one of the most highly recommended books for any aspiring developer. The Ruby Design Patterns book takes the Gang of Four patterns and applies them to Ruby.

Learning SQL (re-read)

Strong knowledge of SQL is very useful for backend development. Most Rails applications that I work on are backed by a MySQL or PostgresSQL database. I’ve read this book before but it’s the kind of book that you need to keep referring back to. The book starts with simple stuff like selecting data from a table and progresses through to joins, sub-queries, SQL views etc. This year, the book has really helped me to improve the performance of my code by utilising the database, more, for heavy lifting.

The Little Go Book

On of my goals for 2018 is to learn Go-lang. I’ve written a few small applications with it but I’ve never taken the time to learn it in depth. The Little Go Book is a great introduction to Go, it’s available for free and it’s a quick read. The book covers Go’s main features, syntax and principles. It’s a great book to give you a solid foundation before going on to tackle more challenging books.

I recommend reading through this book with a laptop. Try typing out each snippet of code and getting it to run. This helps the information sink in and also starts to develop muscle memory with the new programming language.