Whether you are a new developer or just want to sharpen your skills, there is a diverse array of app development books from which to choose. Check out these recommendations by a few industry pros.
Add Angular to your resume
For current features of the web app development platform Angular, check out Learning Angular - Second Edition by Christoffer Noring and Pablo Deeleman, said Sal Pece, senior enterprise architect at Xennial Consulting in Toronto. The book, which is aimed at web developers with no prior knowledge of Angular, covers all facets of the platform, from the creation of components to unit testing.
"I see [Angular] as the future," Pece said. "It's got a lot of weight behind it."
Don't develop apps -- craft them
Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin shows the way to be a great application architect and how to recognize the attributes of good software design. The author explains that, to build a system with a design and an architecture that minimize effort and maximize productivity, you need to know which attributes of system architecture lead to that end.
Pece also recommended another Martin book about app development, Clean Code: A Handbook of Agile Software Craftsmanship, which shows how poorly written code can sink an organization.
"This offers great tips on how to move from basic or advanced developer to become a cleaner developer," Pece said. "It really teaches you how to fine-tune those skills."
To learn more about the Agile development process, consider this practical guide to building products, The Lean Product Playbook: How to Innovate with Minimum Viable Products and Rapid Customer Feedback by Dan Olsen.
To learn about the future of enterprise frameworks and, in particular, microservices, Pece suggested Learning Spring Boot 2.0 by Greg L. Turnquist, a Java developer on the Spring team at Pivotal, a cloud platform vendor. Turnquist's book is aimed at both beginners and advanced developers who want to not just build an app in the Spring Boot format, but also learn how to deploy the app in the cloud. Spring Boot is designed to help developers write production-ready Spring apps without a lot of upfront investment.
Pece rounded out his reading list with Introducing Ethereum and Solidity: Foundations of Cryptocurrency and Blockchain Programming for Beginners by Chris Dannen. Ethereum is an open source, blockchain-type, distributed platform that can run applications like bitcoin. "[The book] gets into the technology and shows you how to set it up," Pece said.
Go beyond code
App development books are useful, but developers can also round out their skill sets with some business acumen. Jason Grant, a developer and UI designer for Vertex Pharmaceuticals in Boston, suggested a couple of books by Jason Fried and David Heinemeier Hansson from Basecamp, the collaboration platform and group organizer. Hansson is also known as the inventor of Ruby on Rails.
The first, Rework, is about creative ways to start and run a company and is a study on how to break rules and be successful. The underlying message is that a company does not need to be huge or have a large staff. The second title, Remote: Office Not Required, covers a topic -- working together without sharing physical space -- that is well-understood at Basecamp, which is largely populated by remote workers.
The two books offer examples from the early days of Basecamp, which Grant uses to glean wisdom that might apply to either his team or a product he hopes to manage.
As one key takeaway, Grant said he has learned to approach a project by asking why versus what. If you tell your team why you want to do something, rather than what you want to build, it gives them the ability to question the what. Another important lesson is to give employees a purpose so they can think of how to solve a problem as a whole. In an Agile environment, developers might not have as detailed requirements when it comes to the product build as they did in the past.
"But when Agile is done correctly, you are looking at an end state," Grant said. "Giving [developers] a view of that end state [the why] gives them a purpose."
Know your history with app development books
If you are unfamiliar with the following classics, they are not to be missed, according to Gordon Haff, technology evangelist at Red Hat.
The Phoenix Project by Gene Kim, George Spafford and Kevin Behr is a fable about DevOps rather than a how-to guide, but it's widely accepted as the founding text of the DevOps movement. "Not everyone's read it as carefully as they should have, as witnessed by the need to explicitly associate security with DevOps in the form of DevSecOps, even though security practices figure heavily in the book," Haff said.
He also recommended the more recent The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations by Gene Kim, John Willis, Jez Humble and Patrick Dubois. It's a more practical, prescriptive book than The Phoenix Project.
If you haven't already, pick up Tracy Kidder's The Soul of a New Machine, the Pulitzer Prize-winning story about the creation of the MV/8000 minicomputer. It's more about hardware than software but is still probably the best book about the development of a new product ever written, Haff said.
In a similar vein, G. Pascal Zachary's Show Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft examines the development of Windows NT with architect Dave Cutler and Microsoft.
Among the app development books that help us learn from history is The Mythical Man-Month: Essays on Software Engineering by Fred Brooks. This tome is rooted in the waterfall development practices that dominated the industry at the time of the IBM System/360 and chronicles that system's development, Haff said.
"Certain things in this book are so widely quoted -- the mythical man-month itself, the difference between a program and a product -- that every developer should have at least skimmed this book once," Haff said.
5 books software testers should dig into