diff --git a/README.md b/README.md index e7d8cd96..c9164c71 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,11 @@ ## Motivation -> Learn how to design large scale systems. +> Learn how to design large-scale systems. > > Prep for the system design interview. -### Learn how to design large scale systems +### Learn how to design large-scale systems Learning how to design scalable systems will help you become a better engineer. @@ -54,6 +54,19 @@ The provided [Anki flashcard decks](https://apps.ankiweb.net/) use spaced repeti Great for use while on-the-go. +### Coding Resource: Interactive Coding Challenges + +Looking for resources to help you prep for the [**Coding Interview**](https://github.com/donnemartin/interactive-coding-challenges)? + +

+ +
+

+ +Check out the sister repo [**Interactive Coding Challenges**](https://github.com/donnemartin/interactive-coding-challenges), which contains an additional Anki deck: + +* [Coding deck](anki_cards/https://github.com/donnemartin/interactive-coding-challenges/tree/master/anki_cards/Coding.apkg) + ## Contributing > Learn from the community. @@ -1330,12 +1343,13 @@ A basic HTTP request consists of a verb (method) and a resource (endpoint). Bel *Can be called many times without different outcomes. -The difference between `PUT` and `PATCH` is explained by example [here](https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1). - HTTP is an application layer protocol relying on lower-level protocols such as **TCP** and **UDP**. -* [HTTP](https://www.nginx.com/resources/glossary/http/) -* [README](https://www.quora.com/What-is-the-difference-between-HTTP-protocol-and-TCP-protocol) +#### Source(s) and further reading: HTTP + +* [What is HTTP?](https://www.nginx.com/resources/glossary/http/) +* [Difference between HTTP and TCP](https://www.quora.com/What-is-the-difference-between-HTTP-protocol-and-TCP-protocol) +* [Difference between PUT and PATCH](https://laracasts.com/discuss/channels/general-discussion/whats-the-differences-between-put-and-patch?page=1) ### Transmission control protocol (TCP) @@ -1423,12 +1437,12 @@ POST /anotheroperation RPC is focused on exposing behaviors. RPCs are often used for performance reasons with internal communications, as you can hand-craft native calls to better fit your use cases. -Choose a Native Library aka SDK when: +Choose a native library (aka SDK) when: * You know your target platform. -* You want to control how your "logic" is accessed -* You want to control how error control happens off your library -* Performance and end user experience is your primary concern +* You want to control how your "logic" is accessed. +* You want to control how error control happens off your library. +* Performance and end user experience is your primary concern. HTTP APIs following **REST** tend to be used more often for public APIs. diff --git a/resources/study_guide.graffle b/resources/study_guide.graffle new file mode 100644 index 00000000..39f81b01 Binary files /dev/null and b/resources/study_guide.graffle differ diff --git a/resources/study_guide.png b/resources/study_guide.png new file mode 100644 index 00000000..e69bc9e7 Binary files /dev/null and b/resources/study_guide.png differ diff --git a/solutions/system_design/mint/mint.graffle b/solutions/system_design/mint/mint.graffle new file mode 100644 index 00000000..5ba2e5f8 Binary files /dev/null and b/solutions/system_design/mint/mint.graffle differ diff --git a/solutions/system_design/mint/mint_basic.graffle b/solutions/system_design/mint/mint_basic.graffle new file mode 100644 index 00000000..95c2e81e Binary files /dev/null and b/solutions/system_design/mint/mint_basic.graffle differ diff --git a/solutions/system_design/pastebin/pastebin.graffle b/solutions/system_design/pastebin/pastebin.graffle new file mode 100644 index 00000000..879a6275 Binary files /dev/null and b/solutions/system_design/pastebin/pastebin.graffle differ diff --git a/solutions/system_design/pastebin/pastebin_basic.graffle b/solutions/system_design/pastebin/pastebin_basic.graffle new file mode 100644 index 00000000..fad80c23 Binary files /dev/null and b/solutions/system_design/pastebin/pastebin_basic.graffle differ diff --git a/solutions/system_design/query_cache/query_cache.graffle b/solutions/system_design/query_cache/query_cache.graffle new file mode 100644 index 00000000..bb122b4f Binary files /dev/null and b/solutions/system_design/query_cache/query_cache.graffle differ diff --git a/solutions/system_design/query_cache/query_cache_basic.graffle b/solutions/system_design/query_cache/query_cache_basic.graffle new file mode 100644 index 00000000..27ebf47f Binary files /dev/null and b/solutions/system_design/query_cache/query_cache_basic.graffle differ diff --git a/solutions/system_design/sales_rank/sales_rank.graffle b/solutions/system_design/sales_rank/sales_rank.graffle new file mode 100644 index 00000000..0a491db5 Binary files /dev/null and b/solutions/system_design/sales_rank/sales_rank.graffle differ diff --git a/solutions/system_design/sales_rank/sales_rank_basic.graffle b/solutions/system_design/sales_rank/sales_rank_basic.graffle new file mode 100644 index 00000000..19eb85ff Binary files /dev/null and b/solutions/system_design/sales_rank/sales_rank_basic.graffle differ diff --git a/solutions/system_design/scaling_aws/scaling_aws.graffle b/solutions/system_design/scaling_aws/scaling_aws.graffle new file mode 100644 index 00000000..460d1deb Binary files /dev/null and b/solutions/system_design/scaling_aws/scaling_aws.graffle differ diff --git a/solutions/system_design/social_graph/social_graph.graffle b/solutions/system_design/social_graph/social_graph.graffle new file mode 100644 index 00000000..a245d5a6 Binary files /dev/null and b/solutions/system_design/social_graph/social_graph.graffle differ diff --git a/solutions/system_design/social_graph/social_graph_basic.graffle b/solutions/system_design/social_graph/social_graph_basic.graffle new file mode 100644 index 00000000..a753b39c Binary files /dev/null and b/solutions/system_design/social_graph/social_graph_basic.graffle differ diff --git a/solutions/system_design/template/template.graffle b/solutions/system_design/template/template.graffle new file mode 100644 index 00000000..6908231e Binary files /dev/null and b/solutions/system_design/template/template.graffle differ diff --git a/solutions/system_design/twitter/twitter.graffle b/solutions/system_design/twitter/twitter.graffle new file mode 100644 index 00000000..f93f4eac Binary files /dev/null and b/solutions/system_design/twitter/twitter.graffle differ diff --git a/solutions/system_design/twitter/twitter_basic.graffle b/solutions/system_design/twitter/twitter_basic.graffle new file mode 100644 index 00000000..c754b9e8 Binary files /dev/null and b/solutions/system_design/twitter/twitter_basic.graffle differ diff --git a/solutions/system_design/web_crawler/web_crawler.graffle b/solutions/system_design/web_crawler/web_crawler.graffle new file mode 100644 index 00000000..831e02fd Binary files /dev/null and b/solutions/system_design/web_crawler/web_crawler.graffle differ diff --git a/solutions/system_design/web_crawler/web_crawler_basic.graffle b/solutions/system_design/web_crawler/web_crawler_basic.graffle new file mode 100644 index 00000000..7d466eb2 Binary files /dev/null and b/solutions/system_design/web_crawler/web_crawler_basic.graffle differ