reklama - zainteresowany?

Fundamentals of Software Engineering. From Coder to Engineer - Helion

Fundamentals of Software Engineering. From Coder to Engineer
ebook
Autor: Nathaniel Schutta, Dan Vega
ISBN: 9781098143190
stron: 392, Format: ebook
Data wydania: 2025-10-30
Księgarnia: Helion

Cena książki: 177,65 zł (poprzednio: 216,65 zł)
Oszczędzasz: 18% (-39,00 zł)

Dodaj do koszyka Fundamentals of Software Engineering. From Coder to Engineer

What do you need to know to be a successful software engineer? Undergraduate curricula and bootcamps may teach the fundamentals of algorithms and writing code, but they rarely cover topics vital to your career advancement. With this practical book, you'll learn the skills you need to succeed and thrive.

Authors Nathaniel Schutta and Dan Vega guide your journey with everything from pointers to deep dives into specific topic areas that will help you build the skills that really matter as a software engineer.

  • Understand what software engineering is—and why communication and other soft skills matter
  • Learn the basics of software architecture and architectural drivers
  • Use common and proven techniques to read and refactor code bases
  • Understand the importance of testing and how to implement an effective test suite
  • Learn how to reliably and repeatedly deploy software
  • Know how to evaluate and choose the right solution or tool for a given problem

Dodaj do koszyka Fundamentals of Software Engineering. From Coder to Engineer

 

Osoby które kupowały "Fundamentals of Software Engineering. From Coder to Engineer", wybierały także:

  • Jak zhakowa
  • Biologika Sukcesji Pokoleniowej. Sezon 3. Konflikty na terytorium
  • Windows Media Center. Domowe centrum rozrywki
  • Podręcznik startupu. Budowa wielkiej firmy krok po kroku
  • Ruby on Rails. Ćwiczenia

Dodaj do koszyka Fundamentals of Software Engineering. From Coder to Engineer

Spis treści

Fundamentals of Software Engineering. From Coder to Engineer eBook -- spis treści

  • Preface
    • Who This Book Is For
    • What You Will Learn
    • Navigating This Book
    • Conventions Used in This Book
    • Using Code Examples
    • OReilly Online Learning
    • How to Contact Us
    • Acknowledgments
  • 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
    • Dont 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
        • Continuous learning approach
        • Code navigation tools
          • Find usages and references
          • Jump to definition
          • Call hierarchies and dependency views
        • Code analysis features
          • Automated inspection and suggestions
          • Code structure visualization
      • Reading Tests for Insight
        • Tests as living documentation
        • Understanding workflows and processes
        • Discovering edge cases and boundaries
    • Practice Makes Perfect
    • Wrapping Up
    • Putting It into Practice
    • Additional Resources
  • 3. Writing Code
    • Dont 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
        • Understanding the project
        • Reviewing available documentation
        • Understanding architecture and project structure
      • Understand the Execution Flow
        • Finding application entry points
        • Following the data: Tracing request journeys
          • Browser developer tools
          • API testing tools
          • Logging
          • Debugging
        • Locating external dependencies
        • Locating internal frameworks and libraries
          • Identifying internal frameworks
          • Working with internal frameworks
      • Build Mental Models Incrementally
        • Breaking down complex systems
        • Visualizing your mental models
        • Gradually expanding your scope
    • A Sample Process
    • Making Changes Safely
      • Refactoring Safely
        • Rely on existing tests
        • Add tests before refactoring
      • The Scout Rule
      • Small, Reversible Changes
        • Change management strategies
        • Small, testable increments
        • Version control best practices
          • Commit strategically
          • Branch wisely
          • Pull requests and code reviews
    • 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
        • Structured data
        • Unstructured data
      • Common Data Formats
        • JSON
        • XML
        • CSV
        • YAML
      • Specialized Data Considerations
        • Binary data
        • Date and time data
        • Large datasets
    • Storing Your Data Effectively
      • Database Types and Their Use Cases
        • Relational databases
        • Document databases
        • Key-value stores
        • Graph databases
        • Vector databases
      • Data Persistence and Management
        • Direct database access
        • Repository pattern
        • Object relational mapping
      • Database Connections and Transactions
        • Database connections
        • Transactions
      • Consistency Models and Caching Strategies
        • Consistency models
          • Types of consistency models
          • CAP theorem and its implications
          • Choosing the right consistency model
        • Optimizing performance with caching
          • Common caching strategies
          • When to use caching
          • Caching and consistency
      • Planning for Data Growth
        • Using scaling strategies
        • Maintaining performance during growth
    • Querying and Managing Data Performance
      • Efficient Query Writing
        • Basic query optimization
        • Prepared statements
        • Index management
        • Handling large result sets
      • Tools and Best Practices
        • Understanding query execution plans
          • What is a database query planner?
          • Database-specific query planners
          • Using query execution plans
        • Database monitoring and analysis
        • Balancing complexity and performance
    • Data Migration and Transformation
      • Understanding Data Movement Fundamentals
        • Big bang versus phased migration
        • ETL processes
        • Data synchronization
      • Handling Schema Changes
        • Using version control for data structures
        • Managing data dependencies and transformations
    • 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
        • Configuration files
        • Environment variables
        • Feature flags
        • Secrets
      • Error Handling and Logging
        • Error handling
        • Logging
      • Security Essentials
        • Securing communication with HTTPS
        • Authentication best practices
        • Safeguarding user data
        • Encryption: Your last line of defense
        • Compliance requirements
    • Deployment Pipeline
      • Deployment Environments
      • Version Control Strategies
        • Core branches
        • Supporting branches
        • The version control lifecycle
      • Deployment Automation
        • Scripting deployments
        • Rollback procedures
      • Deployment Strategies
        • All-at-once deployment (big bang)
        • Gradual deployment (phased approach)
        • Zero downtime considerations
        • Choosing your strategy
      • Continuous Integration and Continuous Deployment
        • Building a basic CI/CD workflow
        • Advanced CI/CD patterns
    • Production System Monitoring and Maintenance
      • Monitoring
      • System Maintenance
        • Keeping systems up-to-date
        • System updates
        • Dependency management
        • Taking action
    • 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 Doesnt 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
        • Messaging
        • Meetings
        • Presentations
        • Code as a communication medium
      • Enterprise Operator
      • Know Your Audience
    • Practicing Influence
      • Understanding and Articulating Value
      • Strategic Approaches to Influence
      • Stakeholder Management
    • Time Management
      • Makers Schedule
      • Staying on Task
    • Wrapping Up
    • Putting It into Practice
    • Additional Resources
  • 14. Career Management
    • Plan Your Career Path
      • Find What Youre Passionate About
        • Exploring different domains and technologies
        • Experiment with side projects
      • Exploring Your Career Options
        • Technical expert path
        • Leadership path
        • Alternative paths
      • Walking Backward from Your Goals
      • Deliberate Skill Acquisition
        • Core skills
        • T-shaped development
        • Strategic learning
        • Build a personal technology radar
      • Aligning Career Choices with Life Phases
        • Company types and their worklife fit
        • Practical considerations
    • Walking Your Career Path
      • Celebrate and Record Your Wins
      • Overcome Imposter Syndrome
        • What imposter syndrome really is
        • How to overcome imposter syndrome
          • Using doubt as motivation
          • Building confidence through action
          • Recognizing opportunities for growth
      • Build Your Professional Community
        • Local tech communities
        • Online communities
      • Cultivating Your Professional Relationships
        • Core principles of professional relationships
        • Maintain and engage your network
      • Acing Your Next Interview
        • Interview preparation
          • Strategic research
          • Evaluating mutual fit
          • Handling common questions
          • Technical questions software engineers should expect
          • Practice makes perfect
        • During the interview
          • Command the technical interview
          • Be professional
          • Embrace the experience
        • After the interview
          • Learning from the experience
          • Growing from feedback
      • Create WorkLife Balance
        • Understanding the challenges of software development
        • Working remotely
          • Benefits of remote working
          • Challenges of remote software development
    • Wrapping Up
    • Putting It into Practice
    • Additional Resources
  • 15. The AI-Powered Software Engineer
    • What Is AI Really?
      • Demystifying AI Terminology
        • Machine learning
        • Deep learning
        • Generative AI
        • Large language models
      • Understanding AIs Capabilities and Limitations
        • What AI excels at for software developers
        • AIs current 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
        • Clear communication is key
        • Structure determines success
        • Think of it as teaching, not commanding
        • Practical tips for immediate improvement
      • Advanced Prompt Engineering Techniques
        • Structuring techniques
        • Organizational techniques
    • How AI Might Shape Software Engineering
      • Will AI Take My Job?
      • Vibe Code Reviews
        • What is vibe coding?
        • The benefits and dangers
        • The enterprise reality check
          • Why code reviews are more important than ever
          • The new developer mindset
      • AI as Your Force Multiplier: From Writing Code to Problem-Solving
    • Wrapping Up
    • Putting It into Practice
    • Additional Resources
  • Index

Dodaj do koszyka Fundamentals of Software Engineering. From Coder to Engineer

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2025 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.