1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-09-09 16:53:33 +02:00

cleanup and refactor Computer Science roadmap topics (#8561)

This commit is contained in:
Vedansh
2025-05-01 17:59:23 +05:30
committed by GitHub
parent ab5cc9dd6d
commit c2e1d8fd28
58 changed files with 86 additions and 58 deletions

View File

@@ -22,12 +22,14 @@ seo:
title: 'Computer Science Roadmap: Curriculum for the self taught developer'
description: 'Computer Science study plan with free resources for the self-taught and bootcamp grads wanting to learn Computer Science.'
keywords:
- 'computer science roadmap'
- 'computer science'
- 'computer science roadmap'
- 'computer science roadmap 2024'
- 'computer science roadmap 2025'
- 'guide to computer science'
- 'software engineer roadmap'
- 'software engineer roadmap 2024'
- 'software engineer roadmap 2025'
- 'self-taught computer science roadmap'
- 'computer science skills'
- 'computer science skills test'

View File

@@ -4,4 +4,4 @@ Architectural patterns are the fundamental organization of a system, defining ho
Visit the following resources to learn more:
- [@article@List of software architecture styles and patterns](https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns)
- [@article@List of Software Architecture Styles and Patterns](https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns)

View File

@@ -4,10 +4,10 @@ Arrays store elements in contiguous memory locations, resulting in easily calcul
Visit the following resources to learn more:
- [@article@What is Array in Data Structure? Types & Syntax](https://www.simplilearn.com/tutorials/data-structure-tutorial/arrays-in-data-structure)
- [@video@Array Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=QJNwK2uJyGs)
- [@course@Array Data Structure - Coursera](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
- [@course@Dynamic Arrays - Coursera](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
- [@video@UC Berkeley CS61B - Linear and Multi-Dim Arrays (Start watching from 15m 32s)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE)
- [@video@Jagged Arrays](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- [@video@Dynamic and Static Arrays](https://www.youtube.com/watch?v=PEnFFiQe1pM&list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu&index=6)
- [@video@Dynamic Array Code](https://www.youtube.com/watch?v=tvw4v7FEF1w&list=PLDV1Zeh2NRsB6SWUrDFW2RmDotAfPbeHu&index=5)
- [@video@Jagged Arrays](https://www.youtube.com/watch?v=1jtrQqYpt7g)
- [@video@UC Berkeley CS61B - Linear and Multi-Dim Arrays (Start watching from 15m 32s)](https://archive.org/details/ucberkeley_webcast_Wp8oiO_CZZE)
- [@course@Array Data Structure - Coursera](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)

View File

@@ -6,6 +6,7 @@ In practice: From what I can tell, these aren't used much in practice, but I cou
Visit the following resources to learn more:
- [@article@AVL Tree - Programiz](https://www.programiz.com/dsa/avl-tree)
- [@video@MIT AVL Trees / AVL Sort](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6)
- [@course@AVL Trees](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
- [@course@AVL Tree Implementation](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)

View File

@@ -4,6 +4,6 @@ Balanced search trees are a type of data structure that allow for fast insertion
Visit the following resources to learn more:
- [@article@Self-balancing binary search tree - Wikipedia](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
- [@article@Self-balancing Binary Search Tree - Wikipedia](https://en.wikipedia.org/wiki/Self-balancing_binary_search_tree)
- [@video@Balanced Search Trees Operations and Applications 11 min](https://www.youtube.com/watch?v=IbNZ-x1I2IM)
- [@video@Balanced binary search tree rotations](https://www.youtube.com/watch?v=q4fnJZr8ztY)

View File

@@ -5,3 +5,8 @@ The rise in popularity of NoSQL databases provided a flexible and fluidity with
- **B**asically **A**vailable
- **S**oft state
- **E**ventual consistency
Visit the following resources to learn more:
- [@article@ACID vs. BASE Database Model](https://phoenixnap.com/kb/acid-vs-base)
- [@article@What Is BASE in Database Engineering?](https://www.lifewire.com/abandoning-acid-in-favor-of-base-1019674)

View File

@@ -4,8 +4,9 @@ The Big O notation can be used to describe how the running time of an algorithm
Visit the following resources to learn more:
- [@article@Big-O Notation: A Simple Explanation with Examples](https://medium.com/better-programming/big-o-notation-a-simple-explanation-with-examples-a56347d1daca)
- [@article@CS 61B Lecture 19: Asymptotic Analysis](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
- [@article@Big O Notation | Brilliant Math & Science Wiki](https://brilliant.org/wiki/big-o-notation/)
- [@video@Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8)
- [@video@Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU)
- [@article@moviesCS 61B Lecture 19: Asymptotic Analysis](https://archive.org/details/ucberkeley_webcast_VIS4YDpuP98)
- [@video@Big Oh Notation (and Omega and Theta)](https://www.youtube.com/watch?v=ei-A_wy5Yxw&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN&index=3)
- [@article@Big O Notation | Brilliant Math & Science Wiki](https://brilliant.org/wiki/big-o-notation/)

View File

@@ -4,8 +4,8 @@ Binary search is a search algorithm that finds the position of a target value wi
Visit the following resources to learn more:
- [@video@Binary Search in 4 Minutes](https://www.youtube.com/watch?v=fDKIpRe8GW4\&feature=youtu.be)
- [@video@Binary Search - CS50](https://www.youtube.com/watch?v=D5SrAga1pno)
- [@article@Binary Search - Khan Academy](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
- [@article@Binary Search](https://www.topcoder.com/thrive/articles/Binary%20Search)
- [@video@Binary Search in 4 Minutes](https://www.youtube.com/watch?v=fDKIpRe8GW4\&feature=youtu.be)
- [@video@Binary Search - CS50](https://www.youtube.com/watch?v=D5SrAga1pno)
- [@feed@Explore top posts about Binary Search](https://app.daily.dev/tags/binary-search?ref=roadmapsh)

View File

@@ -4,4 +4,5 @@ Boyer Moore algorithm is a string searching algorithm that is used to find the i
Visit the following resources to learn more:
- [@article@Boyer-Moore String-search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string-search_algorithm)
- [@course@Boyer Moore Algorithm](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)

View File

@@ -4,6 +4,6 @@ Brute force search is a simple algorithm that checks for a pattern in a string b
Visit the following resources to learn more:
- [@article@A beginner guide to Brute Force Algorithm for substring search](https://nulpointerexception.com/2019/02/10/a-beginner-guide-to-brute-force-algorithm-for-substring-search/)
- [@article@A Beginner Guide to Brute Force Algorithm for Substring Search](https://nulpointerexception.com/2019/02/10/a-beginner-guide-to-brute-force-algorithm-for-substring-search/)
- [@article@Brute Force Algorithm in Cybersecurity and String Search](https://www.baeldung.com/cs/brute-force-cybersecurity-string-search)
- [@course@Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)

View File

@@ -4,7 +4,7 @@ C++ is a powerful general-purpose programming language. It can be used to develo
Visit the following resources to learn more:
- [@roadmap@C++ Roadmap](https://roadmap.sh/cpp)
- [@roadmap@Visit Dedicated C++ Roadmap](https://roadmap.sh/cpp)
- [@article@Learn C++](https://learncpp.com/)
- [@article@Cpp Reference](https://en.cppreference.com/)
- [@article@CPlusPlus](https://cplusplus.com/)

View File

@@ -4,5 +4,5 @@ The CAP theorem states that it is impossible for a distributed data store to sim
Visit the following resources to learn more:
- [@article@CAP Theorem](https://en.wikipedia.org/wiki/CAP_theorem)
- [@video@What is CAP Theorem?](https://www.youtube.com/watch?v=_RbsFXWRZ10)
- [@article@CAP Theorem - Wikipedia](https://en.wikipedia.org/wiki/CAP_theorem)

View File

@@ -10,6 +10,3 @@ Visit the following resources to learn more:
- [@video@Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [@video@Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24)
- [@video@Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- [@video@NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)

View File

@@ -4,7 +4,7 @@ Combinatorics is the study of counting. It is a branch of mathematics that is us
Visit the following resources to learn more:
- [@article@Probability and Combinatorics](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
- [@video@Math Skills: How to find Factorial, Permutation and Combination](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
- [@video@Make School: Probability](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
- [@video@Make School: More Probability and Markov Chains](https://www.youtube.com/watch?v=dNaJg-mLobQ)
- [@article@Probability and Combinatorics Topic](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)

View File

@@ -4,4 +4,5 @@ UML is a standard way of visualizing a software system. It is a general-purpose,
Visit the following resources to learn more:
- [@article@Unified Modeling Language (UML) Description](https://www.uml-diagrams.org/)
- [@video@UML Diagrams Full Course (Unified Modeling Language)](https://www.youtube.com/watch?v=WnMQ8HlmeXc)

View File

@@ -10,6 +10,3 @@ Visit the following resources to learn more:
- [@video@Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [@video@Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24)
- [@video@Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- [@video@NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)

View File

@@ -4,5 +4,6 @@ CPU Interrupts are a way for the CPU to communicate with the rest of the compute
Visit the following resources to learn more:
- [@article@System Interrupts 100% CPU](https://www.wikihow.com/System-Interrupts-100-Cpu)
- [@video@Interrupts](https://youtu.be/iKlAWIKEyuw)
- [@feed@Explore top posts about Computing](https://app.daily.dev/tags/computing?ref=roadmapsh)

View File

@@ -4,6 +4,6 @@ Depth first search is a graph traversal algorithm that starts at a root node and
Visit the following resources to learn more:
- [@video@BFS and DFS in a Binary Tree](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- [@article@Breadth-First Search (BFS) and Depth-First Search (DFS) for Binary Trees in Java](https://www.digitalocean.com/community/tutorials/breadth-first-search-depth-first-search-bfs-dfs)
- [@video@BFS and DFS in a Binary Tree](https://www.youtube.com/watch?v=uWL6FJhq5fM)
- [@video@Depth First Search in 4 Minutes](https://www.youtube.com/watch?v=Urx87-NMm6c)

View File

@@ -4,7 +4,7 @@ Design patterns are solutions to common problems in software design. They are fo
Visit the following resources to learn more:
- [@article@Design Patterns - Wikipedia](https://en.wikipedia.org/wiki/Software_design_pattern)
- [@article@Design Patterns](https://en.wikipedia.org/wiki/Software_design_pattern)
- [@opensource@Design Patterns for Humans](https://github.com/kamranahmedse/design-patterns-for-humans)
- [@article@Refactoring Guru - Design Patterns](https://refactoring.guru/design-patterns/)
- [@feed@Explore top posts about Design Patterns](https://app.daily.dev/tags/design-patterns?ref=roadmapsh)

View File

@@ -24,3 +24,8 @@ def generate_permutations(s):
return permutations
```
Visit the following resources to learn more:
- [@article@Big O Cheat Sheet - Time Complexity Chart](https://www.freecodecamp.org/news/big-o-cheat-sheet-time-complexity-chart/)
- [@video@Factorial Explained](https://www.youtube.com/watch?v=pxh__ugRKz8)

View File

@@ -4,6 +4,6 @@ Ford Fulkerson Algorithm is a greedy algorithm that is used to find the maximum
Visit the following resources to learn more:
- [@video@Ford-Fulkerson in 5 minutes](https://www.youtube.com/watch?v=Tl90tNtKvxs)
- [@article@Ford-Fulkerson Algorithm](https://www.programiz.com/dsa/ford-fulkerson-algorithm)
- [@video@Ford-Fulkerson in 5 minutes](https://www.youtube.com/watch?v=Tl90tNtKvxs)
- [@feed@Explore top posts about Data Science](https://app.daily.dev/tags/data-science?ref=roadmapsh)

View File

@@ -8,7 +8,7 @@ Visit the following resources to learn more:
- [@official@A Tour of Go Go Basics](https://go.dev/tour/welcome/1)
- [@official@Go Reference Documentation](https://go.dev/doc/)
- [@article@Go by Example - annotated example programs](https://gobyexample.com/)
- [@article@W3Schools Go Tutorial ](https://www.w3schools.com/go/)
- [@article@W3Schools Go Tutorial](https://www.w3schools.com/go/)
- [@article@Making a RESTful JSON API in Go](https://thenewstack.io/make-a-restful-json-api-go/)
- [@article@Go, the Programming Language of the Cloud](https://thenewstack.io/go-the-programming-language-of-the-cloud/)
- [@feed@Explore top posts about Golang](https://app.daily.dev/tags/golang?ref=roadmapsh)

View File

@@ -5,5 +5,7 @@ GraphQL is a query language for APIs and a runtime for fulfilling those queries
Visit the following resources to learn more:
- [@roadmap@Visit Dedicated GraphQL Roadmap](https://roadmap.sh/graphql)
- [@official@GraphQL](https://graphql.org/)
- [@official@GraphQL Documentation](https://graphql.org/learn/)
- [@article@Apollo GraphQL Tutorials](https://www.apollographql.com/tutorials/)
- [@feed@Explore top posts about GraphQL](https://app.daily.dev/tags/graphql?ref=roadmapsh)

View File

@@ -4,12 +4,9 @@ Hash Table, Map, HashMap, Dictionary or Associative are all the names of the sam
Visit the following resources to learn more:
- [@article@Hash Tables - Princeton University](https://algs4.cs.princeton.edu/34hash/)
- [@video@Hash Table | Illustrated Data Structures](https://www.youtube.com/watch?v=jalSiaIi8j4)
- [@video@Hash Table in 4 Minutes](https://youtu.be/knV86FlSXJ8)
- [@video@Hashing with Chaining](https://www.youtube.com/watch?v=0M_kIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=9)
- [@video@Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=10)
- [@video@Open Addressing, Cryptographic Hashing](https://www.youtube.com/watch?v=rvdJDijO2Ro&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=11)
- [@video@PyCon 2010: The Mighty Dictionary](https://www.youtube.com/watch?v=C4Kc8xzcA68)
- [@video@PyCon 2017: The Dictionary Even Mightier](https://www.youtube.com/watch?v=66P5FMkWoVU)
- [@video@(Advanced) Randomization: Universal & Perfect Hashing](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
- [@video@(Advanced) Perfect hashing](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc_3yNrojKM9&index=4)

View File

@@ -4,6 +4,7 @@ Hashing algorithms are used to generate a unique value for a given input. This v
Visit the following resources to learn more:
- [@article@Hashing Algorithm Overview:](https://www.okta.com/identity-101/hashing-algorithms/)
- [@video@Hashing Algorithms and Security - Computerphile](https://www.youtube.com/watch?v=b4b8ktEV4Bg)
- [@video@Top Hashing Algorithms In Cryptography | MD5 and SHA 256 Algorithms Expalined | Simplilearn](https://www.youtube.com/watch?v=Plp4F3ZfC7A)
- [@video@SHA: Secure Hashing Algorithm - Computerphile](https://www.youtube.com/watch?v=DMtFhACPnTY)

View File

@@ -4,7 +4,8 @@ Heap is a tree-based data structure that follows the properties of a complete bi
Visit the following resources to learn more:
- [@video@Heap | Illustrated Data Structures](https://www.youtube.com/watch?v=F_r0sJ1RqWk)
- [@course@Priority Queue - Introduction](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
- [@video@Heaps and Heap Sort](https://www.youtube.com/watch?v=B7hVxCmfPtM&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=5)
- [@article@Heap Data Structure](https://www.programiz.com/dsa/heap-data-structure)
- [@article@CS 61B Lecture 24: Priority Queues](https://archive.org/details/ucberkeley_webcast_yIUFT6AKBGE)
- [@video@Heap | Illustrated Data Structures](https://www.youtube.com/watch?v=F_r0sJ1RqWk)
- [@video@Heaps and Heap Sort](https://www.youtube.com/watch?v=B7hVxCmfPtM&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=5)
- [@course@Priority Queue - Introduction](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)

View File

@@ -4,4 +4,5 @@ Computers calculate using the binary system, where all data is represented as 0s
Visit the following resources to learn more:
- [@video@How computers calculate - ALU](https://youtu.be/1I5ZMmrOfnA)
- [@article@How Does A Computer Calculate Numbers?](https://www.sciencing.com/computer-calculate-numbers-4705975/)
- [@video@How Computers Calculate - ALU](https://youtu.be/1I5ZMmrOfnA)

View File

@@ -4,8 +4,8 @@ Computers are everywhere. They are in our phones, our cars, our homes, and even
Visit the following resources to learn more:
- [@video@How CPU executes a program](https://www.youtube.com/watch?v=XM4lGflQFvA)
- [@video@How computers calculate - ALU](https://youtu.be/1I5ZMmrOfnA)
- [@video@How CPU Executes A Program](https://www.youtube.com/watch?v=XM4lGflQFvA)
- [@video@How Computers Calculate - ALU](https://youtu.be/1I5ZMmrOfnA)
- [@video@Registers and RAM](https://youtu.be/fpnE6UAfbtU)
- [@video@The Central Processing Unit (CPU)](https://youtu.be/FZGugFqdr60)
- [@video@Instructions and Programs](https://youtu.be/zltgXvg6r3k)

View File

@@ -4,4 +4,5 @@ In-order traversal is a tree traversal algorithm that visits the left subtree, t
Visit the following resources to learn more:
- [@article@Tree Traversal Techniques](https://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder/)
- [@video@Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU)

View File

@@ -4,4 +4,5 @@ An index is a data structure that you build and assign on top of an existing tab
Visit the following resources to learn more:
- [@video@Database Indexing Explained](https://www.youtube.com/watch?v=-qNSXK7s7_w)
- [@article@Database Indexes Explained](https://www.essentialsql.com/what-is-a-database-index/)
- [@video@Database Indexing Explained](https://www.youtube.com/watch?v=-qNSXK7s7_w)

View File

@@ -4,6 +4,6 @@ Insertion sort is a simple sorting algorithm that builds the final sorted array
Visit the following resources to learn more:
- [@article@Insertion Sort](https://www.programiz.com/dsa/insertion-sort)
- [@video@Insertion Sort — MIT](https://www.youtube.com/watch?v=Kg4bqzAqRBM&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=4)
- [@video@Insertion Sort in 3 Minutes](https://www.youtube.com/watch?v=JU767SDMDvA)
- [@article@Insertion Sort Algorithm](https://www.programiz.com/dsa/insertion-sort)

View File

@@ -6,7 +6,7 @@ It was created in 1995 by James Gosling at Sun Microsystems and is one of the mo
Visit the following resources to learn more:
- [@roadmap@Visit Dedicated Java Roadmap](https://roadmap.sh/java)
- [@official@Java Website](https://www.java.com/)
- [@official@Java](https://www.java.com/)
- [@article@W3 Schools Tutorials](https://www.w3schools.com/java/)
- [@video@Java Crash Course](https://www.youtube.com/watch?v=eIrMbAQSU34)
- [@feed@Explore top posts about Java](https://app.daily.dev/tags/java?ref=roadmapsh)

View File

@@ -4,4 +4,5 @@ LFU Cache is a data structure that stores key-value pairs. It has a fixed size a
Visit the following resources to learn more:
- [@article@Least Frequently Used (LFU) Cache Implementation](https://www.geeksforgeeks.org/least-frequently-used-lfu-cache-implementation/)
- [@article@1117. Data Structure - LFU Cache](https://jojozhuang.github.io/algorithm/data-structure-lfu-cache/)

View File

@@ -4,5 +4,6 @@ Linear algorithms are algorithms that have a runtime that is directly proportion
Visit the following resources to learn more:
- [@article@Linear Search Algorithm](https://www.geeksforgeeks.org/linear-search/)
- [@video@Big O Notation — Calculating Time Complexity](https://www.youtube.com/watch?v=Z0bH0cMY0E8)
- [@video@Big O Notations](https://www.youtube.com/watch?v=V6mKVRU1evU)

View File

@@ -4,5 +4,5 @@ Little Endian is a way of storing data in memory. It is the opposite of Big Endi
Visit the following resources to learn more:
- [@video@Big Endian vs Little Endian.mp4](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- [@video@Big Endian vs Little Endian](https://www.youtube.com/watch?v=JrNF0KRAlyo)
- [@video@Endianness Explained With an Egg - Computerphile](https://www.youtube.com/watch?v=NcaiHcBvDR4)

View File

@@ -4,5 +4,6 @@ Load balancing is the process of distributing network or application traffic acr
Visit the following resources to learn more:
- [@article@What is Load Balancing? | How load balancers work](https://www.cloudflare.com/learning/performance/what-is-load-balancing/)
- [@video@Load Balancers 101](https://www.youtube.com/watch?v=galcDRNd5Ow)
- [@video@What is Load Balancing?](https://www.youtube.com/watch?v=gGLophKzJs8)

View File

@@ -7,9 +7,6 @@ Visit the following resources to learn more:
- [@article@Trying to understand P vs NP vs NP Complete vs NP Hard](https://softwareengineering.stackexchange.com/questions/308178/trying-to-understand-p-vs-np-vs-np-complete-vs-np-hard)
- [@video@Complexity: P, NP, NP-completeness, Reductions](https://www.youtube.com/watch?v=eHZifpgyH_4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
- [@video@P vs. NP and the Computational Complexity Zoo](https://www.youtube.com/watch?v=YX40hbAHx3s)
- [@video@Complexity: Approximation Algorithms](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
- [@video@Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [@video@Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24)
- [@video@Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- [@video@NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)

View File

@@ -10,6 +10,3 @@ Visit the following resources to learn more:
- [@video@Complexity: Fixed-Parameter Algorithms](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [@video@Lecture 23: Computational Complexity](https://www.youtube.com/watch?v=moPtwq_cVH8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=24)
- [@video@Greedy Algs. II & Intro to NP Completeness](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
- [@video@NP Completeness II & Reductions](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness III](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
- [@video@NP Completeness IV](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)

View File

@@ -9,6 +9,7 @@ Given below is the list of resources; pick ones relevant to the language of your
Visit the following resources to learn more:
- [@roadmap@Visit Dedicated C++ Roadmap](https://roadmap.sh/cpp)
- [@article@Learn C++ - W3Schools](https://www.w3schools.com/cpp/)
- [@article@Learn C++ - Tutorials Point](https://www.tutorialspoint.com/cplusplus/index.htm)
- [@video@C++ Programming Course - Beginner to Advanced](https://www.youtube.com/watch?v=8jLOx1hD3_o)

View File

@@ -4,4 +4,5 @@ Post-order traversal is a type of tree traversal that visits the left subtree, t
Visit the following resources to learn more:
- [@article@Postorder Traversal of Binary Tree](https://www.geeksforgeeks.org/postorder-traversal-of-binary-tree/)
- [@video@Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU)

View File

@@ -4,6 +4,7 @@ Process forking is a way to create a new process from an existing process. The n
Visit the following resources to learn more:
- [@article@Fork System Call in Operating System](https://www.geeksforgeeks.org/fork-system-call-in-operating-system/)
- [@video@Understanding fork() system call for new process creation](https://www.youtube.com/watch?v=PwxTbksJ2fo)
- [@video@fork() and exec() System Calls](https://www.youtube.com/watch?v=IFEFVXvjiHY)
- [@video@The fork() function in C](https://www.youtube.com/watch?v=cex9XrZCU14)

View File

@@ -4,5 +4,5 @@ A proxy server is an intermediary piece of hardware/software sitting between the
Visit the following resources to learn more:
- [@article@Proxy - System Design](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#proxy)
- [@roadmap.sh@Proxy Servers](https://roadmap.sh/guides/proxy-servers)
- [@article@Proxy - System Design](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo#proxy)

View File

@@ -4,7 +4,7 @@ Queue is a linear collection of items where items are inserted and removed in a
Visit the following resources to learn more:
- [@article@Circular Buffer - Wikipedia](https://en.wikipedia.org/wiki/Circular_buffer)
- [@video@Queue Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=mDCi1lXd9hc)
- [@video@Queue in 3 Minutes](https://www.youtube.com/watch?v=D6gu-_tmEpQ)
- [@course@Queues - Coursera](https://www.coursera.org/lecture/data-structures/queues-EShpq)
- [@article@Circular Buffer - Wikipedia](https://en.wikipedia.org/wiki/Circular_buffer)

View File

@@ -5,8 +5,8 @@
Registers are the high-speed accessible storage elements. The processor accesses the registers within one CPU clock cycle. The processor can decode the instructions and perform operations on the register contents at more than one operation per CPU clock cycle.
**_Memory_** is a hardware device that stores computer programs, instructions, and data. The memory that is internal to the processor is primary memory (RAM), and the memory that is external to the processor is secondary (**Hard Drive**).
Primary memory or RAM is a volatile memory, meaning the primary memory data exist when the system's power is on, and the data vanishes as the system is switched off. The primary memory contains the data required by the currently executing program in the CPU. If the data required by the processor is not in primary memory, then the data is transferred from secondary storage to primary memory, and then it is fetched by the processor.
Visit the following resources to learn more:
- [@article@RAM vs. Registers - What's the Difference?](https://thisvsthat.io/ram-vs-registers)
- [@video@Registers and RAM](https://youtu.be/fpnE6UAfbtU)

View File

@@ -5,8 +5,8 @@ Rust is a modern systems programming language focusing on safety, speed, and con
Visit the following resources to learn more:
- [@roadmap@Visit Dedicated Rust Roadmap](https://roadmap.sh/rust)
- [@article@The Rust Programming Language - online book](https://doc.rust-lang.org/book/)
- [@article@Rust by Example - collection of runnable examples](https://doc.rust-lang.org/stable/rust-by-example/index.html)
- [@official@The Rust Programming Language - online book](https://doc.rust-lang.org/book/)
- [@official@Rust by Example - collection of runnable examples](https://doc.rust-lang.org/stable/rust-by-example/index.html)
- [@article@Rust vs. Go: Why Theyre Better Together](https://thenewstack.io/rust-vs-go-why-theyre-better-together/)
- [@article@Rust by the Numbers: The Rust Programming Language in 2021](https://thenewstack.io/rust-by-the-numbers-the-rust-programming-language-in-2021/)
- [@feed@Explore top posts about Rust](https://app.daily.dev/tags/rust?ref=roadmapsh)

View File

@@ -13,3 +13,7 @@ Here is the list of some of the most commonly used scheduling algorithms:
- **Multi-level Feedback Queue Scheduling:** The processes are divided into different queues based on their priority. The process with the highest priority is allocated the CPU first. If a process is preempted, it is moved to the next queue. It is a preemptive algorithm.
- **Highest Response Ratio Next(HRRN):** CPU is allotted to the next process which has the highest response ratio and not to the process having less burst time. It is a Non-Preemptive algorithm.
- **Lottery Scheduling:** The process is allocated the CPU based on a lottery system. It is a preemptive algorithm.
Visit the following resources to learn more:
- [@article@CPU Scheduling in Operating System](https://www.scaler.com/topics/operating-system/cpu-scheduling/)

View File

@@ -4,4 +4,5 @@ Searching pattern in text is a very common task in computer science. It is used
Visit the following resources to learn more:
- [@article@Pattern Searching](https://www.geeksforgeeks.org/pattern-searching/)
- [@course@Search Pattern in Text](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)

View File

@@ -4,5 +4,6 @@ Selection sort is a sorting algorithm that selects the smallest unsorted item in
Visit the following resources to learn more:
- [@article@Selection Sort](https://en.wikipedia.org/wiki/Selection_sort)
- [@video@Selection Sort in 3 Minutes](https://www.youtube.com/watch?v=g-PGLbMth_g)
- [@course@Selection Sort](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)

View File

@@ -4,5 +4,5 @@ Skip lists are a data structure that allows you to perform operations on a sorte
Visit the following resources to learn more:
- [@article@Skip Lists](https://en.wikipedia.org/wiki/Skip_list)
- [@video@Randomization: Skip Lists](https://www.youtube.com/watch?v=2g9OSRKJuzM&index=10&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
- [@article@Skip Lists - Wikipedia](https://en.wikipedia.org/wiki/Skip_list)

View File

@@ -4,4 +4,4 @@ String search and manipulation is a very important topic in computer science. It
Visit the following resources to learn more:
- [@article@String-searching algorithm](https://en.wikipedia.org/wiki/String-searching_algorithm)
- [@article@String-searching Algorithm](https://en.wikipedia.org/wiki/String-searching_algorithm)

View File

@@ -4,7 +4,8 @@ Suffix arrays are a data structure that allows us to quickly find all the suffix
Visit the following resources to learn more:
- [@video@Suffix array introduction](https://www.youtube.com/watch?v=zqKlL3ZpTqs)
- [@article@Suffix Arrays - Princeton University](https://algs4.cs.princeton.edu/63suffix/)
- [@video@Suffix Array Introduction](https://www.youtube.com/watch?v=zqKlL3ZpTqs)
- [@video@Advanced Data Structures: Suffix Arrays](https://www.youtube.com/watch?v=IzMxbboPcqQ)
- [@video@Suffix arrays: building](https://www.youtube.com/watch?v=ZWlbhBjjwyA)
- [@video@Suffix Arrays: building](https://www.youtube.com/watch?v=ZWlbhBjjwyA)
- [@course@Suffix Arrays - Coursera](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)

View File

@@ -5,8 +5,8 @@ System design is the process of defining the architecture, modules, interfaces,
Visit the following resources to learn more:
- [@opensource@System Design Primer](https://github.com/donnemartin/system-design-primer)
- [@article@System Design: The complete course](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo)
- [@article@System Design: The Complete Course](https://dev.to/karanpratapsingh/system-design-the-complete-course-10fo)
- [@video@System Design 101](https://www.youtube.com/watch?v=Y-Gl4HEyeUQ)
- [@video@Scaling the Unscalable](https://www.youtube.com/watch?v=a2rcgzludDU)
- [@video@System design interview: Scale to 1 million users](https://www.youtube.com/watch?v=YkGHxOg9d3M)
- [@video@System Design interview: Scale to 1 million users](https://www.youtube.com/watch?v=YkGHxOg9d3M)
- [@feed@Explore top posts about Career](https://app.daily.dev/tags/career?ref=roadmapsh)

View File

@@ -5,5 +5,5 @@ Knight's Tour Problem is a problem where we have to find a path for a knight to
Visit the following resources to learn more:
- [@article@Knights Tour](https://bradfieldcs.com/algos/graphs/knights-tour/)
- [@article@Knights Tour Proble](https://www.codesdope.com/course/algorithms-knights-tour-problem/)
- [@article@Knights Tour Problem](https://www.codesdope.com/course/algorithms-knights-tour-problem/)
- [@article@Backtracking: The Knights Tour Problem](https://www.codingninjas.com/codestudio/library/backtracking-the-knights-tour-problem)

View File

@@ -4,5 +4,7 @@ TLS (Transport Layer Security) is a cryptographic protocol that provides privacy
Visit the following resources to learn more:
- [@article@What is TLS & How Does it Work? - Internet Society](https://www.internetsociety.org/deploy360/tls/basics/)
- [@article@What is TLS (Transport Layer Security)? - Cloudflare](https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/)
- [@video@SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
- [@video@SSL/TLS - Cristina Formaini](https://www.youtube.com/watch?v=Rp3iZUvXWlM)

View File

@@ -5,3 +5,4 @@ In short, a database transaction is a sequence of multiple operations performed
Visit the following resources to learn more:
- [@article@What are Transactions?](https://fauna.com/blog/database-transaction)
- [@article@Database Transaction](https://en.wikipedia.org/wiki/Database_transaction)

View File

@@ -4,6 +4,7 @@ The Travelling Salesman Problem (TSP) is a classic problem in computer science.
Visit the following resources to learn more:
- [@article@Traveling Salesman Problem](https://en.wikipedia.org/wiki/Travelling_salesman_problem)
- [@video@What is the Traveling Salesman Problem?](https://www.youtube.com/watch?v=1pmBjIZ20pE)
- [@video@4.7 Traveling Salesperson Problem - Dynamic Programming](https://www.youtube.com/watch?v=XaXsJJh-Q5Y)
- [@video@Traveling Salesman Problem | Dynamic Programming | Graph Theory](https://www.youtube.com/watch?v=cY4HiiFHO1o)

View File

@@ -4,4 +4,5 @@ A tree is non-linear and a hierarchical data structure consisting of a collectio
Visit the following resources to learn more:
- [@article@Tree Data Structure](https://www.programiz.com/dsa/trees)
- [@video@Tree | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU)

View File

@@ -4,4 +4,5 @@ An unbalanced binary tree is one that is not balanced.
Visit the following resources to learn more:
- [@article@Balanced Binary Tree](https://www.programiz.com/dsa/balanced-binary-tree)
- [@article@Balanced vs Unbalanced Binary Tree](https://stackoverflow.com/questions/59206128/balanced-vs-unbalanced-binary-tree-clarification-needed)
- [@article@Unbalanced Binary Tree](https://eng.libretexts.org/Bookshelves/Computer_Science/Databases_and_Data_Structures/Open_Data_Structures_-_An_Introduction_(Morin)/06%3A_Binary_Trees/6.02%3A_BinarySearchTree_-_An_Unbalanced_Binary_Search_Treee)