Metaprogramming enables you to produce elegant, clean, and beautiful programs as well as their exact opposite programs. This book will teach you the powerful metaprogramming concepts in Ruby, and how to use them judiciously.
This books contains Jon Bentley’s essays from his column in Communications of the Association for Computing Machinery. It describes practical programming techniques and fundamental design principles.
Bell Labs, where Unix began, was a remarkable institution that produced many good ideas and capitalized on them.
This book is about the simple things experienced, successful developers do that beginners don’t. It is a style guide, in a sense, teaching you how to communicate most clearly through your code. This book is for developers who want to program and want to do so as quickly, safely, and effectively as possible.
This is the classic text on writing. It offers practicaly, highly useful advice on improving your writing skills. This book will help you communicate more effectively and in a simple, concise way.
People have been programming for more than 80 years, but there has been surprisingly little conversation about how to design those programs or what good programs should look like. Though much has been written on development processes and techniques like agile and object-oriented programming, but the core problem of software design is still not explored.
Deep Survival is less about outdoor survival and more about life. Its lessons go far beyond the wilderness and help you not only survive, but thrive with the challenges that life throws at you. Really well-written book. A must read. Here are my highlights.
Rework redefines how to start and stay in a business. It is full of contrarian ideas, such as staying small is good for you and your business. I have read this book multiple times over the last decade. Every time I read it, I learn something new. The advice doesn’t only apply to the founders but also employees and management. A must read.
Whenever you read [Refactoring ], it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code. - DHH
Gerald M. Weinberg is one of my favourite writers when it comes to explaining complicated ideas in simple terms. This book explains his writing process and contains valuable advice for aspiring writers. What’s funny is that all the advice for writers is equally applicable to software developers. Just replace writing with programming.
People are interested in how you work, if only you presented it to them in the right way.
This book taught me a lot about the activity that everyone just takes for granted. It’s more important to understand what a lack of sleep will do to your health than the benefits.
One of the classic Stoic texts that has stood the tests of time for over two thousand years.
One of the best books on finance. Doesn’t delve into complex formulas, saving money on lattes, or maths. Instead focuses the fundamentals. Simplicity, discipline, patience, and a focus on the long-term.
I have started diving deeper and deeper into Docker. Currently, I am reading “Docker in Action” by Jeffrey Nickoloff and Stephen Kuenzli. It’s a very well-written book, in an easy to understand language. I highly recommend reading this book if you want to understand Docker and containers. Here is a brief summary of the first chapter, which gives a detailed introduction to Docker and related technology.
A classic text on problem-solving by Jerry Weinberg. The book is short, but packed with wisdom. Especially useful if you are a software developer trying to build yet another feature for your application.
A really good introductory book to big ideas in Physics, by Richard Feynman. It is very approachable, and can be read by a high-school student as well as someone doing a PhD. He explains some really advanced concepts by relating them to everyday objects and events in life. The book literally changes the way you look at the world.
While preparing for the Microsoft and CityView interviews, I did a lot of meta reading on interviews and resume building. I came across a few really good resources such as The Google Resume from Gayle Laakmann McDowell. I also read a bunch of blog posts which I have grouped in this same post.
I usually don’t read satire, but so far the best one has been “The Age of Absurdity” by Michael Foley, and it was one of the best books I read in 2017. It critiques the eccentricities of modern life, revealing some rather uncomfortable truths. I have tried to summarize the book to the best of my understanding, but it goes much deeper than my naive first impressions.
The son of an Indian Civil servant studies hard, gets an engineering degree, immigrates to the United States, and makes it in tech. But wait, there is more to it. Hit Refresh is less about the personal life of Satya and more about the amazing transformation happening inside Microsoft. This is my informal summary of Hit Refresh, an autobiography of Satya Nadella.
While medical science has given us the ability to extend life, it does not ask – or answer – the question of if that extended life still has meaning. In this book, Dr. Gawande calls for change in the way medical professionals deal with illness and final stages of a patient’s life.