Ask HN: Learning new coding patterns – how to start?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • coding_patterns

    Small repository to show how MVC works with Python applications.

  • 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?

  • patterns

    A catalogue of Rust design patterns, anti-patterns and idioms

  • 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

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • scikit-learn

    scikit-learn: machine learning in Python

  • 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?

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts