Chapter 1: Introducing generative AI
The introduction presents generative AI as a way for developers to delegate some implementation work while retaining responsibility for higher-level design.
After this chapter you will be able to
- AI as a coding partner. Explain how the author proposes using generative AI alongside a developer’s existing expertise: the tool helps with code-context-aware implementation while the developer focuses on architecture and design.
- Contextual code generation. Explain how AI-assisted generation differs from traditional autocompletion: an LLM can use surrounding code and user requirements to generate snippets or suggest the next lines of code.
- AI-assisted CSV workflow. Describe the CSV example: the developer states the desired parsing, filtering, calculation, and output in a comment; the AI generates an implementation; and the developer reviews, adjusts, and tests it.
- AI-assisted bug detection and fixes. Explain that generative AI can analyze existing code for bugs, security vulnerabilities, and performance problems, then use the code’s context to suggest fixes. Describe how this can save developers time and how trained models are refined over time.
- AI-assisted software documentation. Explain why clear, accurate documentation matters and how generative AI can help produce it and improve a developer’s understanding of their code.
- AI-assisted code refactoring. Explain how AI tools support a second look at code by analyzing it for issues and suggesting improvements, including redundant code and inefficient algorithms.
- AI-assisted tests and mock data. Explain that generative AI tools can generate test cases and mock data suited to an application, including tests that reveal cases a developer may have overlooked.
- Integrated and standalone tools. Distinguish integrated AI developer tools from standalone ones by where they operate and whether they interact with an IDE.
- Integrated and standalone tool roles. Distinguish integrated developer tools from standalone tools by where they are used and the kind of help they provide.
- Standalone Tool Characteristics. Distinguish standalone generative AI tools from IDE-integrated tools by where they operate and how users typically access them.
- ChatGPT and Gemini Capabilities. Describe the coding help and question-and-answer interaction offered by ChatGPT and Gemini, including what the section says is distinctive about ChatGPT conversations.
- Pattern learning and code prediction. Explain how a generative AI model uses examples of existing code to learn patterns and predict what new code is likely to look like.
- Developer feedback cycle. Trace the section’s five-step cycle from developer input through context analysis, prediction, feedback, and model adaptation.
- Probabilistic rather than fixed output. Distinguish generative AI’s probabilistic predictions from deterministic systems that follow fixed rules.
- LLM Training and Generation. Explain that an LLM is a neural network trained on large amounts of text, including code, to learn patterns it uses to generate responses to prompts.
- Transformer Processing Steps. Trace the section’s account of how a Transformer turns input words into numbers, tracks their positions, repeatedly examines their relationships, and produces an output.
- Attention in Coding Suggestions. Explain how attention helps a coding assistant weigh relevant parts of existing code more heavily when generating a suggestion.
- Prediction Rather Than Retrieval. Explain that an LLM generates an answer by predicting likely continuations from learned patterns, rather than looking up an answer in a library of facts.
- Confident Errors and Verification. Explain why a plausible LLM response can be confidently wrong and why developers should double-check AI-generated code or claims.
- Prediction versus stored retrieval. Distinguish a database or search engine retrieving existing information from an LLM generating new text. Describe how an LLM uses patterns and relationships in the input to predict what comes next, repeatedly using the text it has just generated.
- Consequences of probabilistic answers. Explain why the same prompt can receive different answers, why an LLM can sound confident while being wrong, and why its code and factual claims need verification.
- Patterns Learned During Training. Explain that training exposes a model to large amounts of language and code, from which it learns statistical patterns rather than independently judging what is correct.
- Flawed Data and Hallucinations. Trace how errors in training data can affect later responses: the model learns flawed patterns and may confidently generate convincing but incorrect information. Explain why these are systematic training-phase problems rather than just isolated mistakes.
- Context interpretation limits. Explain how a language model uses relationships among code and documentation to infer intent, and why its output can still be wrong for a particular use case.
- Clearer code generation requests. Describe what a developer can provide to reduce context-related mistakes in generated code.
- LLM Benefits Across Development. Explain how LLM-based tools can improve developer productivity and software quality, giving examples of assistance beyond writing code.
- Generative AI and code completion. Distinguish generative AI tools from traditional code completion tools such as IntelliSense: both aim to make developers more productive, but generative AI is more prescriptive.
- Creation from learned patterns. Explain that generative AI learns patterns and relationships from existing data to create new content, rather than focusing on analyzing and processing data as traditional AI systems do. Illustrate the idea with the section’s image-generation example.
- Routine coding assistance. Explain how AI code suggestions and documentation generation can save developers time while supporting code quality and maintenance.
- AI generated test cases. Explain what generative AI contributes to testing and why the section says it improves software reliability.
- Benefits of verified AI assistance. Explain how AI assistance can improve a software development workflow and why its output still needs verification.
- Planning prompts for AI. Describe how to start an ideation conversation by stating the application you want to build in plain English. Explain that you can ask for technology options or name a preferred stack and ask how to get started.
- Project outlines before coding. Explain how a conversational AI response can help turn an application idea into a high-level outline and an initial set of planning documents before coding begins.
- Code assistance and scaffolding. Distinguish integrated tools that offer code completions and suggestions from external tools that can scaffold an application. Explain that scaffolding generates a starting structure of code, files, and directories for a developer to complete.
- Generated code review caution. Explain why generated code should not be pasted into a product without understanding it, even when it looks thorough and functional.
- Performance-focused code review. Describe how to give an external AI tool source code and ask it to identify performance bottlenecks and suggest improvements, even when it has little context about how the code will be used.
- Security-focused code review. Describe how to ask an external AI tool to check code for security issues and what kind of feedback the section says it may provide.
- AI-assisted test generation. Describe how AI assistance can generate test cases and help identify where software might fail, using either integrated tools or chat-based tools for unit tests.
- Error-guided debugging assistance. Explain how supplying code and an error message to a chat-based AI tool can produce suggestions about where to look or what information to display while debugging, without treating its responses as perfect.
- AI documentation tool uses. Distinguish how integrated IDE tools and ChatGPT can help with documentation: Tabnine can autocomplete code and API documentation, while ChatGPT can draft a new document from supplied methods or classes.
- Human review of AI drafts. Explain why AI-generated documentation should be treated as guidance rather than finished text: it may be dry or inaccurate, so a developer should add a human touch and review it thoroughly.
- Training data quality. Explain why a coding tool’s training data matters and how to investigate it when choosing a tool.
- Solo workflow compatibility. Describe how a solo developer should evaluate AI tools against existing IDE configurations, personal coding style, and domain-specific knowledge.
- Team integration safeguards. Describe the team-level conventions and concerns to address when adding AI tools to a development workflow.
- AI-generated code quality assurance. Explain why AI-generated code still needs to be understood, reviewed, and tested against an organization’s quality standards, and why developers should be transparent about using AI tools.
- Evaluating evolving AI tools. Explain why developers should follow advances in AI tools while judging whether a tool or feature is useful rather than merely trendy, and whether its long-term benefits justify the effort of learning and relearning it.
- Shift toward system design. Explain how AI tools affect the shift from writing code to thinking about system design and architecture, and why adapting to that shift matters for developers and teams.
- Changing Developer Roles. Explain why the author takes concerns about job loss seriously without concluding that software developers will disappear overnight. Describe AI as a way to augment developers’ skills and workflows.
- Automation And Human Problem Solving. Distinguish the repetitive work AI can help produce from the creative problem solving that still calls for developers.
- Human Oversight And Responsibility. Explain why developers must check AI output and retain responsibility for critical decisions, ethical use, and users’ needs.
Section by section
Introduction
The introduction presents generative AI as a way for developers to delegate some implementation work while retaining responsibility for higher-level design.
- AI as a coding partner: Explain how the author proposes using generative AI alongside a developer’s existing expertise: the tool helps with code-context-aware implementation while the developer focuses on architecture and design.
Why it matters: This is the working relationship between developer and AI that motivates the book.
Key terms: generative AI tools, code context, implementation details, architecture and design
1.1 Generative AI for coders
Introduces the range of development tasks where generative AI may assist coders, ahead of the detailed sections that follow.
1.1.1 Code generation and autocompletion
This section explains how AI-assisted code generation uses context and developer instructions to speed up coding, while leaving developers responsible for reviewing and testing the result.
- Contextual code generation: Explain how AI-assisted generation differs from traditional autocompletion: an LLM can use surrounding code and user requirements to generate snippets or suggest the next lines of code.
Why it matters: It explains why these tools can help with more than finishing a line of code. - AI-assisted CSV workflow: Describe the CSV example: the developer states the desired parsing, filtering, calculation, and output in a comment; the AI generates an implementation; and the developer reviews, adjusts, and tests it.
Why it matters: The example shows both the time-saving opportunity and the developer’s continuing role in checking generated code.
Key terms: autocompletion, smart autocompletion, code generation, large language models (LLMs), context, AI-assisted approach, CSV file, review, test
1.1.2 Bug detection and automated fixes
This subsection explains how generative AI can find problems in existing code and suggest fixes.
- AI-assisted bug detection and fixes: Explain that generative AI can analyze existing code for bugs, security vulnerabilities, and performance problems, then use the code’s context to suggest fixes. Describe how this can save developers time and how trained models are refined over time.
Why it matters: It shows how AI assistance can help you spot and address code problems more quickly.
Key terms: bug detection, security vulnerabilities, performance problems, context, trained models, appropriate fixes
1.1.3 Documentation generation
This section explains why documentation matters and how generative AI can help write it and clarify code.
- AI-assisted software documentation: Explain why clear, accurate documentation matters and how generative AI can help produce it and improve a developer’s understanding of their code.
Why it matters: AI can ease a tedious writing task while making software easier for others—and its developer—to understand.
Key terms: documentation, generative AI, contextually relevant explanations
1.1.4 Code refactoring and optimization
AI tools can help developers review and refactor code by identifying problems and suggesting improvements.
- AI-assisted code refactoring: Explain how AI tools support a second look at code by analyzing it for issues and suggesting improvements, including redundant code and inefficient algorithms.
Why it matters: It shows how AI can help you improve code you have already written.
Key terms: refactoring, optimization, redundant code, inefficient algorithms
1.1.5 Test case generation and mock data creation
This subsection explains how generative AI can help developers create test cases and tailored mock data.
- AI-assisted tests and mock data: Explain that generative AI tools can generate test cases and mock data suited to an application, including tests that reveal cases a developer may have overlooked.
Why it matters: AI can help you test beyond the cases you think of yourself.
Key terms: test cases, mock data, generative AI tools
1.2 Developer tools landscape
This section introduces what AI developer tools do and distinguishes tools integrated into an IDE from standalone tools.
- Integrated and standalone tools: Distinguish integrated AI developer tools from standalone ones by where they operate and whether they interact with an IDE.
Why it matters: This distinction helps you recognize the two kinds of developer tools the chapter discusses. - AI developer tool functions: Describe the uses of LLMs in AI developer tools named in this section.
Why it matters: These examples establish what the tools are meant to help developers do.
Key terms: Integrated tools, Standalone tools, integrated development environment (IDE), LLMs, generate code, provide suggestions, automate tasks
1.2.1 Integrated developer tools
This section distinguishes integrated coding assistants from general-purpose standalone tools and introduces three integrated assistants used in the book.
- Integrated and standalone tool roles: Distinguish integrated developer tools from standalone tools by where they are used and the kind of help they provide.
Why it matters: This distinction helps you choose between help inside your code and broader design assistance. - Integrated assistant differences: Describe the coding assistance offered by GitHub Copilot, Tabnine, and Blackbox AI, including a distinguishing capability of each.
Why it matters: These examples show that integrated assistants share a coding focus without offering identical ways to work.
Key terms: integrated tools, standalone tools, context, GitHub Copilot, Tabnine, Blackbox AI, code suggestions
1.2.2 Standalone tools
This section describes standalone AI coding tools and compares how developers interact with ChatGPT, Google Gemini, and Copilot Chat.
- Standalone Tool Characteristics: Distinguish standalone generative AI tools from IDE-integrated tools by where they operate and how users typically access them.
Why it matters: This distinction helps you recognize whether an AI assistant is part of your editor or a separate tool. - ChatGPT and Gemini Capabilities: Describe the coding help and question-and-answer interaction offered by ChatGPT and Gemini, including what the section says is distinctive about ChatGPT conversations.
Why it matters: These interaction options affect how you can use a standalone assistant during development. - Copilot Chat Differences: Describe how Copilot Chat resembles the other standalone tools and identify the interaction differences highlighted here.
Why it matters: Copilot Chat shares the familiar chat format but offers different ways to use it.
Key terms: standalone tools, integrated development environments (IDEs), web interface, ChatGPT, Google Gemini, threads, CLI, API, Copilot Chat, agent mode
1.3 How does generative AI work?
Explains how generative coding tools learn patterns from examples, predict code from a developer’s context, and use feedback to improve suggestions.
- Pattern learning and code prediction: Explain how a generative AI model uses examples of existing code to learn patterns and predict what new code is likely to look like.
Why it matters: This explains why an AI coding suggestion can look plausible without being guaranteed correct. - Developer feedback cycle: Trace the section’s five-step cycle from developer input through context analysis, prediction, feedback, and model adaptation.
Why it matters: Your input and response are part of the process, not just the code the tool produces. - Probabilistic rather than fixed output: Distinguish generative AI’s probabilistic predictions from deterministic systems that follow fixed rules.
Why it matters: Variation is an intentional feature of generated output, not evidence that the tool follows a fixed lookup rule.
Key terms: training data, model, patterns, prediction, developer input, context analysis, developer feedback, model adaptation, probabilistic, deterministic
1.4 What is an LLM, and why should I care?
This section explains what an LLM is, how Transformers process text and code, and why attention helps coding assistants make relevant suggestions.
- LLM Training and Generation: Explain that an LLM is a neural network trained on large amounts of text, including code, to learn patterns it uses to generate responses to prompts.
Why it matters: This explains why a coding assistant can respond to both natural-language requests and code. - Transformer Processing Steps: Trace the section’s account of how a Transformer turns input words into numbers, tracks their positions, repeatedly examines their relationships, and produces an output.
Why it matters: These steps show how input context contributes to a model’s output. - Attention in Coding Suggestions: Explain how attention helps a coding assistant weigh relevant parts of existing code more heavily when generating a suggestion.
Why it matters: Attention helps explain why an assistant’s suggestions can fit the code at hand rather than remain generic. - Output Adjustment Parameters: State what temperature and top k affect when developers adjust an LLM’s output.
Why it matters: These terms name two ways developers can tailor generated output.
Key terms: large language model, neural network, training, prompt, Transformer, word order, context, self-attention, attention mechanisms, codebase
1.5 Why do these tools sometimes get it wrong?
This section explains why coding LLMs can give confident but incorrect answers and why developers should check their output.
- Prediction Rather Than Retrieval: Explain that an LLM generates an answer by predicting likely continuations from learned patterns, rather than looking up an answer in a library of facts.
Why it matters: Thinking of an LLM as a predictor rather than a reference library helps explain why a fluent answer may still be wrong. - Confident Errors and Verification: Explain why a plausible LLM response can be confidently wrong and why developers should double-check AI-generated code or claims.
Why it matters: Checking plausible output helps prevent confident AI mistakes from becoming mistakes in your code.
Key terms: LLMs, prompt, learned patterns, prediction, hallucinating, statistical likelihood, skeptical, double-check
1.5.1 How LLMs differ from databases
This section explains why LLMs generate answers rather than retrieve stored ones, and why their output needs verification.
- Prediction versus stored retrieval: Distinguish a database or search engine retrieving existing information from an LLM generating new text. Describe how an LLM uses patterns and relationships in the input to predict what comes next, repeatedly using the text it has just generated.
Why it matters: This distinction helps explain why an LLM answer should not be treated like a database record. - Consequences of probabilistic answers: Explain why the same prompt can receive different answers, why an LLM can sound confident while being wrong, and why its code and factual claims need verification.
Why it matters: It helps you use generated code and explanations without mistaking a confident answer for a verified one.
Key terms: LLM, traditional databases, statistical patterns, probabilities, text prediction, probabilistic nature, verify, confidently incorrect
1.5.2 Training phase problems
This section explains how flawed training data can lead an AI model to produce convincing but incorrect code, making developer verification essential.
- Patterns Learned During Training: Explain that training exposes a model to large amounts of language and code, from which it learns statistical patterns rather than independently judging what is correct.
Why it matters: It explains why a model can learn a bad coding pattern as readily as a good one. - Flawed Data and Hallucinations: Trace how errors in training data can affect later responses: the model learns flawed patterns and may confidently generate convincing but incorrect information. Explain why these are systematic training-phase problems rather than just isolated mistakes.
Why it matters: A confident, plausible response is not evidence that its code or claims are correct. - Python Output Verification: Describe examples of flawed patterns in AI-generated Python code and explain why a developer should check suggestions against best practices and project standards rather than trust their appearance or the model’s confidence.
Why it matters: Your review can catch problems that plausible-looking generated code conceals.
Key terms: training, statistical patterns, training data, probability calculations, hallucinations, training biases, Python best practices, architectural standards, human oversight
1.5.3 Misinterpreting context
This section explains why AI code generation can misread context and how developers can make their requests clearer.
- Context interpretation limits: Explain how a language model uses relationships among code and documentation to infer intent, and why its output can still be wrong for a particular use case.
Why it matters: Code that runs or looks plausible may still be wrong for your project. - Clearer code generation requests: Describe what a developer can provide to reduce context-related mistakes in generated code.
Why it matters: Giving the model the relevant requirements and code makes its output more likely to fit your task.
Key terms: context, domain knowledge, coding standards, architectural patterns, specifications and constraints, code context, error handling requirements, expected inputs and outputs
1.6 The potential of LLMs
This section argues that LLM-based development tools can help developers produce better software faster across many parts of their work.
- LLM Benefits Across Development: Explain how LLM-based tools can improve developer productivity and software quality, giving examples of assistance beyond writing code.
Why it matters: The benefit is not just faster code entry; these tools can support work throughout development.
Key terms: LLMs, development tools, productivity, software quality
1.7 Generative AI vs. code completion
The section distinguishes generative AI from traditional code completion while noting their shared aim of improving developer productivity.
- Generative AI and code completion: Distinguish generative AI tools from traditional code completion tools such as IntelliSense: both aim to make developers more productive, but generative AI is more prescriptive.
Why it matters: This distinction helps you avoid treating generative AI as merely a renamed autocomplete tool.
Key terms: generative AI, code completion, IntelliSense, prescriptive
1.7.1 Other types of generative AI
This section explains how generative AI creates content from patterns learned in existing data, illustrates image generation, and notes that different media have reached different levels of maturity.
- Creation from learned patterns: Explain that generative AI learns patterns and relationships from existing data to create new content, rather than focusing on analyzing and processing data as traditional AI systems do. Illustrate the idea with the section’s image-generation example.
Why it matters: This distinction explains why an AI tool can produce a new image or other content rather than merely examine existing material. - Generated media and maturity: Describe the kinds of content generative AI can produce and the section’s comparison of how mature those fields are.
Why it matters: It helps set realistic expectations for what different kinds of generative AI can produce.
Key terms: generative AI, traditional AI systems, patterns and relationships, training, text, images, videos, music, voice generation, maturity
1.7.2 Why coders care about generative AI
This section explains how generative AI can help coders work faster through code suggestions, tests, documentation, and natural-language interaction.
- Routine coding assistance: Explain how AI code suggestions and documentation generation can save developers time while supporting code quality and maintenance.
Why it matters: These uses show how AI can take on routine work without replacing the developer’s judgment. - AI generated test cases: Explain what generative AI contributes to testing and why the section says it improves software reliability.
Why it matters: Test generation is valuable because broader testing can expose problems sooner. - Natural language tool interaction: Describe the language capability of AI chatbots and why it matters when using coding tools.
Why it matters: Coding assistants are easier to use when you can communicate what you want in natural language. - Vibe coding use cases: Distinguish vibe coding from the book’s structured AI-assisted development focus and describe where the section says it fits.
Why it matters: This distinction helps you choose between quick experimentation and a more structured development approach.
Key terms: code completion and suggestion, documentation generation, automated testing, test cases, edge cases, natural language processing, chatbots, prompts, vibe coding, rapid prototyping
1.8 Project workflow with AI assistance
This section explains that AI assistance can make software development faster and improve quality when developers verify its output.
- Benefits of verified AI assistance: Explain how AI assistance can improve a software development workflow and why its output still needs verification.
Why it matters: The potential time savings and quality gains depend on checking AI-generated output rather than accepting it uncritically.
Key terms: AI assistance, verify the output, productivity, repetitive tasks
1.8.1 Ideation and planning
This section shows how to use a chat-based AI tool to explore a project idea, sketch a high-level plan, and begin planning documents before coding.
- Planning prompts for AI: Describe how to start an ideation conversation by stating the application you want to build in plain English. Explain that you can ask for technology options or name a preferred stack and ask how to get started.
Why it matters: You can begin exploring a project without having settled every technical choice. - Project outlines before coding: Explain how a conversational AI response can help turn an application idea into a high-level outline and an initial set of planning documents before coding begins.
Why it matters: An early outline and written requirements give the project direction before implementation.
Key terms: chat-based, plain English, prompts, tech stack, outline, project proposal, feature descriptions, application requirements, high-level objectives
1.8.2 Code generation and assistance
This section explains how AI tools can assist while coding, especially by scaffolding an application, and cautions against using generated code without understanding it.
- Code assistance and scaffolding: Distinguish integrated tools that offer code completions and suggestions from external tools that can scaffold an application. Explain that scaffolding generates a starting structure of code, files, and directories for a developer to complete.
Why it matters: It helps you choose between assistance as you write code and a generated starting structure. - Generated code review caution: Explain why generated code should not be pasted into a product without understanding it, even when it looks thorough and functional.
Why it matters: Working output alone is not enough to establish that generated code is suitable for your product.
Key terms: integrated developer tools, scaffolding, code completions, suggestions, code generated, functional, optimal, dangerous
1.8.3 Code review and analysis
This section shows how to ask external AI tools to review code for performance and security issues and use their feedback to improve it.
- Performance-focused code review: Describe how to give an external AI tool source code and ask it to identify performance bottlenecks and suggest improvements, even when it has little context about how the code will be used.
Why it matters: A focused review request can reveal improvements you might not have spotted yourself. - Security-focused code review: Describe how to ask an external AI tool to check code for security issues and what kind of feedback the section says it may provide.
Why it matters: Security suggestions can improve both the code and the way you approach future reviews.
Key terms: code review, performance, bottlenecks, Gemini, security issues, vulnerabilities, security-focused mindset
1.8.4 Testing and debugging
This section explains how AI tools can help generate tests and suggest ways to investigate errors during testing and debugging.
- AI-assisted test generation: Describe how AI assistance can generate test cases and help identify where software might fail, using either integrated tools or chat-based tools for unit tests.
Why it matters: Generated tests can give you a starting point for checking your software. - Error-guided debugging assistance: Explain how supplying code and an error message to a chat-based AI tool can produce suggestions about where to look or what information to display while debugging, without treating its responses as perfect.
Why it matters: AI suggestions can help you investigate a tricky error faster, while still requiring your judgment.
Key terms: test cases, unit tests, integrated tools, debugging, error message, display information
1.8.5 Documentation and content generation
This section explains how AI tools can draft software documentation and why developers should revise and verify the output.
- AI documentation tool uses: Distinguish how integrated IDE tools and ChatGPT can help with documentation: Tabnine can autocomplete code and API documentation, while ChatGPT can draft a new document from supplied methods or classes.
Why it matters: Choosing a tool that fits the writing task can save effort when documenting code. - Human review of AI drafts: Explain why AI-generated documentation should be treated as guidance rather than finished text: it may be dry or inaccurate, so a developer should add a human touch and review it thoroughly.
Why it matters: A quick draft saves time only if the final documentation is readable and correct.
Key terms: integrated IDE tools, Tabnine, ChatGPT, API documentation, code documentation, human touch, accuracy problems, review
1.9 Choosing the right generative AI tools
Introduces considerations for using generative AI tools that apply to individual contributors and organizational leaders alike.
1.9.1 Data quality and availability
This subsection explains how training-data quality, source, and licensing affect the choice of a generative AI coding tool.
- Training data quality: Explain why a coding tool’s training data matters and how to investigate it when choosing a tool.
Why it matters: Checking where a tool’s training data comes from gives you a basis for choosing it, even though you cannot change that data. - Open and proprietary sources: Describe the choice between open source and proprietary code in a tool’s training corpus.
Why it matters: The sources a tool trains on may matter differently depending on what you value in its output. - Training code licensing risks: Explain the licensing concern raised by training on licensed software.
Why it matters: A tool’s training sources can raise questions beyond the quality of its output.
Key terms: corpus, data used for training, open source software, proprietary software, licensed software, legal and copyright matters
1.9.2 Integration with development workflows
This section explains how solo developers and teams can fit AI tools into established coding workflows while accounting for different learning curves.
- Solo workflow compatibility: Describe how a solo developer should evaluate AI tools against existing IDE configurations, personal coding style, and domain-specific knowledge.
Why it matters: A tool is more useful when its suggestions fit how you already work and can be checked against what you know. - Team integration safeguards: Describe the team-level conventions and concerns to address when adding AI tools to a development workflow.
Why it matters: Shared conventions make AI-assisted work easier to review, maintain, and use responsibly across a team. - Tool learning curve: Distinguish the learning time suggested for simple code completion from that for advanced capabilities, and explain the integration aim.
Why it matters: Allowing for the learning curve helps set realistic expectations when adopting a tool.
Key terms: IDE extensions and configurations, AI-generated code, personal coding style, domain-specific knowledge, team conventions, AI assistance, code review processes and standards, proprietary code, consistent access, learning curve
1.9.3 Quality assurance
This section explains why AI-generated code needs the same quality assurance as human-written code, even when AI speeds up development.
- AI-generated code quality assurance: Explain why AI-generated code still needs to be understood, reviewed, and tested against an organization’s quality standards, and why developers should be transparent about using AI tools.
Why it matters: Faster code generation does not remove your responsibility for the code’s quality.
Key terms: AI-generated code, code review, QA testing, quality standards
1.9.4 Keeping up with evolving tools
This section explains how to keep up with rapidly changing AI tools without adopting every new feature.
- Evaluating evolving AI tools: Explain why developers should follow advances in AI tools while judging whether a tool or feature is useful rather than merely trendy, and whether its long-term benefits justify the effort of learning and relearning it.
Why it matters: This helps you spend learning time on changes that are likely to pay off.
Key terms: latest advancements, new techniques, long-term benefits, churn
1.9.5 Shift in focus
AI tools accelerate a developer’s shift from day-to-day coding toward system design and architecture, raising the question of how quickly developers and teams can adapt.
- Shift toward system design: Explain how AI tools affect the shift from writing code to thinking about system design and architecture, and why adapting to that shift matters for developers and teams.
Why it matters: AI tools may change where you and your team spend your attention, not just how quickly you write code.
Key terms: writing code, designing systems and architecture, AI tools
1.10 Don’t fear the rise of AI
The section argues that generative AI will change developers’ work but is most useful as an assistant whose output still needs human judgment.
- Changing Developer Roles: Explain why the author takes concerns about job loss seriously without concluding that software developers will disappear overnight. Describe AI as a way to augment developers’ skills and workflows.
Why it matters: This framing helps you prepare for changing work without treating AI as either harmless or an inevitable replacement. - Automation And Human Problem Solving: Distinguish the repetitive work AI can help produce from the creative problem solving that still calls for developers.
Why it matters: Knowing which work to delegate helps you use AI without giving up the parts of development that need your expertise. - Human Oversight And Responsibility: Explain why developers must check AI output and retain responsibility for critical decisions, ethical use, and users’ needs.
Why it matters: AI assistance is most valuable when a developer can judge whether its output fits the task, the users, and responsible practice.
Key terms: generative AI, augment, boilerplate code, repetitive code, problem solving, context, gut-check, ethical and moral considerations, human touch
1.11 Go forth and code!
The section previews the book’s hands-on project, upcoming AI techniques, and intended learning outcomes.
1.12 Summary
Where this is used later
- A simple Python project (chapter 2) · The simple Python project puts AI-assisted coding into practice.
- Creating a session and our first bug (chapter 6) · The section’s first bug provides a later setting for AI-assisted problem finding and fixes.
- Refactoring our Questions class (chapter 5) · Applies AI-assisted improvement to refactoring the Questions class.
- Writing unit tests with generative AI (chapter 8) · Applies the idea of using generative AI to write tests.
- What is GitHub Copilot? (chapter 2) · Introduces GitHub Copilot in greater depth.
- Application development with generative AI tools (chapter 5) · Applies generative AI tools during application development.
- (chapter intro) (chapter 6) · Introduces backend work with Tabnine.
- Getting to know ChatGPT (chapter 3) · Introduces ChatGPT as a tool used for software design work.
Concepts explained in this chapter
- generative modelingArtificial intelligence that produces new content, such as text, source code, documentation, or tests, from learned patterns and input instructions.
- language modelA large language model is a neural language model trained on extensive data to understand and generate language, including programming-language text.
- code generationCode generation is the automated production of source code from natural-language instructions, existing code, or other structured input.
- autocompleteA programming assistance feature that suggests code according to predefined rules or patterns rather than generative prediction.
- promptA prompt is natural-language input that instructs a generative artificial-intelligence system what response or result to produce.
- probability theoryA numerical measure expressing the likelihood of a possible outcome.
- ChatGPTChatGPT is a conversational generative-artificial-intelligence service that generates text and code in response to user prompts.
- training datasetTraining data is the collection of examples analyzed by a machine-learning model during training.
- GitHub CopilotCopilot Chat is a conversational generative AI tool that answers questions and assists with software-related tasks across web, desktop, and mobile interfaces.
- databaseA database is a system that stores organized information and retrieves records matching explicit queries.
- hallucinationAn AI-generated output that is fluent or confident but factually incorrect, nonsensical, or unsupported.
- attentionAn attention mechanism computes the relevance of elements in an input sequence so a model can emphasize information important to the current computation.
- transformer architectureA Transformer is a neural-network architecture that processes sequence elements using attention and can process them in parallel.
- pattern predictionA technique for generating language by estimating the most probable subsequent word or character from preceding context.
- continuous improvementIterative evaluation is the repeated assessment of generated results followed by changes intended to improve their quality or accuracy.
- feedbackUser feedback is information, opinions, or evaluations provided by users about a product, service, or interaction.
- probabilistic systemA system whose outputs are governed by probability and may vary for the same input.
- AI assistanceA conversational programming approach in which developers guide an AI system with natural-language requests instead of detailed specifications.
- TabnineTabnine is an AI-powered programming assistant that provides context-aware code suggestions in supported code editors.
- testA test case is a defined input, execution condition, and expected result used to evaluate software behavior.
- FlaskFlask is a lightweight Python web framework for building web applications and HTTP services.
- technology stackA tech stack is the set of technologies selected to build and operate a software application.
- Blackbox AIBlackbox AI is an AI-powered software development assistant that provides code generation, code assistance, and related programming support.
- context-aware coding assistanceProgramming assistance that incorporates the surrounding code, project information, and current editing context when generating or suggesting results.
- documentation generationDocumentation generation is the automatic production of software documentation from source code, comments, or related project information.
- natural language processingNatural language processing is the computational analysis and generation of human language, including interpreting text and producing meaningful language-related outputs.
- contextContext is the surrounding conversation history, instructions, assumptions, and other information that determines the meaning and intent of an input.
- scaffoldApplication scaffolding is the automated generation of a basic application structure, including starter code, files, and directories.
- debuggingDebugging is the process of locating, diagnosing, and correcting defects in software.
- test generationTest generation is the automated or semi-automated creation of software tests and their test data or expected outcomes.
- refactoringCode refactoring is the restructuring of existing source code to improve its internal organization without changing its externally observable behavior.
- evaluation suiteA collection of software tests maintained and executed together to evaluate an application or component.
- PythonPython is a general-purpose, dynamically typed programming language commonly used for application development, automation, and data science.
- validationValidation is the checking of input or application state against expected rules and constraints.
- context managementContext management is the deliberate organization of codebase information and prompts so an AI system receives relevant context for producing useful outputs.
- prompt engineeringPrompt engineering is the systematic design and refinement of instructions and context provided to an AI system to elicit desired outputs.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
