Skip to content

🧠Mindmap of 🗺️Software Architecture, Software engineering: An Overview of Software Terminologies and Concepts.

License

Notifications You must be signed in to change notification settings

kimtth/software-architect-mindmap

Repository files navigation

Table of Contents

Software Architecture Mindmap

Software terminologies and concepts, software architecture overview

Summarized the keywords and solutions have faced in my learning and experience.

  • Full Version

Software_Architecture_Mindmap.png

Three main pillars upon software architecture

  • Modern Application Development

  • Cloud Computing (AWS/Azure/GCP)

  • Data Science (ML/NN)

and

Numerous technologies and methodologies.

ⓒ 2022. (https://github.com/kimtth) all rights reserved.

This mindmap created by https://app.mindmapmaker.org/


Software Architecture Reference




  • Google SRE Handbook

    Expand

    🔹 Latency is the response time of your application, usually expressed in milliseconds

    🔹 Throughput is how many transactions per second or minute your application can handle

    🔹 Errors is usually measured in a percent of

    🔹 Saturation is the ability of your application to use the available CPU and Memory

Building from scratch

Cloud Architecture

Expand
🔹 Abstractly speaking, a landing zone helps you plan for and design an Azure deployment, by conceptualizing a designated area for placement and integration of resources. 

There are two types of landing zones:

1. `platform landing zone`: provides centralized enterprise-scale foundational services for workloads and applications.
2. `application landing zone`: provides services specific to an application or workload.

Computer Science courses

Industry Trends

Newsletter

Tools & Research

Algorithm & Visualization
Design Patterns & Development
Research & Academic Tools
Diagramming & Visualization Tools
Best Practices

Engineering blog

Other Topics

Computer Science Books

  1. General

  2. Good Practices

  3. Data Structures and Algorithms

  4. Data

  5. Testing

  6. Software Architecture

  7. Distributed Systems

  8. DevOps

  9. Machine Learning

Computer Science Papers

Computer Science Papers Every Developers Should Read

  1. On the Criteria To Be Used in Decomposing Systems into Modules (1972): D.L. Parnas
  2. An Axiomatic Basis for Computer Programming (1969): C.A.R. Hoare
  3. Time, Clocks, and the Ordering of Events in a Distributed System (1978): L. Lamport
  4. Out of the Tar Pit (2006): B. Moseley, P. Marks
  5. Dynamo: Amazon’s Highly Available Key-value Store (2007): G. DeCandia et al.
  6. MapReduce: Simplified Data Processing on Large Clusters (2004): J. Dean, S. Ghemawat
  7. A Note On Distributed Computing (1994): J. Waldo, G. Wyant, A. Wollrath, S. Kendall
  8. A Metrics Suite for Object-Oriented Design (1994): S.R. Chidamber
  9. A Relational Model of Data for Large Shared Data Banks (1969): E.F. Codd
  10. Why Functional Programming Matters (1990): J. Hughes
  11. Transmission Control Protocol (1981): J. Postel | A TCP/IP Tutorial (1991): a tutorial on the TCP/IP protocol

Distributed Systems!

25 Papers That Completely Transformed the Computer World

  • ref [May 2024]
  1. Dynamo: Amazon’s Highly Available Key Value Store
  2. Google File System: Insights into a highly scalable file system
  3. Scaling Memcached at Facebook: A look at the complexities of caching
  4. BigTable: The design principles behind a distributed storage system
  5. Borg: Large Scale Cluster Management at Google
  6. Cassandra: A look at the design and architecture of a distributed NoSQL database
  7. Attention Is All You Need: Into a new deep learning architecture known as the transformer
  8. Kafka: Internals of the distributed messaging platform
  9. FoundationDB: A look at how a distributed database works
  10. Amazon Aurora: How Amazon provides high availability and performance
  11. Spanner: Design and architecture of Google’s globally distributed database
  12. MapReduce: A detailed look at how MapReduce enables parallel processing of massive volumes of data
  13. Shard Manager: Understanding the generic shard management framework
  14. Dapper: Insights into Google’s distributed systems tracing infrastructure
  15. Flink: A detailed look at the unified architecture of stream and batch processing
  16. A Comprehensive Survey on Vector Databases
  17. Zanzibar: A look at the design, implementation, and deployment of a global system for managing access control lists at Google
  18. Monarch: Architecture of Google’s in-memory time series database
  19. Thrift: Explore the design choices behind Facebook’s code-generation tool
  20. Bitcoin: The ground-breaking introduction to the peer-to-peer electronic cash system
  21. WTF - Who to Follow Service at Twitter: Twitter’s (now X) user recommendation system
  22. MyRocks: LSM-Tree Database Storage Engine
  23. GoTo Considered Harmful
  24. Raft Consensus Algorithm: Learn about the more understandable consensus algorithm
  25. Time Clocks and Ordering of Events: The extremely important paper that explains the concept of time and event ordering in a distributed system

Data Science (ML/NN)

Free eBooks for ML, Data Science & AI > ref

Machine Learning & Deep Learning
  1. Deep Learning – Ian Goodfellow, Yoshua Bengio, Aaron Courville
  2. Dive into Deep Learning – Aston Zhang et al.
  3. The Hundred-Page Machine Learning Book – Andriy Burkov
  4. Machine Learning Yearning – Andrew Ng
  5. Understanding Machine Learning – Shai Shalev-Shwartz, Shai Ben-David
  6. Machine Learning for Humans – Vishal Maini, Samer Sabri
  7. Approaching (Almost) Any ML Problem – Abhishek Thakur
  8. Machine Learning For Dummies – Judith Hurwitz, Daniel Kirsch
  9. Hands-On Machine Learning with R – Boehmke & Greenwell
  10. Machine Learning Engineering – Andriy Burkov
Mathematics & Statistical Foundations
  1. Mathematics for Machine Learning – Deisenroth, Faisal, Ong
  2. The Elements of Statistical Learning – Friedman, Tibshirani, Hastie
  3. An Introduction to Statistical Learning – James et al.
  4. Pattern Recognition and ML – Christopher Bishop
  5. Information Theory, Inference, and Learning Algorithms – David J. C. MacKay
  6. Algebra, Topology, Calculus & Optimization for CS/ML – Jean Gallier
  7. Mathematical Methods for CV, Robotics, Graphics – Stanford
  8. Math Foundations for Computer Science – Stanford CS103
  9. @mathtalent Lecture Notes – Math-focused CS notes
  10. Algorithms for Artificial Intelligence – Moss
Probabilistic, Special Topics
  1. Probabilistic ML: An Introduction – Kevin P. Murphy
  2. Probabilistic ML: Advanced Topics – Kevin P. Murphy
  3. Applied Causal Inference – Uday Kamath et al.
  4. Reinforcement Learning: An Introduction – Sutton & Barto
  5. Deep Learning on Graphs – Yao Ma & Jiliang Tang
  6. Speech and Language Processing – Jurafsky & Martin
  7. Natural Language Processing with Python – Bird, Klein, Loper
  8. Computer Vision: Models, Learning, and Inference – Simon J.D. Prince
  9. Interpretable Machine Learning – Christoph Molnar
  10. ML Interpretability – Patrick Hall & Navdeep Gill
  11. Automated Machine Learning – Frank Hutter et al.
  12. Feature Engineering and Selection – Max Kuhn & Kjell Johnson
  13. Deep Learning Interviews – Shlomo Kashani, Amir Ivry
  14. Boosting: Foundations and Algorithms – Schapire & Freund
  15. A Brief Introduction to ML for Engineers – Osvaldo Simeone

Github:

Foundational Learning
  1. Machine Learning for Beginners – Microsoft
  2. The Data Engineering Handbook
  3. Virgilio – Data Science Curriculum
  4. Open Source Data Science Masters
  5. Python Data Science Handbook
  6. Data Science Python Notebooks
  7. Awesome Data Science
  8. Awesome Machine Learning
Deep Learning & Math
  1. Deep Learning Book (MIT)
  2. fastai Book (fastbook)
  3. Mathematics for Machine Learning
  4. labml.ai – Deep Learning Paper Implementations
  5. Deep Learning Models by Rasbt
Practical Skills & Production
  1. Machine Learning Tutorials
  2. Machine Learning ZoomCamp
  3. Applied ML – Papers & Blogs
  4. Awesome Production Machine Learning
  5. Data Science Project Template (Cookiecutter)
  6. 365 Data Science Flashcards
  7. openpilot – Driver Assistance System
Interviews & Cheatsheets
  1. CS 229 ML Cheatsheets
  2. ML Interview Guide
  3. Data Science Interview Q&A

Terminology and Comparisons

  • See Glossary.md: an overview of key terminology, definitions, and comparisons between related concepts.