Best Software Design Tools Books

A continuous learning mindset is a key quality of a software developer who wants to stay relevant and grow their market value.

1. 101 Most Popular Excel Formulas (101 Microsoft Excel)

Author: by John Michaloudis
Published at: Independently published (October 22, 2019)
ISBN: 978-1700300911

View on Amazon

Learn the Most Popular Excel Formulas Ever: VLOOKUP, IF, SUMIF, INDEX/MATCH, COUNT, SUMPRODUCT plus Many More! With this book, you’ll learn to apply the must know Excel Formulas & Functions to make your data analysis & reporting easier and will save time in the process.

With this book you get the following: 101 Ready Made Formulas Covering: LOOKUP, LOGICAL, MATH, STATISTICAL, TEXT, DATE, TIME & INFORMATION Easy to Read Step by Step Guide with Screenshots Downloadable Practice Workbooks for each Formula with Solutions New Excel Formulas For Excel 2019 & Office 365 You also get a FREE BONUS downloadable PDF version of this book!

This book is a MUST-HAVE for Beginner to Intermediate Excel users who want to learn Excel Formulas FAST & stand out from the crowd!

2. Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People

Author: by Aditya Bhargava
Published at: Manning Publications; 1st edition (May 1, 2016)
ISBN: 978-1617292231

View on Amazon

SummaryGrokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You’ll start with sorting and searching and, as you build up your skills in thinking algorithmically, you’ll tackle more complex concerns such as data compression and artificial intelligence.

Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. Learning about algorithms doesn’t have to be boring! Get a sneak peek at the fun, illustrated, and friendly examples you’ll find in Grokking Algorithms on Manning Publications’ YouTube channel.

Continue your journey into the world of algorithms with Algorithms in Motion, a practical, hands-on video course available exclusively at Manning.Com (www.Manning. Com/livevideo/algorithms-in-motion). Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the TechnologyAn algorithm is nothing more than a step-by-step procedure for solving a problem. The algorithms you’ll use most often as a programmer have already been discovered, tested, and proven. If you want to understand them but refuse to slog through dense multipage proofs, this is the book for you.

3. Fundamentals of Software Architecture: An Engineering Approach

Author: by Mark Richards

Published at: O'Reilly Media; 1st edition (February 18, 2020)
ISBN: 978-1492043454

View on Amazon

Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects.Until now. This book provides the first comprehensive overview of software architecture’s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.

Mark Richards and Neal Fordhands-on practitioners who have taught software architecture classes professionally for yearsfocus on architecture principles that apply across all technology stacks. You’ll explore software architecture in a modern light, taking into account all the innovations of the past decade.

This book examines:Architecture patterns: The technical basis for many architectural decisionsComponents: Identification, coupling, cohesion, partitioning, and granularitySoft skills: Effective team management, meetings, negotiation, presentations, and moreModernity: Engineering practices and operational approaches that have changed radically in the past few yearsArchitecture as an engineering discipline: Repeatable results, metrics, and concrete valuations that add rigor to software architecture

4. Essential Scrum: A Practical Guide to the Most Popular Agile Process (Addison-Wesley Signature Series (Cohn))

Author: by Kenneth Rubin
Published at: Addison-Wesley Professional; 1st edition (July 26, 2012)
ISBN: 978-0137043293

View on Amazon

A Practical Guide to the Most Popular Agile Process The Single-Source, Comprehensive Guide to Scrum for All Team Members, Managers, and Executives If you want to use Scrum to develop innovative products and services that delight your customers, Essential Scrum is the complete, single-source reference you’ve been searching for.

Leading Scrum coach and trainer Kenny Rubin illuminates the values, principles, and practices of Scrum, and describes flexible, proven approaches that can help you implement it far more effectively. Whether you are new to Scrum or years into your use, this book will introduce, clarify, and deepen your Scrum knowledge at the team, product, and portfolio levels.

Drawing from Rubin’s experience helping hundreds of organizations succeed with Scrum, this book provides easy-to-digest descriptions enhanced by more than two hundred illustrations based on an entirely new visual icon language for describing Scrum’s roles, artifacts, and activities. Essential Scrum will provide every team member, manager, and executive with a common understanding of Scrum, a shared vocabulary they can use in applying it, and practical knowledge for deriving maximum value from it.

5. Software Engineering at Google: Lessons Learned from Programming Over Time

Author: by Titus Winters
Published at: O'Reilly Media; 1st edition (March 24, 2020)
ISBN: 978-1492082798

View on Amazon

Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering. How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life?

Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world’s leading practitioners construct and maintain software. This book covers Google’s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization.

You’ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code:How time affects the sustainability of software and how to make your code resilient over timeHow scale affects the viability of software practices within an engineering organizationWhat trade-offs a typical engineer needs to make when evaluating design and development decisions

6. User Story Mapping: Discover the Whole Story, Build the Right Product

Author: by Jeff Patton
Published at: O'Reilly Media; 1st edition (October 7, 2014)
ISBN: 978-1491904909

View on Amazon

User story mapping is a valuable tool for software development, once you understand why and how to use it. This insightful book examines how this often misunderstood technique can help your team stay focused on users and their needs without getting lost in the enthusiasm for individual product features.

Author Jeff Patton shows you how changeable story maps enable your team to hold better conversations about the project throughout the development process. Your team will learn to come away with a shared understanding of what you’re attempting to build and why.

Get a high level view of story mapping, with an exercise to learn key concepts quicklyUnderstand how stories really work, and how they come to life in Agile and Lean projectsDive into a story’s lifecycle, starting with opportunities and moving deeper into discoveryPrepare your stories, pay attention while they’re built, and learn from those you convert to working software

7. Introducing Python: Modern Computing in Simple Packages

Author: by Bill Lubanovic
Published at: O'Reilly Media; 2nd edition (December 3, 2019)
ISBN: 978-1492051367

View on Amazon

Easy to understand and fun to read, this updated edition of Introducing Python is ideal for beginning programmers as well as those new to the language. Author Bill Lubanovic takes you from the basics to more involved and varied topics, mixing tutorials with cookbook-style code recipes to explain concepts in Python 3.

End-of-chapter exercises help you practice what you’ve learned. You’ll gain a strong foundation in the language, including best practices for testing, debugging, code reuse, and other development tips. This book also shows you how to use Python for applications in business, science, and the arts, using various Python tools and open source packages.

8. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software

Author: by Michael Sikorski

Published at: No Starch Press; 1st edition (February 1, 2012)
ISBN: 978-1593272906

View on Amazon

Any programmer working with a dynamically typed language will tell you how hard it is to scale to more lines of code and more engineers. That’s why Facebook, Google, and Microsoft invented gradual static type layers for their dynamically typed JavaScript and Python code.

This practical book shows you how one such type layer, TypeScript, is unique among them: it makes programming fun with its powerful static type system. If you’re a programmer with intermediate JavaScript experience, author Boris Cherny will teach you how to master the TypeScript language.

You’ll understand how TypeScript can help you eliminate bugs in your code and enable you to scale your code across more engineers than you could before. In this book, you’ll:Start with the basics: Learn about TypeScript’s different types and type operators, including what they’re for and how they’re usedExplore advanced topics: Understand TypeScript’s sophisticated type system, including how to safely handle errors and build asynchronous programsDive in hands-on: Use TypeScript with your favorite frontend and backend frameworks, migrate your existing JavaScript project to TypeScript, and run your TypeScript application in production

10. 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python

Author: by Imran Ahmad
Published at: Packt Publishing; Illustrated edition (June 12, 2020)
ISBN: 978-1789801217

View on Amazon

Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental algorithms, such as sorting and searching, to modern algorithms used in machine learning and cryptographyKey FeaturesLearn the techniques you need to know to design algorithms for solving complex problemsBecome familiar with neural networks and deep learning techniquesExplore different types of algorithms and choose the right data structures for their optimal implementationBook DescriptionAlgorithms have always played an important role in both the science and practice of computing.

Beyond traditional computing, the ability to use algorithms to solve real-world problems is an important skill that any developer or programmer must have. This book will help you not only to develop the skills to select and use an algorithm to solve real-world problems but also to understand how it works.

You’ll start with an introduction to algorithms and discover various algorithm design techniques, before exploring how to implement different types of algorithms, such as searching and sorting, with the help of practical examples. As you advance to a more complex set of algorithms, you’ll learn about linear programming, page ranking, and graphs, and even work with machine learning algorithms, understanding the math and logic behind them.

11. Software Architecture with C# 9 and .NET 5: Architecting software solutions using microservices, DevOps, and design patterns for Azure, 2nd Edition

Author: by Gabriel Baptista
Published at: Packt Publishing; 2nd ed. edition (December 28, 2020)
ISBN: 978-1800566040

View on Amazon

Design scalable and high-performance enterprise applications using the latest features of C# 9 and . NET 5Key FeaturesGain fundamental and comprehensive software architecture knowledge and the skillset to create fully modular appsDesign high-performance software systems using the latest features of . NET 5 and C# 9Solve scalability problems in web apps using enterprise architecture patternsBook DescriptionSoftware architecture is the practice of implementing structures and systems that streamline the software development process and improve the quality of an app.

This fully revised and expanded second edition, featuring the latest features of . NET 5 and C# 9, enables you to acquire the key skills, knowledge, and best practices required to become an effective software architect. This second edition features additional explanation of the principles of Software architecture, including new chapters on Azure Service Fabric, Kubernetes, and Blazor.

It also includes more discussion on security, microservices, and DevOps, including GitHub deployments for the software development cycle. You will begin by understanding how to transform user requirements into architectural needs and exploring the differences between functional and non-functional requirements.

12. Learn Quantum Computing with Python and IBM Quantum Experience: A hands-on introduction to quantum computing and writing your own quantum programs with Python

Author: by Robert Loredo
Published at: Packt Publishing (September 28, 2020)

ISBN: 978-1838981006

View on Amazon

A step-by-step guide to learning the implementation and associated methodologies in quantum computing with the help of the IBM Quantum Experience, Qiskit, and Python that will have you up and running and productive in no timeKey FeaturesDetermine the difference between classical computers and quantum computersUnderstand the quantum computational principles such as superposition and entanglement and how they are leveraged on IBM Quantum Experience systemsRun your own quantum experiments and applications by integrating with QiskitBook DescriptionIBM Quantum Experience is a platform that enables developers to learn the basics of quantum computing by allowing them to run experiments on a quantum computing simulator and a real quantum computer.

This book will explain the basic principles of quantum mechanics, the principles involved in quantum computing, and the implementation of quantum algorithms and experiments on IBM’s quantum processors. You will start working with simple programs that illustrate quantum computing principles and slowly work your way up to more complex programs and algorithms that leverage quantum computing.

13. Learning React: Modern Patterns for Developing React Apps

Author: by Alex Banks
Published at: O'Reilly Media; 2nd edition (July 7, 2020)
ISBN: 978-1492051725

View on Amazon

Without established design patterns to guide them, developers have had to build distributed systems from scratch, and most of these systems are very unique indeed. Today, the increasing use of containers has paved the way for core distributed system patterns and reusable containerized components.

This practical guide presents a collection of repeatable, generic patterns to help make the development of reliable distributed systems far more approachable and efficient. Author Brendan BurnsDirector of Engineering at Microsoft Azuredemonstrates how you can adapt existing software design patterns for designing and building reliable distributed applications.

Systems engineers and application developers will learn how these long-established patterns provide a common language and framework for dramatically increasing the quality of your system. Understand how patterns and reusable components enable the rapid development of reliable distributed systemsUse the side-car, adapter, and ambassador patterns to split your application into a group of containers on a single machineExplore loosely coupled multi-node distributed patterns for replication, scaling, and communication between the componentsLearn distributed system patterns for large-scale batch data processing covering work-queues, event-based processing, and coordinated workflows

15. Kubernetes and Docker – An Enterprise Guide: Effectively containerize applications, integrate enterprise systems, and scale applications in your enterprise

Author: by Scott Surovich
Published at: Packt Publishing (November 6, 2020)
ISBN: 978-1839213403

View on Amazon

Apply Kubernetes beyond the basics of Kubernetes clusters by implementing IAM using OIDC and Active Directory, Layer 4 load balancing using MetalLB, advanced service integration, security, auditing, and CI/CDKey FeaturesFind out how to add enterprise features to a Kubernetes cluster with theory and exercises to guide youUnderstand advanced topics including load balancing, externalDNS, IDP integration, security, auditing, backup, and CI/CDCreate development clusters for unique testing requirements, including running multiple clusters on a single server to simulate an enterprise environmentBook DescriptionContainerization has changed the DevOps game completely, with Docker and Kubernetes playing important roles in altering the flow of app creation and deployment.

This book will help you acquire the knowledge and tools required to integrate Kubernetes clusters in an enterprise environment. The book begins by introducing you to Docker and Kubernetes fundamentals, including a review of basic Kubernetes objects. You’ll then get to grips with containerization and understand its core functionalities, including how to create ephemeral multinode clusters using kind.

16. Ansible for DevOps: Server and configuration management for humans

Author: by Jeff Geerling
Published at: Midwestern Mac, LLC (August 5, 2020)
ISBN: 978-0986393426

View on Amazon

Ansible is a simple, but powerful, server and configuration management tool (with a few other tricks up its sleeve). This book will help those familiar with the command line and basic shell scripting start using Ansible to provision and manage anywhere from one to thousands of servers.