My Reading List for Developers and Startuppers

These are some of the most enlightening books that I've come across on these topics.

Rogério R. Alcântara
11 min readMay 22, 2019
Probably not! 😅

The Infinite Game [new]

by Simon Sinek · Business > Management

From the New York Times bestselling author of Start With Why and Leaders Eat Last, a bold framework for leadership in today’s ever-changing world.

How do we win a game that has no end? Finite games, like football or chess, have known players, fixed rules and a clear endpoint. The winners and losers are easily identified. Infinite games, games with no finish line, like business or politics, or life itself, have players who come and go. The rules of an infinite game are changeable while infinite games have no defined endpoint. There are no winners or losers — only ahead and behind.

The question is, how do we play to succeed in the game we’re in?

In this revelatory new book, Simon Sinek offers a framework for leading with an infinite mindset. On one hand, none of us can resist the fleeting thrills of a promotion earned or a tournament won, yet these rewards fade quickly. In pursuit of a Just Cause, we will commit to a vision of a future world so appealing that we will build it week after week, month after month, year after year. Although we do not know the exact form this world will take, working toward it gives our work and our life meaning.

Leaders who embrace an infinite mindset build stronger, more innovative, more inspiring organizations. Ultimately, they are the ones who lead us into the future.

Test-Driven Development: By Example

by Kent Beck · Programming

Clean code that works — now. This is the seeming contradiction that lies behind much of the pain of programming. Test-driven development replies to this contradiction with a paradox — test the program before you write it.

A new idea? Not at all. Since the dawn of computing, programmers have been specifying the inputs and outputs before programming precisely. Test-driven development takes this age-old idea, mixes it with modern languages and programming environments, and cooks up a tasty stew guaranteed to satisfy your appetite for clean code that works — now.

Developers face complex programming challenges every day, yet they are not always readily prepared to determine the best solution. More often than not, such difficult projects generate a great deal of stress and bad code. To garner the strength and courage needed to surmount seemingly Herculean tasks, programmers should look to test-driven development (TDD), a proven set of techniques that encourage simple designs and test suites that inspire confidence.

By driving development with automated tests and then eliminating duplication, any developer can write reliable, bug-free code no matter what its level of complexity. Moreover, TDD encourages programmers to learn quickly, communicate more clearly, and seek out constructive feedback.

Readers will learn to:

• Solve complicated tasks, beginning with the simple and proceeding to the more complex.
• Write automated tests before coding.
• Grow a design organically by refactoring to add design decisions one at a time.
• Create tests for more complicated logic, including reflection and exceptions.
• Use patterns to decide what tests to write.
• Create tests using xUnit, the architecture at the heart of many programmer-oriented testing tools.

This book follows two TDD projects from start to finish, illustrating techniques programmers can use to easily and dramatically increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, Test-Driven Development is sure to inspire readers to embrace these under-utilized but powerful techniques.

Design Patterns in Ruby

by Russ Olsen · Programming Languages

Praise for Design Patterns in Ruby

Design Patterns in Ruby documents smart ways to resolve many problems that Ruby developers commonly encounter. Russ Olsen has done a great job of selecting classic patterns and augmenting these with newer patterns that have special relevance for Ruby. He clearly explains each idea, making a wealth of experience available to Ruby developers for their own daily work.”

— Steve Metsker, Managing Consultant with Dominion Digital, Inc.

“This book provides a great demonstration of the key ‘Gang of Four’ design patterns without resorting to overly technical explanations. Written in a precise, yet almost informal style, this book covers enough ground that even those without prior exposure to design patterns will soon feel confident applying them using Ruby. Olsen has done a great job to make a book about a classically ‘dry’ subject into such an engaging and even occasionally humorous read.”

— Peter Cooper

“This book renewed my interest in understanding patterns after a decade of good intentions. Russ picked the most useful patterns for Ruby and introduced them in a straightforward and logical manner, going beyond the GoF’s patterns. This book has improved my use of Ruby, and encouraged me to blow off the dust covering the GoF book.”

— Mike Stok

Design Patterns in Ruby is a great way for programmers from statically typed objectoriented languages to learn how design patterns appear in a more dynamic, flexible language like Ruby.”

— Rob Sanheim, Ruby Ninja, Relevance

Most design pattern books are based on C++ and Java. But Ruby is different — and the language’s unique qualities make design patterns easier to implement and use. In this book, Russ Olsen demonstrates how to combine Ruby’s power and elegance with patterns, and write more sophisticated, effective software with far fewer lines of code.

After reviewing the history, concepts, and goals of design patterns, Olsen offers a quick tour of the Ruby language — enough to allow any experienced software developer to immediately utilize patterns with Ruby. The book especially calls attention to Ruby features that simplify the use of patterns, including dynamic typing, code closures, and “mixins” for easier code reuse.

Fourteen of the classic “Gang of Four” patterns are considered from the Ruby point of view, explaining what problems each pattern solves, discussing whether traditional implementations make sense in the Ruby environment, and introducing Ruby-specific improvements. You’ll discover opportunities to implement patterns in just one or two lines of code, instead of the endlessly repeated boilerplate that conventional languages often require.

Design Patterns in Ruby also identifies innovative new patterns that have emerged from the Ruby community. These include ways to create custom objects with metaprogramming, as well as the ambitious Rails-based “Convention Over Configuration” pattern, designed to help integrate entire applications and frameworks.

Engaging, practical, and accessible, Design Patterns in Ruby will help you build better software while making your Ruby programming experience more rewarding.

Refactoring: Ruby Edition

By Jay Fields, Harvie, Fowler, Beck · Computers & Technology

The Definitive Refactoring Guide, Fully Revamped for Ruby

With refactoring, programmers can transform even the most chaotic software into well-designed systems that are far easier to evolve and maintain. What’s more, they can do it one step at a time, through a series of simple, proven steps. Now, there’s an authoritative and extensively updated version of Martin Fowler’s classic refactoring book that utilizes Ruby examples and idioms throughout–not code adapted from Java or any other environment.

The authors introduce a detailed catalog of more than 70 proven Ruby refactorings, with specific guidance on when to apply each of them, step-by-step instructions for using them, and example code illustrating how they work. Many of the authors’ refactorings use powerful Ruby-specific features, and all code samples are available for download.

Leveraging Fowler’s original concepts, the authors show how to perform refactoring in a controlled, efficient, incremental manner, so you methodically improve your code’s structure without introducing new bugs. Whatever your role in writing or maintaining Ruby code, this book will be an indispensable resource.

This book will help you

• Understand the core principles of refactoring and the reasons for doing it
• Recognize “bad smells” in your Ruby code
• Rework bad designs into well-designed code, one step at a time
• Build tests to make sure your refactorings work properly
• Understand the challenges of refactoring and how they can be overcome
• Compose methods to package code properly
• Move features between objects to place responsibilities where they fit best
• Organize data to make it easier to work with
• Simplify conditional expressions and make more effective use of polymorphism
• Create interfaces that are easier to understand and use
• Generalize more effectively
• Perform larger refactorings that transform entire software systems and may take months or years
• Successfully refactor Ruby on Rails code

Domain-Driven Design: Tackling Complexity in the Heart of Software

by Eric Evans · Computers & Technology

This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development.

Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis–refactoring not just the code but the model underlying the code–in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:

With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

Specification by Example: How Successful Teams Deliver the Right Software

By Gojko Adzic · Programming

Specification by Example is an emerging practice for creating software based on realistic examples, bridging the communication gap between business stakeholders and the dev teams building the software. In this book, author Gojko Adzic distills interviews with successful teams worldwide, sharing how they specify, develop, and deliver software, without defects, in short iterative delivery cycles.

The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

by Eric Ries · Business & Money

Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, changing the way companies are built and new products are launched.

Eric Ries defines a startup as an organization dedicated to creating something new under conditions of extreme uncertainty. This is just as true for one person in a garage or a group of seasoned professionals in a Fortune 500 boardroom. What they have in common is a mission to penetrate that fog of uncertainty to discover a successful path to a sustainable business.

The Lean Startup approach fosters companies that are both more capital efficient and that leverage human creativity more effectively. Inspired by lessons from lean manufacturing, it relies on “validated learning,” rapid scientific experimentation, as well as a number of counter-intuitive practices that shorten product development cycles, measure actual progress without resorting to vanity metrics, and learn what customers really want. It enables a company to shift directions with agility, altering plans inch by inch, minute by minute.

Rather than wasting time creating elaborate business plans, The Lean Startup offers entrepreneurs — in companies of all sizes — a way to test their vision continuously, to adapt and adjust before it’s too late. Ries provides a scientific approach to creating and managing successful startups in a age when companies need to innovate more than ever.

Jobs to be Done: Theory to Practice

by Anthony W. Ulwick · Business & Money

Why do so many innovation projects fail? What are the root causes of failure? How can they be avoided? Since 1990, Tony Ulwick has pioneered an innovation process that answers these questions. In 1999, Tony introduced Clayton Christensen to the idea that “people have underlying needs or processes in their lives, that they are addressing in some way right now” — an insight that was to become Jobs-to-be-Done Theory.

For 25 years, Ulwick and his company, Strategyn, have helped over 400 companies, applying Jobs-to-be-Done Theory in practice with a success rate of 86% — a 5-fold improvement.

“Ulwick has taken the guesswork out of innovation,” says the ‘father of modern marketing,’ Philip Kotler, S. C. Johnson Distinguished Professor of International Marketing at the Kellogg School of Management, Northwestern University. “He has done this by introducing us to Jobs-to-be-Done theory, and converting it to practice using his rigorous innovation process known as Outcome-Driven Innovation.

I call him the Deming of Innovation because, more than anyone else, Tony has turned innovation into a science,” adds Kotler.

LEARN
- Why companies fail at innovation and how to avoid critical mistakes.
- How to employ the Jobs-to-be-Done Theory Needs Framework to categorize, define, capture, and prioritize customer needs.
- A Jobs-to-be-Done Growth Strategy Matrix to categorize, understand, and employ the 5 strategies that drive growth.
- Outcome-Based Segmentation: how does it create new opportunities?
- The details of the innovation process known as Outcome-Driven Innovation. It ties customer-defined metrics to the customer’s Job-to-be-Done, transforming every aspect of opportunity discovery, marketing and innovation.
- The Language of Job-to-be-Done — the syntax and lexicon of innovation.

Predictable Revenue — Turn Your Business Into A Sales Machine

by Aaron Ross · Business & Money

Discover the outbound sales process that, in just a few years, helped add $100 million in recurring revenue to Salesforce.com, almost doubling their enterprise growth… without cold calling or a boiler room approach.

This is NOT another book about how to cold call or close deals. This is an entirely new kind of sales bible for CEOs, entrepreneurs and sales VPs to help you build a sales machine, and a sales culture that people love.

What does it take for your sales team to generate as many highly-qualified new leads as you want, create predictable revenue, and meet your financial goals without your constant focus and attention? What does it take to attract top sales talent, people who exceed and want to stay and grow with your company?

The Hard Thing About Hard Things

by Ben Horowitz · Business > Management

Ben Horowitz, cofounder of Andreessen Horowitz and one of Silicon Valley’s most respected and experienced entrepreneurs, offers essential advice on building and running a startup — practical wisdom for managing the toughest problems business school doesn’t cover, based on his popular ben’s blog.

While many people talk about how great it is to start a business, very few are honest about how difficult it is to run one. Ben Horowitz analyzes the problems that confront leaders every day, sharing the insights he’s gained developing, managing, selling, buying, investing in, and supervising technology companies. A lifelong rap fanatic, he amplifies business lessons with lyrics from his favorite songs, telling it straight about everything from firing friends to poaching competitors, cultivating and sustaining a CEO mentality to knowing the right time to cash in.

Filled with his trademark humor and straight talk, The Hard Thing About Hard Things is invaluable for veteran entrepreneurs as well as those aspiring to their own new ventures, drawing from Horowitz’s personal and often humbling experiences.

It is a bit short, indeed.

Yet, as soon as I get to know something worth sharing (on these particular subjects), I will update the list immediately.

Well, that’s it!

I am also kinda keen on publishing my reading notes for each book. But it has been deprioritized this year —due to, you know, the end of the world.. 😅

Maybe in another life, when we are both cats..

--

--