Published on Monday, 04 January 2016
2015 has been full of changes and experiences, not only in the professional field but also in my personal life. My parentship in the beginnings of the year took many sleeping hours and made me focus on aspects of my life I had set aside for a while. Nevertheless, it would take too long to explain all the learnings the last year has brought. My time in peerTransfer (now Flywire) made me turn towards tech stacks I've enjoyed so much and gave me a bunch of lessons about human interactions. It wasn't easy for me to leave the company, I was leaving many friends and people I respect so much.
But we aren't here to talk about my parenthood or my professional career, are we? This is about readings, so there we go in chronological order.
This was the book I chose to start learning Ruby seriously. I had developed a few small projects with Ruby On Rails and Sinatra (such as this blog), but I needed a deeper understanding of the language. Unsuprisingly given the title of the book, we could say this isn't a book about Ruby. Or, well, Ruby is just the language the examples are written in. Despite it's short length, in Practical Object-Oriented Design, Sandi Metz talks deeply about Object-Oriented programming from the perspective of the dynamic languages. It was a real joy to read this book, and no matter if you're a Ruby developer or if you come from other language, I can't but recommend this book. GREAT.
I had to boost my Ruby skills quickly to be helpful in peerTransfer, so here is another Ruby book. Unlike the previous one, Eloquent Ruby is very focused on the Ruby language. It helped me a lot to understand Ruby particularities such as blocks or symbols. Deep, direct and well written. I tend to like generalist books more than language-specific ones, but if you're in the need of - or looking for - learning ruby, this book is a must. GOOD.
What could I tell you about this book. It was my third attempt to read it, I got bored to death the previous two ones and I abandoned the reading both times in the chapter about Value Objects. The reasons, a chatty style, the abuse of buzzwords and excessive repetition. But the year before I had promised to read it and I like to keep my words.
While reading it, the book goes in crescendo. It starts with general principles and concepts that will for sure influence your way of thinking. And once you pass through the first half of the book you will get caught. It happened to me, at least. I don't like the style of the author, but this was probably my best reading in 2015. GREAT.
Having advocated strongly for TDD during the last five years, it was really embarassing for me not having read the book that started it all. This short, practical book is a very good starter for those who are willing to learn the TDD technique, and equally good for those with more experience that want to improve how they do. It will teach you a bunch of worthy things about testing and refactoring. GREAT
One of the books that have written the history of software development, published in 1975 it is full of funny anecdotes you could tell yourself of how things work in software development. It will make you understand a lot why the agile movement was born, and it reveals how little we have progressed in software engineering during the last decades. It won't probably teach you anything practical, but it will give you a lot of software engineering general culture and you'll have some fun for sure. INTERESTING.
Another book I read aiming to boost my skills for peerTransfer, since I was developing a Service-Oriented architecture I thought this reading would be helpful. And it was, indeed. Very closely related to Domain Driven Design, it soon starts talking about Bounded Contexts, Domain events and other shared concepts. It covers all the aspects of the microservice architecture, including operations, monitoring and testing, providing concrete tools and diverse alternatives. Unfortunately, in my opinion, it only scratches the surface of the concepts it covers, and many of the things it teaches can be reached intuitively.
Being the testing my greatest point of interest, and being it so complex when dealing with microservices, I really missed a deeper approach in that chapter. Anyway, it's a good book to have a wide view of the architecture and to start playing with concepts and tooling. OKAY.
This book is so amazingly extense I couldn't finish it. It explains in such detail every single aspect of programming that I felt overwhelmed. Probably my bad, I always read the books from the beginning to the end, and this book may be better read as a reference material. Some of the things it mentions are very language specific and have been overcome by modern, high-level languages. It mentions a lot of studies of dubious credibilty and probably outdated. But some advices are pure gold.
I think I would recommend it for someone who is learning programming or studying computer science in the university, but it can be a bit coarse for an experience developer. Given I've read it only to about 55%, I won't make any evaluation.
Farewell, hope to see you in a year with new, interesting books and readings.