Today, professionals without formal training in software engineering are often driven to learn just enough Python syntax to hack together scripts and proof-of-concept code that seem to work and gets the job done. As soon as requirements grow in complexity, their tangled webs of glued-together code quickly reach dead ends and begin breaking in unexpected ways. Businesses that are scaling up realise the need for software engineers with deep understanding of fundamental computer science basics and their application to building production-quality software.
This book fills the knowledge gap, guiding novice coders to think like seasoned software engineers with a pragmatic, hands-on approach to building modern business software. It grounds programming fundamentals in real-world business objectives. Readers gain mathematical clarity for taming complexity, while focusing on production-quality code.
Walking through essential data types and collections, the book bridges theory with practice. It introduces techniques for managing code complexity early on, instilling habits that prevent future pitfalls. Readers learn indispensible reusable code patterns to construct reliable, maintainable systems.
With lucid explanations and thought-provoking exercises, the book develops computational thinking skills applicable across domains. It covers core concepts for efficient data manipulation, enhanced through Python's elegant syntax and teaches you how to write truly "Pythonic" code.
Finally, the book connects Python's versatile data analysis capabilities with the modern world of connected systems and networked data. Readers learn the fundamentals of APIs and micro-services, readying them to participate in scalable distributed software architectures that are so widespread today.
Table of Contents
- Part 0: Setting the Stage for Productive Learning
- Part 1: Introducing Fundamental Building Blocks - Data Types
- Part 2: Working with Collections of Data
- Part 3: The Dictionary Data Type and Conditional Logic
- Part 4: Encapsulating Code into Reusable Functions
- Part 5: Powerful Data Generation and Transformation Techniques
- Part 6: The Essential Patterns of Data Manipulation
- Part 7: On Code Quality and Managing Complexity
- Part 8: Guiding Principles and Coding Best Practices
- Part 9: Type Annotations and Reusability for Readable Code
- Part 10: Dependency Management for Organised Projects
- Part 11: Bundling Data with Behaviors using Classes and Objects
- Part 12: Handling Exceptions Gracefully
- Part 13: Working with Larger Datasets Stored in Files
- Part 14: Gaining Confidence through Automated Testing
- Part 15: Accessing Networked Data via APIs
With more than 20 years experience consulting some of the fastest growing brands in the UK and globally, the founder of A115 has a no-nonsense educational approach to modern enterprise software engineering.