Fundamentals of Software Engineering

Bridge the gap between writing code and becoming a true software engineer.

Boot camps and universities teach you how to write syntactically correct programs, but being a software engineer is about far more than just coding. There's a gap between what early-career engineers are taught and what they need to know to be successful and advance in their careers.

This book bridges that gap. Whether you're a newly minted practitioner from a computer science degree, an intensive boot camp, or self-taught, this is your onboarding guide to the fundamentals that will set you up for a successful career. You'll learn the skills that separate beginners from experienced engineers—from reading and writing maintainable code, to testing and architecture, to career growth and working effectively with AI tools.

Unlike trendy frameworks or the language of the day, these fundamentals will last a lifetime. Even in the era of AI and agentic coding tools, you must have a solid grasp of the fundamentals to wield them properly and advance to more senior roles.

Fundamentals of Software Engineering book cover

Status: Coming Soon

Expected publication date: 2025

Format

Digital & Print

Pages

Approximately 370 pages

Authors

Nate Schutta & Dan Vega

Who Is This Book For?

Aspiring Software Engineers

Perfect for those starting their journey in software development who want to build a solid foundation in engineering principles and best practices.

Experienced Developers

Ideal for seasoned developers looking to formalize their knowledge, fill gaps in understanding, or refresh their understanding of core concepts.

Students & Self-Learners

Great for computer science students and self-taught programmers who want practical insights alongside theoretical knowledge.

Team Leads & Architects

Valuable for technical leads and architects who need to establish common understanding and best practices across their teams.

What You'll Learn

This book covers essential software engineering concepts with practical examples and real-world applications.

Reading & Writing Code

Master strategies for understanding existing codebases and writing maintainable, quality code that your team will thank you for.

Modeling & Testing

Learn to use diagrams and models to design systems, and build confidence through comprehensive automated testing approaches.

UI Design & Data Management

Create usable, accessible interfaces and effectively manage data types, storage, and performance in your applications.

Architecture & Production

Understand architectural trade-offs and learn how to deploy and maintain code in real production environments.

Productivity & Learning

Optimize your development workflow and discover effective strategies for continuous skill development as an engineer.

Professional Skills & AI

Master communication, collaboration, career management, and learn how to work effectively with AI tools as a modern engineer.

Table of Contents

Part 1: Core Skills

  • 1.Programmer to Engineer - Making the transition from coding to engineering thinking
  • 2.Reading Code - Strategies for understanding existing codebases
  • 3.Writing Code - Best practices for creating maintainable, quality code

Part 2: Technical Practices

  • 4.Software Modeling - Using diagrams and models to design software systems
  • 5.Automated Testing - Building confidence through different testing approaches
  • 6.Working with Existing Code - Safely navigating and changing unknown code

Part 3: Application Development and Design

  • 7.User Interface Design - Creating usable and accessible interfaces
  • 8.Working with Data - Managing data types, storage, and performance
  • 9.Software Architecture - Understanding trade-offs and architectural decisions
  • 10.To Production - Deploying and maintaining code in real environments

Part 4: Professional Development and Growth

  • 11.Powering Up Your Productivity - Optimizing your development workflow
  • 12.Learning to Learn - Effective strategies for continuous skill development
  • 13.Mastering Soft Skills in the Tech World - Communication and collaboration
  • 14.Career Management - Planning and navigating your professional path
  • 15.The AI-Powered Software Engineer - Working effectively with AI tools

Stay Updated

Want to be notified when the book is released? Sign up for my newsletter to get updates on the book's progress, exclusive previews, and valuable software engineering insights delivered to your inbox.

Stay up to date

Get notified when I publish something new, and unsubscribe at any time.