欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • 软件工程基础(影印版)(英文版)
      • 作者:(美)纳撒尼尔·舒塔//丹·维加|责编:张烨
      • 出版社:东南大学
      • ISBN:9787576629552
      • 出版日期:2026/07/01
      • 页数:379
    • 售价:63.6
  • 内容大纲

        要成为一名成功的软件工程师,你需要了解什么?本科课程和编程训练营或许会教授算法和编写代码的基础知识,但很少涉及对职业发展至关重要的主题。通过本书的实践性指导,你将掌握获得成功并持续成长所需的技能。
        作者Nathaniel Schutta与Dan Vega将引导你的学习之旅,从实用建议到对特定主题的深入剖析,帮助你掌握作为软件工程师真正重要的技能。
  • 作者介绍

  • 目录

    Preface
    1. Programmer to Engineer
      An Engineer by Any Other Name
      Fundamentals Matter
      The Many Paths to Becoming a Software Engineer
      What You Were Taught Versus What You Need to Know
      Embrace the Lazy Programmer Ethos
      The Value of a Fresh Set of Eyes
      Don't Solution Too Quickly
      Apply the Golden Rule to Software
      Wrapping Up
      Putting It into Practice
      Additional Resources
    2. Reading Code
      The Challenge of Working with Existing Code
      Cognitive Biases
      Approaching Unfamiliar Code
      Software Archeology
      Effective Code-Reading Strategies
        Leveraging IDE Features
        Reading Tests for Insight
      Practice Makes Perfect
      Wrapping Up
      Putting It into Practice
      Additional Resources
    3. Writing Code
      Don't Reinvent the Wheel
      What Is Good Code?
      Less Is More
        The Zeroth Law of Computer Science
        Beware Boilerplate Code
        Favor Composition over Inheritance
        Favor Short Methods
      Write Code to Be Read
      The Problem with Code Comments
      Tests as Documentation
      Avoid Clever Code
      Code Reviews
      Avoid the Checkbox Code Review
      It Is Hard to Be Criticized
      Fostering Trust
      Learning New Languages
      Wrapping Up
      Putting It into Practice
      Additional Resources
    4. Modeling
      What Is Software Modeling and Why Do We Do It?
      Which Diagrams Do You Need?
        Context Diagrams
        Component Diagrams

        Class Diagrams
        Sequence Diagrams
        Deployment Diagrams
        Data Models
        Additional Diagrams
      Modeling Best Practices
        Keep It Simple
        Know Your Audience
        Be Careful with Your Color Choices
        Establish Standards and Templates
      Tools
      Wrapping Up
      Putting It into Practice
      Additional Resources
    5. Automated Testing
      Benefits of Automated Testing
        Acts as Documentation
        Improves Maintainability
        Boosts Your Confidence
        Leads to Consistency and Repeatability
      Types of Automated Testing
        Unit Tests
        Integration Tests
        End-to-End Tests
      What Mix of Tests Should You Be Writing?
      What You Should Not Test
      Code Coverage
      Writing Tests
        Getting Started
        Assertions
        Writing Unit Tests
        Mocking
        Writing Integration Tests
        Writing End-to-End Tests
      Wrapping Up
      Putting It into Practice
      Additional Resources
    6. Exploring and Modifying Unfamiliar Systems
      Understanding Unfamiliar Codebases
        Start with the Big Picture
        Understand the Execution Flow
        Build Mental Models Incrementally
      A Sample Process
      Making Changes Safely
        Refactoring Safely
        The Scout Rule
        Small, Reversible Changes
      Wrapping Up
      Putting It into Practice
      Additional Resources

    7. User Interface Design
      Designing for Everyone
        What Is Usability?
        What Is Accessibility?
        What Are Localization and Internationalization?
        Know Your User
          Secondary Users
          You Are Not Your User
          Impact of Culture
        Maximizing Usability
      Principles of Design
        Contrast
        Repetition
        Alignment
        Proximity
      Applying the Principles of Design
      Make the Right Thing the Obvious Thing
      The Importance of Good Error Messages
      Destructive Actions
      Wrapping Up
      Putting It into Practice
      Additional Resources
    8. Working with Data
      Understanding Data Types and Formats
        Structured Versus Unstructured Data
        Common Data Formats
        Specialized Data Considerations
      Storing Your Data Effectively
        Database Types and Their Use Cases
        Data Persistence and Management
        Database Connections and Transactions
        Consistency Models and Caching Strategies
        Planning for Data Growth
      Querying and Managing Data Performance
        Efficient Query Writing
        Tools and Best Practices
      Data Migration and Transformation
        Understanding Data Movement Fundamentals
        Handling Schema Changes
      Wrapping Up
      Putting It into Practice
      Additional Resources
    9. Software Architecture
      What Is Architecture?
      Trade-Offs
      Architecture Versus Design
      Quality Attributes
        Identifying Quality Attributes
        Gaining Stakeholder Alignment
      Architectural Styles

      The Agile Architect
      Fitness Functions
      Architectural Diagrams
      Architectural Decision Records
      Wrapping Up
      Putting It into Practice
      Additional Resources
    10. To Production
      The Complexities of Production Environments
        Users Are Unpredictable
        "But It Works on My Machine"
      Building Production-Ready Code
        Performance Optimization
        Environment-Specific Configurations
        Error Handling and Logging
      Security Essentials
      Deployment Pipeline
        Deployment Environments
        Version Control Strategies
        Deployment Automation
        Deployment Strategies
        Continuous Integration and Continuous Deployment
      Production System Monitoring and Maintenance
        Monitoring
        System Maintenance
      Wrapping Up
      Putting It into Practice
      Additional Resources
    11. Powering Up Your Productivity
      Optimizing Your Development Environment
        Know Your Development Tools
        Build Your Own Lightsaber
        Leverage the Power of the Command Line
        Harness the Power of Keyboard Shortcuts
      Strategic Automation
      The Perpetual Pursuit of Productive Habits
        Collaborative Learning
        Personal Knowledge Management
      Wrapping It Up
      Putting It into Practice
      Additional Resources
    12. Learning to Learn
      Cramming Doesn't Work
      Skills Acquisition
      The Learning Habit
      Learning Through AI
        Fear of Missing Out
      Where Should You Invest Your Time?
      Practice Innovation
      Architectural Briefings

      Practice Grace
      Wrapping Up
      Putting It into Practice
      Additional Resources
    13. Mastering Soft Skills in the Tech World
      Collaborative Communication
        Communication Channels
        Enterprise Operator
        Know Your Audience
      Practicing Influence
        Understanding and Articulating Value
        Strategic Approaches to Influence
        Stakeholder Management
      Time Management
        Maker's Schedule
        Staying on Task
      Wrapping Up
      Putting It into Practice
      Additional Resources
    14. Career Management
      Plan Your Career Path
        Find What You're Passionate About
        Exploring Your Career Options
        Walking Backward from Your Goals
        Deliberate Skill Acquisition
        Aligning Career Choices with Life Phases
      Walking Your Career Path
        Celebrate and Record Your Wins
        Overcome Imposter Syndrome
        Build Your Professional Community
        Cultivating Your Professional Relationships
        Acing Your Next Interview
        Create Work-Life Balance
      Wrapping Up
      Putting It into Practice
      Additional Resources
    15. The AI-Powered Software Engineer
      What Is AI Really?
        Demystifying AI Terminology
      Understanding AI's Capabilities and Limitations
      AI as Your Pair Programmer
        Standalone Chatbot Assistants
        Inline IDE Assistants
        Agentic AI IDE Environments
      Prompt Engineering Fundamentals
        What Is Prompt Engineering?
        Essential Prompt Engineering Techniques
        Advanced Prompt Engineering Techniques
      How AI Might Shape Software Engineering
        Will AI Take My Job?

      Vibe Code Reviews
      AI as Your Force Multiplier: From Writing Code to Problem-Solving
      Wrapping Up
      Putting It into Practice
      Additional Resources
    Index