The Pragmatic Programmer is one of those rare tech books you'll read, re-read, and read again over the years. Whether you're new to the field or an experienced practitioner, you'll come away with fresh insights each and every time.
Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.
Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to:
Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.
One of the most significant books in my life.
--Obie Fernandez, Author, The Rails Way
Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.
--Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied
. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.
--Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks
. . . lightning does strike twice, and this book is proof.
--VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
What is the true meaning of quality? How can you influence positive attitudes towards quality within the workplace?
Leading Quality teaches you how to influence and align your company's definition of quality, so that you can deliver the best possible experience to your clients. You will learn the techniques successful leaders use to make their strategic decisions and you will be given the tools to ensure that your team is in alignment to achieving common goals. Leading Quality is the first book that teaches why quality is important and how to incorporate it within the workspace.
Praise for Leading Quality:
A quality mindset remains key to differentiating your product and your company. Leading Quality offers key lessons to develop this mindset.
- Michael Lopp, author of Managing Humans and VP of Product Engineering at Slack
Leading Quality communicates just how important a focus on quality is within your company and is one of the few titles that actually teaches how to lead quality in a clear yet captivating manner.
- Shesh Patel, Engineering Manager at The New York Times
Three elements define any successful product: quality, quality, and quality. Leading Quality is a comprehensive and practical guide to embedding quality into the DNA of any product organization.
- Nick Caldwell, CPO at Looker and former VP of Engineering at Reddit
This book provides programmers with the ability to cost effectively handlecommon legacy code problems without having to go through the hugelyexpensive task of rewriting all existing code. It describes a series of practicalstrategies that developers can employ to bring their existing softwareapplications under control. The author provides useful guidance about how touse these strategies when refactoring or making functional changes to codebases. One of the book's key points is that it teaches developers to write teststhat can be used to make sure they are not unintentionally changing theapplication as they optimize it. Examples are provided in Java, C++, and Csharp, and the book assumes that the reader has some knowledge of UMLnotation. Strategies using UML and code in C++ and Java primarily whilelanguage independent advice will be delivered in side bars and appendices forlanguage specific users.
Jack the Ripper and legacy codebases have more in common than you'd think. Inspired by forensic psychology methods, you can apply strategies to identify problems in your existing code, assess refactoring direction, and understand how your team influences the software architecture. With its unique blend of criminal psychology and code analysis, Your Code as a Crime Scene arms you with the techniques you need to take on any codebase, no matter what programming language you use.
Software development might well be the most challenging task humanity ever attempted. As systems scale up, they also become increasingly complex, expensive to maintain, and difficult to reason about. We can always write more tests, try to refactor, and even fire up a debugger to understand complex coding constructs. That's a great starting point, but you can do so much better.
Take inspiration from forensic psychology techniques to understand and improve existing code. Visualize codebases via a geographic profile from commit data to find development hotspots, prioritize technical debt, and uncover hidden dependencies. Get data and develop strategies to make the business case for larger refactorings. Detect and fix organizational problems from the vantage point of the software architecture to remove bottlenecks for the teams.
The original Your Code as a Crime Scene from 2014 pioneered techniques for understanding the intersection of people and code. This new edition reflects a decade of additional experience from hundreds of projects. Updated techniques, novel case studies, and extensive new material adds to the strengths of this cult classic.
Change how you view software development and join the hunt for better code!
What You Need:
You need to be comfortable reading code. You also need to use Git (or Subversion, Mercurial or similar version-control tool).
This book is aimed at everyone preparing for the ISTQB(R) Certified Tester - Foundation Level exam based on the Foundation Level syllabus (version 4.0) published in 2023. It provides candidates with reliable knowledge based on this document and thus distinguishes itself from all the information about ISTQB(R) syllabi and exams on the Internet, which is often of rather poor quality and may even contain serious errors.
The book expands and details many issues that are described in the new 2023 version of the syllabus in a perfunctory or general way only. According to the ISTQB(R) guidelines for syllabus-based training, an exercise must be provided for each learning objective at the K3 level, and a practical example must be provided for each objective at the K2 or K3 level. In order to satisfy these requirements, the authors prepared numerous exercises and examples for all learning objectives at these levels. In addition, for each learning objective, one or more sample exam questions are presented which are similar to those that the candidate will see in the exam. This makes the book an excellent aid for studying and preparing for the exam and verifying acquired knowledge.
This book is written for the test analyst who wants to achieve advanced skills in test analysis, design, and execution. With a hands-on, exercise-rich approach, this book teaches you how to define and carry out the tasks required to put a test strategy into action.
Learn how to analyze the system, taking into account the user's quality expectations. Additionally, learn how to evaluate system requirements as part of formal and informal reviews, using an understanding of the business domain to determine requirement validity. You will be able to analyze, design, implement, and execute tests, using risk considerations to determine the appropriate effort and priority for tests. You will also learn how to report on testing progress and provide necessary evidence to support your evaluations of system quality.
With a quarter-century of software and systems engineering experience, author Rex Black is President of RBCS, a leader in software, hardware, and systems testing, and is the most prolific author practicing in the field of software testing today. He published several books on testing that sold tens of thousands of copies worldwide. He is President of the International Software Testing Qualifications Board (ISTQB) and is a Director of the American Software Testing Qualifications Board (ASTQB).
This book will also help you prepare for the ISTQB Advanced Test Analyst exam. Included are sample exam questions, at the appropriate level of difficulty, for most of the learning objectives covered by the ISTQB Advanced Level syllabus. The ISTQB certification program is the leading software tester certification program in the world. With about 400,000 certificate holders and a global presence in 50 countries, you can be confident in the value and international stature that the Advanced Test Analyst certificate can offer you.
The 2nd edition has been thoroughly revised and is aligned with the curriculum. In addition, some minor corrections have been included.
Often, software engineers and architects work with large, complex code bases that they need to scale and maintain. With this cookbook, author Maximiliano Contieri takes you beyond the concept of clean code by showing you how to identify improvement opportunities and their impact on production code. When it comes to reliability and system evolution, these techniques provide benefits that pay off over time.
Using real life examples in JavaScript, PHP, Java, Python, and many other programming languages, this cookbook provides proven recipes to help you scale and maintain large systems. Every section covers fundamental concepts including readability, coupling, testability, and extensibility, as well as code smells--symptoms of a problem that requires special attention--and the recipes to address them.
As you proceed through this book, refactoring recipes and the variety of code smells increase in complexity. You will:
In today's cloud native world, where we automate as much as possible, everything is code. With this practical guide, you'll learn how Policy as Code (PaC) provides the means to manage the policies, related data, and responses to events that occur within the systems we maintain--Kubernetes, cloud security, software supply chain security, infrastructure as code, and microservices authorization, among others.
Author Jimmy Ray provides a practical approach to integrating PaC solutions into your systems, with plenty of real-world examples and important hands-on guidance. DevOps and DevSecOps engineers, Kubernetes developers, and cloud engineers will understand how to choose and then implement the most appropriate solutions.
A structured approach to integrating security capabilities into your engineering process is an essential requirement for producing secure software without compromising the integrity of the DevOps framework.
DevSecOps provides a clear path to building systems and protocols that promotes taking ownership of software security and supports the DevOps philosophy. Learn how to:
- Establish a security-first culture within your DevOps teams- Produce high-quality, secure software at pace
- Automate integrated security testing
- Use feedback loops to continuously improve the security of your products
- Measure security within your value streams
Learn how to write automated tests for Dynamics 365 Business Central and discover how you can implement them in your daily work
Key Features:
Book Description:
Dynamics 365 Business Central is a cloud-based SaaS ERP proposition from Microsoft. With development practices becoming more formal, implementing changes or new features is not as simple as it used to be back when Dynamics 365 Business Central was called Navigator, Navision Financials, or Microsoft Business Solutions-Navision, and the call for test automation is increasing.
This book will show you how to leverage the testing tools available in Dynamics 365 Business Central to perform automated testing. Starting with a quick introduction to automated testing and test-driven development (TDD), you'll get an overview of test automation in Dynamics 365 Business Central. You'll then learn how to design and build automated tests and explore methods to progress from requirements to application and testing code. Next, you'll find out how you can incorporate your own as well as Microsoft tests into your development practice. With the addition of three new chapters, this second edition covers in detail how to construct complex scenarios, write testable code, and test processes with incoming and outgoing calls.
By the end of this book, you'll be able to write your own automated tests for Microsoft Business Central.
What You Will Learn:
Who this book is for:
This book is for consultants, testers, developers, and development managers working with Microsoft Dynamics 365 Business Central. Functional as well as technical development teams will find this book on automated testing techniques useful.
Testing is a critical discipline for any organization looking to deliver high-quality software. This practical book provides software developers and QA engineers with a comprehensive one-stop guide to testing skills in 10 different categories. You'll learn appropriate strategies, concepts, and practical implementation knowledge you can apply from both a development and testing perspective for web and mobile applications.
Author Gayathri Mohan offers examples of more than 40 tools you can use immediately. You'll acquire the skills to conduct exploratory testing, test automation, cross-functional testing, data testing, mobile testing, and visual testing, as well as tests for performance, security, and accessibility. You'll learn to integrate them in continuous integration pipelines to gain faster feedback. Once you dive into this guide, you'll be able to tackle challenging development workflows with a focus on quality.
With this book, you will: