-
I've been a data scientist for quite awhile and always been fascinated by SWE's ability to create things.
I'd like to build up my understanding of coding patterns. I started with MVC (link: https://github.com/tom-flamelit/coding_patterns) and I'd like to continue learning more.
What resources do you recommend folks at my level look into?
-
Judoscale
Save 47% on cloud hosting with autoscaling that just works. Judoscale integrates with Django, FastAPI, Celery, and RQ to make autoscaling easy and reliable. Save big, and say goodbye to request timeouts and backed-up task queues.
-
For OOP design patterns in Rust, see: https://rust-unofficial.github.io/patterns/
For a book on FP, see: https://www.manning.com/books/grokking-simplicity
-
I was in a similar boat to yours - Worked in data science and since then have made a move to data engineering and software engineering for ML services.
I would recommend you look into the Design Patterns book by the Gang of Four. I found it particularly helpful to make extensible code that doesn't break specially with abstract classes, builders and factories. I would also recommend looking into the book The Object Oriented Thought Process to understand why traditional OOP is build the way it is.
You can also look into the source code of popular data science libraries such as sklearn (https://github.com/scikit-learn/scikit-learn/tree/main/sklea...) and see how a lot of them have Base classes to define shared functionality between object of the same nature.
As others mentioned, I would also encourage you to try and implement design patterns in your everyday work - maybe you can make a Factory to load models or preprocessors that follow the same Abstract class?