Share E-Book
Scan to open this page

Scan with your phone to open this page

Author: Nico Loubser

Explore modern software engineering from design to deployment and everything in-between. This field guide is your ultimate reference to designing, building and deploying modern software applications in the tech industry today. Split into four parts, the book takes you through the stages of the software lifecycle, introducing you to aspects such as the command line interface, containerisation, design and practices before taking you through the major components of software system design, patterns, tools and best practices, before embarking on software deployment and all of the major areas of testing and security. You will also look at how the role of AI influences and impacts our approach to software engineering during different stages of development. The Developer's Field Guide to Modern Software Engineering is made up of 17, self-contained chapters for easy reference for those just starting their developer careers as well as those more experienced, who are looking for a quick refresher on a particular topic or issue. What You Will Learn Review the major components of modern software engineering Explore major topics in a real-life context Troubleshoot potentional problems See how AI is impacting software at different stages of the lifecycle Who This Book Is For Developers, engineers, and product managers who are involved in the design and deployment of software applications. Also, for those just starting out, looking for a starting point, as well as those more experienced looking for a quick and easy refresher on a particular topic.

AI Reading Assistant

Whole-book reading guide from stratified index samples; jump to passages in the text

AI guide
# The Developer's Field Guide to Modern Software Engineering 【One-Line Pitch】 A practical, end-to-end reference for modern software development—from containers and command line fundamentals through system design, coding principles, and deployment—with candid guidance on where AI fits (and doesn't) in an engineer's daily work. Ideal for early-career developers building foundational skills and experienced engineers wanting a structured refresher on specific topics. 【Book Arc】 - **Opening (~0%–10%)**: Introduces the book's four-part structure (design, build, deploy, test/secure) and immediately dives into hands-on containerization with Docker—building images, managing dependencies, and understanding bind mounts versus named volumes through a working Python/MySQL example project. - **Early (~10%–24%)**: Covers command line essentials as the developer's daily toolkit—file operations, process management, path conventions, and the universal `command [flags] [parameters]` pattern—plus practical tips for working safely in terminal environments. - **Early–Middle (~24%–41%)**: Shifts to programming fundamentals and language selection, using Python to demonstrate core constructs (variables, lists, dictionaries, tuples, error handling), then tackles the AI-in-coding debate head-on: what AI changes, what it doesn't, and why understanding code you generate still matters. - **Middle (~41%–52%)**: Explores the software development lifecycle in practice—comparing Waterfall, Agile, and the hybrid approaches most teams actually use—along with stand-ups, work estimation, and adapting process to project context rather than dogma. - **Middle–Late (~52%–end)**: Moves into system design patterns (creational, structural, behavioral), dependency management (DI/IoC), coding principles including Object Calisthenics, and the role of AI in maintaining code quality, consistency, and governance across teams—closing with deployment, testing, and security concerns. 【Key Takeaways】 - **Containers are a development workflow, not just a deployment artifact** (Opening): Dockerfiles, bind mounts for live code syncing, and named volumes for isolated data storage each serve distinct purposes—knowing which to use when prevents both security issues and development friction. - **The command line follows predictable patterns you can learn once and reuse everywhere** (Early): Most tools share the `command [flags] [parameters]` structure, `--help` is your universal fallback, and understanding `/` versus `./` prevents catastrophic mistakes—especially with irreversible commands like `rm`. - **Programming complexity lives in the problem, not the syntax** (Early): Language choice should follow the problem domain, and mastering basic constructs—control structures, variables, collections, error handling—is sufficient to start building real applications immediately. - **AI tools save time on boilerplate but don't replace engineering judgment** (Early–Middle): Complex logic requires complex prompts and careful review, so the time savings shrink as problem difficulty grows; the enduring value is in system design, architecture, and strategic thinking. - **Engineers should shift from memorizing syntax to orchestrating AI workflows** (Middle): Skills like designing agent-based processes, integrating AI into IDEs and pipelines, and building RAG-based knowledge systems matter more than chasing frameworks or manual CI/CD tasks. - **Pure Waterfall and pure Agile are both rare in practice—hybrids win** (Middle): Real teams blend structure and flexibility based on project context, regulatory constraints, and risk tolerance; the goal is a process that fits your business, not one that matches a textbook. - **Stand-ups are about early problem detection, not ritual** (Middle): Frequent communication—formal or informal—exists to flag delivery risks early; estimation and stakeholder updates matter regardless of which SDLC methodology you follow. 【Reading Tips】 - **Skim Chapters 1–2 if you're already comfortable with Docker and the terminal**—the container examples and command reference are valuable but introductory; focus instead on the bind mount versus named volume distinctions if you've hit those issues in practice. - **Deep-read Chapter 4 (AI's Role in Coding) even if you're experienced**—it addresses the career questions most engineers are currently wrestling with and includes practical guidance on skills needed for AI-augmented development. - **Treat the Python primer (Chapter 3) as a quick refresher, not a tutorial**—the code samples with books and database operations demonstrate patterns you can adapt, but the real value is the "write small applications" advice that follows. - **Pay attention to the SDLC discussion around the 45–52% mark**—the comparison of Waterfall, Agile, and hybrid approaches includes concrete guidance on when each makes sense, which is directly applicable to process decisions at work. - **Use the self-contained chapter structure to jump directly to topics you need**—the book is explicitly designed as a field guide, so don't feel obligated to read linearly if you're looking for a specific pattern, principle, or practice. 【Coverage Limits】 Excerpts cover roughly the first half of the book (through SDLC and estimation); later sections on design patterns, coding principles, deployment, testing, and security are visible in the table of contents but not detailed in the source material provided.
Excerpt 1
Goal of This Chapter 39 Programming Language Selection 39 Basic Programming Concepts 40 Python 41 Next Steps 48 Summary 48 Chapter 4: AI’s Role in Coding 49...
View in text
Excerpt 2
his directory, you will have • An empty .dockerignore file. • A Dockerfile, containing the content of Listing 1-1. • A requirements.txt file, containing the...
View in text
Excerpt 3
we will look at AI’s role in coding and the importance of understanding writing code before (and after) you have generated it. Why do I believe this chapter...
View in text
Excerpt 4
evelopment, engineers need new skills: working effectively with AI co-developers, designing agent-based workflows, and integrating AI tools directly into IDE...
View in text
Excerpt 5
65500 characters if you use LATIN1 as encoding (1 byte per character), and it goes down to 16300 if you use UTF8MB. Anything larger, and you need to use TEXT...
View in text
Excerpt 6
By understanding how GROUP BY and aggregate functions are implemented under the hood, developers can write more efficient queries and design databases that e...
View in text
Excerpt 7
ain, general class. It has three attributes and one method: +CookingTime: int means the cooking time is a public integer value that defines how long it takes...
View in text
Excerpt 8
ly. Stick to UML or Crow’s foot notation and be consistent. In my experience, many engineers prefer UML notation, as crow’s foot notation is rather intuitive...
View in text
Tags
AI categories
SoftwareTechnologyProgramming
ISBN: 8868821567
Publisher: Apress
Publish Year: 2026
Language: English
Pages: 271
File Format: PDF
File Size: 7.8 MB
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

Generating text preview…