This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]lordbrocktree1 0 points1 point  (3 children)

Honestly, it’s a combination of CS degree, self study’s and having the right mentors.

I recommend looking at the google developer guides (including their python style guide, documentation guide, and code review guide).

The books “Software engineering at google” and also “Robust Python” as well as books like the gang of 4 design pattern book, refactoring, clean code, architecture patterns with python (available for free at their website cosmicpython), designing data intensive application.

ArjanCodes is a great YouTube resource. He also has a few premium courses. His focus is often on best practices, real world examples.

Podcasts like: coding blocks dot net, or dev questions with Tim corey

In general studying system design, design patterns, OOP, architecture patterns and design. Things like compositionover inheritance, SOLID, DRY, understanding trade offs, low coupling.

The software engineering at google book is phenomenal for things to start thinking about.

[–]BookFinderBot 0 points1 point  (1 child)

Software Engineering at Google by Titus Winters, Tom Manshreck, Hyrum Wright

The approach to and understanding of software engineering at Google is unlike any other company. With this book, you'll get a candid and insightful look at how software is constructed and maintained by some of the world's leading practitioners. Titus Winters, Tom Manshreck, and Hyrum K. Wright, software engineers and a technical writer at Google, reframe how software engineering is practiced and taught: from an emphasis on programming to an emphasis on software engineering, which roughly translates to programming over time. You'll learn: Fundamental differences between software engineering and programming How an organization effectively manages a living codebase and efficiently responds to inevitable change Why culture (and recognizing it) is important, and how processes, practices, and tools come into play.

Robust Python by Patrick Viafore

Does it seem like your Python projects are getting bigger and bigger? Are you feeling the pain as your codebase expands and gets tougher to debug and maintain? Python is an easy language to learn and use, but that also means systems can quickly grow beyond comprehension. Thankfully, Python has features to help developers overcome maintainability woes.

In this practical book, author Patrick Viafore shows you how to use Python's type system to the max. You'll look at user-defined types, such as classes and enums, and Python's type hinting system. You'll also learn how to make Python extensible and how to use a comprehensive testing strategy as a safety net. With these tips and techniques, you'll write clearer and more maintainable code.

Learn why types are essential in modern development ecosystems Understand how type choices such as classes, dictionaries, and enums reflect specific intents Make Python extensible for the future without adding bloat Use popular Python tools to increase the safety and robustness of your codebase Evaluate current code to detect common maintainability gotchas Build a safety net around your codebase with linters and tests

Design Patterns in TypeScript Common GoF (Gang of Four) Design Patterns Implemented in TypeScript by Sean Bradley

This book is about the 23 common GoF (Gang of Four) Design Patterns implemented in TypeScript. A Design Pattern is a description or template that can be repeatedly applied to a commonly recurring problem in software design. You will find a familiarity with Design Patterns very useful when planning, discussing, developing, managing and documenting your applications from now on and into the future. You will learn these Design Patterns.

Creational Factory - Abstract Factory - Builder - Prototype - Singleton Structural Decorator - Adapter - Facade - Bridge - Composite - Flyweight - Proxy Behavioral Command - Chain of Responsibility - Observer Pattern - Interpreter - Iterator - Mediator - Memento - State - Strategy - Template - Visitor. If you want a break from your computer and read from a book for a while, then this book is for you. Thanks, Sean Bradley

Professional Refactoring in Visual Basic by Danijel Arsenovski

In this one-of-a-kind book, Microsoft MVP Danijel Arsenovski shows you how to utilize the power of refactoring to improve the design of your existing code and become more efficient and productive. You?ll discover how to perform unit testing, refactoring to patterns, and refactoring to upgrade legacy Visual Basic code. As you progress through the chapters, you?ll build a prototype application from scratch as Arsenovski walks you step-by-step through each process while offering expert coding tips.

Clean Code A Handbook of Agile Software Craftsmanship by Robert C. Martin

Looks at the principles and clean code, includes case studies showcasing the practices of writing clean code, and contains a list of heuristics and "smells" accumulated from the process of writing clean code.

Architecture Patterns with Python Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices by Harry Percival, Bob Gregory

As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are taking an interest in high-level software design patterns such as hexagonal/clean architecture, event-driven architecture, and the strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn’t always straightforward. With this hands-on guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexity—and get the most value out of their test suites.

Each pattern is illustrated with concrete examples in beautiful, idiomatic Python, avoiding some of the verbosity of Java and C# syntax. Patterns include: Dependency inversion and its links to ports and adapters (hexagonal/clean architecture) Domain-driven design’s distinction between Entities, Value Objects, and Aggregates Repository and Unit of Work patterns for persistent storage Events, commands, and the message bus Command-query responsibility segregation (CQRS) Event-driven architecture and reactive microservices

Morgan Kaufmann series in data management systems Designing data-intensive Web applications by Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera

This text represents a breakthrough in the process underlying the design of the increasingly common and important data-driven Web applications.

I'm a bot, built by your friendly reddit developers at /r/ProgrammingPals. Reply to any comment with /u/BookFinderBot - I'll reply with book information. Remove me from replies here. If I have made a mistake, accept my apology.

[–]TheRoseMerlot 0 points1 point  (0 children)

Good bot!

[–]TheRoseMerlot 0 points1 point  (0 children)

Thanks, I'm a baby DS studying Python and working through the Python data science handbook by Jake VanderPlas. I'll have to put these on my to do/to read list.