This article is part of HostGator’s Web Pros Series. In this series, we feature articles from our team of experts here at HostGator. Our Product Managers, Linux Administrators, Marketers, and Tech Support engineers share their best tips for getting the most out of your website.
What do software engineers read in their free time? What should you read if you’re interested in learning more about software development?
HostGator asked, and I answered with my top picks for web developers and software engineers, people who’d like to know more about programming, and anyone who has to work with cross-functional teams, negotiate a pay raise or convince people to follow your vision for a project.
Let’s start with a classic introduction for people with a serious interest in software design.
1. Object-Oriented Analysis and Design
The number one book that I think most software engineers would recommend is Object Oriented Analysis and Design. It’s the big “how do I architect?” guide, and it provides a lot of the background theory as to why you would do object-oriented programming, which is the major programming paradigm that is used currently.
This book is a standard recommended read for anyone who’s interested in software development. However, as a software engineer, you don’t want to focus solely on being good at writing software.
You need to be good at that, of course. But you also want to figure out what other domains to build yourself up in because you’re going to need to communicate with people who aren’t technical. That leads to my next recommendation…
2. The Phoenix Project
As part of your work, you’re going to need to convince people who aren’t technical to consider your ideas. To make the best engineering decisions, it’s important to have support outside of the engineering department.
The Phoenix Project isn’t a how-to guide. It’s a tech narrative about a fictional company that’s transitioning to the DevOps model from an older, less integrated model of working. It’s talking about the challenge of coordinating between operations and development, and how to bridge that gap and move forward quickly at scale.
It’s a pretty easy read and a good book to help you get a feel for where you want to start becoming more cross-functional. You don’t have to become an operations expert, but it’s a good idea to understand what operations is doing, so you can understand how your code is deployed beyond just, “I wrote it and now somebody else has to figure out how to get this thing to work.”
On the flipside, this book can also help people in operations and other departments understand what IT has to do to make the transition to this newer working model. The more different teams can understand each other, the more effectively they can work together.
Next, I recommend a couple of books that show engineers not only how to create new products quickly but also to decide if they’re the right products to create.
3 and 4. Lean UX and Sprint
Lean UX: Designing Great Products with Agile Teams is a great book, along with Sprint: How to Solve Big Problems and Test New Ideas in Just Five Days, for understanding how to build a product quickly and with low risk.
This is important because you don’t want to write a program and then see if the market likes it. These books work together to give you a process and a philosophy to follow, to test early and to test often based on what the customer wants. These are also good books for people who work in other departments who want to learn more about how the development process works.
The four books above aren’t new to me, but I’m always looking to learn more. Here’s what’s on my list and why.
5. Domain Modeling Made Functional
Right now, I’m rereading Domain Modeling Made Functional. This book looks at domain-driven design in the framework of a functional programming language, rather than a programming language that’s object-oriented.
That’s a different programming paradigm, and the book makes a compelling case as to why and where you’d want to use a functional programming language—for example, when you need something customer-focused developed fast.
6. Domain-Driven Design: Tackling Complexity in the Heart of Software
This book is on my to-read list because it’s supposed to address how you translate processes into software.
What does a process look like for somebody who doesn’t write software? How do you communicate about that process so you can translate it correctly into a software system? That requires communication among teams, maybe marketing, maybe sales in addition to engineering, to express those processes in terms of code.
Books 5 and 6 are aimed at readers who are familiar with software engineering principles. The next two books I recommend are for anyone who ever has to work with other people—in other words, all of us.
7. Never Split the Difference
This book is about negotiation and effective communication with people with diverse opinions and perspectives. I recommend Never Split the Difference for just for anybody who’s trying to do anything.
For example, if you want to negotiate a better salary or make an argument for using a particular technology over another, this book is going to give you the tools to negotiate well.
8. Pre-Suasion: A Revolutionary Way to Influence and Persuade
Pre-Suasion is one of those books that changes your perspective on the world. It focuses on how to set up situations so that you can be more persuasive in your discussions. When you read this book, it helps you see the world through the frame of persuasion, and you can see that things that you don’t think are persuasion can actually convince people to agree with your ideas.
If you do any kind of marketing or negotiating with anybody, this book will give you the tools to be more persuasive even if you don’t have a natural understanding of those skills.
What Other Computer Engineering Resources Are Worth Reading and Watching?
Technology changes fast, and there’s always something new to learn. Beyond books, I like to check out software conference talks on YouTube and see what looks interesting.
Hacker News, run by the startup incubator Y Combinator, is a great place to get the latest information from other users on things like programming, cybersecurity, 3D printing and other tech topics. It’s a great resource for spotting emerging industry trends and deciding what you’d like to learn about next.
What’s next on your to-learn list? Check out these HostGator blogs: