Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sachuverma/datastructures-algorithms

This repo contains links of resources, theory subjects content and DSA questions & their solution for interview preparation from different websites like geeksforgeeks, leetcode, etc.
https://github.com/sachuverma/datastructures-algorithms

algorithms computer-networks cpp-cheat-sheet data-structure data-structures database-management hacktoberfest interview interview-questions oops operating-systems software-engineering system-design

Last synced: 3 days ago
JSON representation

This repo contains links of resources, theory subjects content and DSA questions & their solution for interview preparation from different websites like geeksforgeeks, leetcode, etc.

Awesome Lists containing this project

README

        

[![Contributors][contributors-sachu]][contributors-url]
[![Forks][forks-sachu]][forks-url]
[![Stargazers][stars-sachu]][stars-url]
[![Issues][issues-sachu]][issues-url]
[![MIT License][license-sachu]][license-url]
[![LinkedIn][linkedin-sachu]][linkedin-url]
[![Portfolio][portfolio-sachu]][portfolio-url]

# DATA STRUCTURES & ALGORITHMS

`Resources and Solutions` `^_^`

I have compiled many useful links for **Data Structures and Algorithms** questions and their solutions.
I have also listed the **Theory Subjects**, which are often **ignored** by students but one must have a vast knowledge of them to help them in their interviews.
I have also included the **Placement Ready Roadmap**, from `beginner level -> interview-ready candidate`

#### Table of Contents

- [DATA STRUCTURES & ALGORITHMS](#data-structures--algorithms) - [Table of Contents](#table-of-contents)
- [๐Ÿ† Roadmap to Dream Placement](#-roadmap-to-dream-placement)
- [1๏ธโƒฃ 100+ Top Product Based Companies](#1%EF%B8%8Fโƒฃ-100-top-product-based-companies)
- [2๏ธโƒฃ Language, Data Structures, CP](#2%EF%B8%8Fโƒฃ-language-data-structures-cp)
- [๐Ÿ† DSA Practice Resources](#-dsa-practice-resources)
- [๐Ÿ”ฐ Leetcode Study Plan](#leetcode-study-plan)
- [๐Ÿ”ฐ DSA Crack Sheet](#dsa-crack-sheet)
- [๐Ÿ”ฐ Striver SDE Sheet](#striver-sde-sheet)
- [๐Ÿ”ฐ Top Interview Preparation Questions](#top-interview-preparation-questions)
- [๐Ÿ”ฐ Companywise Interview Questions](#companywise-interview-questions)
- [๐Ÿ”ฐ Leetcode Daily Challenges](#leetcode-daily-challenges)
- [๐Ÿ† Theory Subjects](#-theory-subjects)
- [1๏ธโƒฃ Operating System](#1%EF%B8%8Fโƒฃ-operating-system)
- [2๏ธโƒฃ Database Management & Design](#2%EF%B8%8Fโƒฃ-database-management--design)
- [3๏ธโƒฃ Object Oriented Programming](#3%EF%B8%8Fโƒฃ-object-oriented-programming)
- [4๏ธโƒฃ Computer Networks](#4%EF%B8%8Fโƒฃ-computer-networks)
- [๐Ÿ† Notes and Resources](#-other-notes-and-resources)
- [๐Ÿ”–Best book for Coding Interviews](#best-book-for-coding-interviews---cracking-the-coding-interview)
- [๐Ÿ† Sources](#-sources)
- [๐Ÿ† Contributing](#-contributing)
- [๐Ÿ† License](#-license)
- [๐Ÿ† Contact](#-contact)


## ๐Ÿ† Roadmap to Dream Placement

### 1๏ธโƒฃ 100+ Top Product Based Companies

People only chase after **FAANG**, because that's what is hyped up but now there are a lot of companies which:
- `Good opportunities to enhance oneself`
- `Pay Exceptionally Well`
- `Good Work Life`
- `Great Projects/Learning`
Check their names [here](https://drive.google.com/file/d/15rjcHqjDN7gPU5e6nxb_9NdApRf4TW1I/view?usp=sharing), and decide where you want to land.

### 2๏ธโƒฃ Language, Data Structures, CP

- Guide to how to start coding if you have zero knowledge about this field
- Only way to become good at something is to practice, an expert was once a newbie too ;)
- Only consistency matters, coding once a week for 10 hours is not beneficial, rather coding 1 hour each day will benefit you more.
- Reading/Learning/Practice resources are also listed below

Language

- Intent
* Familiarity with Syntax
* Familiarity with all keywords & Basic Concepts
* main focus is on, that are you comfortable in writing code with your preferred language
- Choices
* C++
* References:
- [cppreferences](https://en.cppreference.com/w/cpp)
- [tutorialspoint](https://www.tutorialspoint.com/cplusplus/index.htm)
- [cplusplus](http://www.cplusplus.com/reference/)
- [Scaler Topics](https://www.scaler.com/topics/cpp/)
* Time Required:
- 1-2 weeks
- 1-2 hrs/day
* Java
* References:
- [Tutorialpoint](https://www.tutorialspoint.com/java/index.htm)
- [GFG](https://www.geeksforgeeks.org/java/)
- [Scaler](https://www.scaler.com/topics/java/)
* Time Required: same as above
* Python
* References:
- [Tutorialspoint](https://www.tutorialspoint.com/python/index.htm)
- [w3schools](https://www.w3schools.com/python/)
- [Scaler Topics](https://www.scaler.com/topics/python/)
- [Wiingy](https://wiingy.com/learn/python/python-tutorial/)
* Time Required: same as above
* **Important Callout:** Some companies don't allow python as a choice in their online coding test, so prepare accordingly

Data Structure and Algorithms

- Without this, No Software Engineering Interview, in a tech giant can be cracked
- Follow the DSA Crack Sheet List given below
- Time Required:
- 2-3 months
- 6-8 questions/day
- 3-6 hrs/day

Projects

* You need some projects to showcase your skills to your interviewer
* Choices:
- Mobile Development
- [Web Development](https://www.scaler.com/courses/web-development/)
- [Machine Learning](https://www.scaler.com/courses/machine-learning-course-training/)
- Some other stuff (like Blockchain, IoT, etc.)
* Time Required: 3 months (doing on weekends 6-8 hours)

Subjectve Topics

* Do a Subsequent reading, revision any day you get time
- Operating System
- OOPS, Object Oriented Skills
- DBMS, Databse Management
- Computer Networking

Competitive Programming

- CP needs time, it's not something that you can master in 2 months, We will get comfortable with online platforms and get a taste of competitive programming
- Leetcode questions nearly 150-200 questions
- Category:
- Easy: 30%
- Medium: 50%
- Hard: 20%
- If time allows then go for Codeforces div2 Level A, B and C question
- Time Required:
- 150-200 Questions
- 2 months
- 3-4 Ques/day

System Design

- Tech Level:
- System's overview like we will use this queue with DynamoDB and a scheduler with a justification of why we are using this DB, SQS, SNS, multithreading, etc.
- for SDE-1 equivalent positions, this level is somewhat rare
- Normal Understanding:
- knowledge of dividing system & creating a rough DFD of system
- knowledge of DB Schema creation
- able to create problem-solving logic or not
- Time Required: Just need some reading of articles/notes, can be pursued parallelly
- Great Resources:
- [Grokking](https://github.com/lei-hsia/grokking-system-design/blob/master/README.md)
- [Primer](https://github.com/donnemartin/system-design-primer/blob/master/README.md)

Misc Stuff

- [Aptitude/Reasoning](https://www.geeksforgeeks.org/quiz-corner-gq/)
- Do some mock tests to gain confidence
- Basic Programming MCQ
- [C/C++/Java/Python fundamentals](https://www.geeksforgeeks.org/quiz-corner-gq/)
- Print output type questions
- Time/space complexity Questions
- [SQL Queries](https://www.geeksforgeeks.org/dbms-gq/sql-gq/)
- [Puzzles](https://www.geeksforgeeks.org/puzzles/)
- [Always go through 50-60 interview experiences before interview](https://www.geeksforgeeks.org/company-interview-corner/)


## ๐Ÿ† DSA Practice Resources


Remember: Deliberate practice does not mean looking for answers and memorizing them. You won't go very far with that approach. The more you are able to solve a problem yourself without any reference to answers, the more you will improve.

### [๐Ÿ”ฐLeetcode Study Plan](./Leetcode%20Study%20Plan)

### [๐Ÿ”ฐDSA Crack Sheet](./DSA%20Crack%20Sheet)

Data Structures and Algorithms Cracks Sheet (created by @lovebabbar) contains the most necessary questions to learn and grasp about most common and important DS and Algos

### [๐Ÿ”ฐStriver SDE Sheet](./Striver%20Sheet)

Software Developer Engineer Sheet (created by @striver) contains asked during interviews by good product based companies.

The sheet is divided in 30 parts to be completed in a month to get ready for an interview at a good company

### [๐Ÿ”ฐTop Interview Preparation Questions](./Leetcode%20Top%20Interview%20Questions)

This is LeetCode's official curated list of Top classic interview questions to help you land your dream job. Our top interview questions are divided into the following series:

### [๐Ÿ”ฐCompanywise Interview Questions](./Companywise%20Questions)

It is containing the list of most asked company wise questions available on Leetcode.

> [Download Full PDFs](https://mega.nz/folder/HkoglB7C#o2K_WMwTKFgdk_powwR9-g)

Every pdf file corresponds to a list of questions on leetcode for a specific company based on the leetcode company tags.
The list of questions within each pdf is further sorted by their frequency, so the most popular question for a specific company is at the top.

### [๐Ÿ”ฐLeetcode Daily Challenges](./Leetcode%20Daily%20Challenge)

This Challenge is beginner-friendly. It consists of daily problems given by Leetcode.
A problem is added here each day.

### [๐Ÿ”ฐTechnical Interview Questions](https://www.interviewbit.com/technical-interview-questions)

The Ultimate Guide to Acing Your Technical Interview(2022): Review these commonly asked technical job interview questions and prepare your answer.

## ๐Ÿ† Theory Subjects

These must-do questions should be done after studying these subjects
If you don't have much time left for interviews, then you can directly look at them

MUST-DO Questions for Interviews
(DBMS, CN and OS)

Operating System:

- What is the main purpose of an operating system? Discuss different types?
- What is a socket, kernel and monolithic kernel ?
- Difference between process and program and thread? Different types of process.
- Define virtual memory, thrashing, threads.
- What is RAID ? Different types.
- What is a deadlock ? Different conditions to achieve a deadlock.
- What is fragmentation? Types of fragmentation.
- What is spooling ?
- What is semaphore and mutex (Differences might be asked)? Define Binary semaphore.
- Beladyโ€™s Anomaly
- Starving and Aging in OS
- Why does trashing occur?
- What is paging and why do we need it?
- Demand Paging, Segmentation
- Real Time Operating System, types of RTOS.
- Difference between main memory and secondary memory.
- Dynamic Binding
- FCFS Scheduling
- SJF Scheduling
- SRTF Scheduling
- LRTF Scheduling
- Priority Scheduling
- Round Robin Scheduling
- Producer Consumer Problem
- Bankerโ€™s Algorithm
- Explain Cache
- Diff between direct mapping and associative mapping
- Diff between multitasking and multiprocessing

DBMS:

- What is DBMS ? Mention advantages..
- [What is Database?](https://www.scaler.com/topics/dbms/what-is-database/)
- What is a database system?
- What is RDBMS ? Properties..
- Types of database languages
- [ACID properties](https://www.scaler.com/topics/dbms/acid-properties-in-dbms/) (VVVVV IMP)
- Difference between vertical and horizontal scaling
- What is sharding
- [Keys in DBMS](https://www.scaler.com/topics/dbms/keys-in-dbms/)
- Types of relationship
- Data abstraction in DBMS, three levels of it
- [Indexing in DBMS](https://www.scaler.com/topics/dbms/indexing-in-dbms/)
- What is DDL (Data Definition Language)
- What is DML (Data Manipulation Language)
- [What is normalization](https://www.scaler.com/topics/dbms/normalization-in-dbms/) ? Types of them ..
- [What is denormalization](https://www.scaler.com/topics/denormalization-in-dbms/) ?
- [What is a functional dependency](https://www.scaler.com/topics/dbms/functional-dependency-in-dbms/) ?
- E-R Model ?
- Conflict Serializability in DBMS ..
- Explain Normal forms in DBMS
- What is CCP ? (Concurrency Control Protocols)
- Entity, Entity Type, Entity Set, Weak Entity Set..
- What are SQL commands ? Types of them..
- [Nested Queries in SQL ?](https://www.scaler.com/topics/nested-sql-query/)
- What is JOIN .. Explain types of JOINs
- Inner and Outer Join
- Practice SQL queries from LeetCode
- Diff between 2 tier and 3 tier architecture
- Diff between TRUNCATE and DELETE command
- Difference between Intension and Extension in a DataBase
- Difference between share lock and exclusive lock, definition of lock

Compute Networks:

- Define network
- What do you mean by network topology, and explain types of them
- Define bandwidth, node and link ?
- Explain TCP model ..
- Layers of OSI model
- Significance of Data Link Layer
- Define gateway, difference between gateway and router ..
- What does ping command do ?
- What is DNS, DNS forwarder, NIC, ?
- What is MAC address ?
- What is IP address, private IP address, public IP address, APIPA ?
- Difference between IPv4 and IPv6
- What is subnet ?
- Firewalls
- Different type of delays
- 3 way handshaking
- Server-side load balancer
- RSA Algorithm
- What is HTTP and HTTPS protocol ?
- What is SMTP protocol ?
- TCP and UDP protocol, prepare differences
- What happens when you enter โ€œgoogle.comโ€ (very very famous question)
- Hub vs Switch
- VPN, advantages and disadvantages of it
- LAN


### 1๏ธโƒฃ Operating System

Overview

- [Quick Notes to Follow](https://mega.nz/file/pEpRUIQQ#ArZTGmmvMpygGuoOL6rokFesY7IJVTDJCPUQ_VsLR4U)
- [What is an Operating System](https://www.scaler.com/topics/operating-system/what-is-operating-system/)
- [Features of Operating System](https://www.interviewbit.com/blog/features-of-operating-system/)
- Services provided by an Operating System
- [Types of Os](https://www.geeksforgeeks.org/types-of-operating-systems/)
- Batched OS
- Time Sharing OS
- Distributed OS
- Network OS
- Real Time OS
- [RAM vs ROM](https://www.guru99.com/difference-between-rom-ram.html)
- [SRAM & DRAM](https://www.guru99.com/sram-vs-dram-difference.html)
- [PROM, EPROM & EEROM](https://pediaa.com/what-is-the-difference-between-prom-eprom-and-eeprom/)
- [Virtualisation vs Containerisation](https://www.tutorialspoint.com/difference-between-virtualization-and-containerization)
- [BIOS vs UEFI](https://www.howtogeek.com/56958/htg-explains-how-uefi-will-replace-the-bios/)
- [MBR vs GPT](https://www.howtogeek.com/193669/whats-the-difference-between-gpt-and-mbr-when-partitioning-a-drive/)
- Important Terms to Know
- Compiler
- Loader
- Assembler
- Interpreter
- System Calls
- Application Programming Interface
- Kernel
- Shell
- JVM
- [Booting](https://www.scaler.com/topics/operating-system/what-is-booting/)
- [Multi-programming, Multi-processing, Multi-tasking & Multi-threading](https://www.geeksforgeeks.org/difference-between-multitasking-multithreading-and-multiprocessing/)
- [Monolothic architecture vs MicroKernel arch](https://stackoverflow.com/questions/4537850/what-is-difference-between-monolithic-and-micro-kernel)
- [Why Windows kernel is more monolithic & not microkernel?](https://micksmix.wordpress.com/2011/02/20/does-windows-have-a-microkernel-or-monolithic-kernel/)
- [What happens when we turn on our computer?](https://www.geeksforgeeks.org/what-happens-when-we-turn-on-computer/)

Process Concept

- [Process vs Program](https://www.geeksforgeeks.org/difference-between-program-and-process/)
- [Different State of process](https://www.geeksforgeeks.org/states-of-a-process-in-operating-systems/)
- Types of Process?
- [PCB structure in detail](https://www.geeksforgeeks.org/process-table-and-process-control-block-pcb/)
- [How does a process look like in memory?](https://www.tutorialspoint.com/how-does-a-process-look-like-in-memory)
- [Process vs Threads](https://www.geeksforgeeks.org/difference-between-process-and-thread/)
- Process Scheduling
- [Introduction](https://www.tutorialspoint.com/operating_system/os_process_scheduling.htm)
- [Inter Process Communication (IPS) in OS](https://www.scaler.com/topics/operating-system/inter-process-communication-in-os/)
- Scheduling Queue
- Job Queue
- Ready Queue
- Device Queue
- Scheduler
- Short-term Scheduler
- Medium-term Scheduler
- Long-term Scheduler
- [CPU Bound Process vs I/O Bound Process](https://stackoverflow.com/questions/868568/what-do-the-terms-cpu-bound-and-i-o-bound-mean)
- Best Performance system is which have a combination of CPU bound and I/O bound process
- [What is Context Switch?](https://www.tutorialspoint.com/what-is-context-switching-in-operating-system)
- IPC
- [Introduction](https://www.geeksforgeeks.org/inter-process-communication-ipc/)
- by Shared Memory
- by Message Passing
- [Define Pipe](https://www.tutorialspoint.com/inter_process_communication/inter_process_communication_pipes.htm)
- [Maximum number of Zombie process a system can handle?](https://www.geeksforgeeks.org/maximum-number-zombie-process-system-can-handle/)

Thread Concepts

- [What is a Thread?](https://www.studytonight.com/operating-system/multithreading)
- [Benefits of Multi-threading?](https://www.geeksforgeeks.org/benefits-of-multithreading-in-operating-system/)
- [Example of Multi-threading](https://www.quora.com/What-are-some-best-examples-of-multithreaded-applications)
- [Models](https://www.studytonight.com/operating-system/multithreading)
- Many to One
- One to One
- Many to Many
- Best Model??
- [Optimal number of threads required for a process?](https://stackoverflow.com/questions/1718465/optimal-number-of-threads-per-core)
- [Effect of Multiple cores on Multi-threading](https://blogs.grammatech.com/multi-core-processors-headache-for-multithreaded-code)
- Thread vs Process
- [Why C++ static variables are dangerous in real life OS?](https://stackoverflow.com/questions/7026507/why-are-static-variables-considered-evil)

Process Scheduling

- Why do we need it?
- CPU Burst Cycle
- CPU Scheduler
- Pre-Emptive Scheduling
- Non PreEmptive
- Advantages/Disadvantages
- Dispatch
- Role of Dispatcher
- Dispatch Latency
- Scheduling Criteria
- CPU Utilisation
- Throughput
- TAT [Turn around Time]
- Waiting Time
- Response Time
- Scheduling Algo
- FCFS
- SJFC
- Priority-based
- Round-Robin
- MLQS
- MLFQS
- Which algo is used in real world OS
- IMP terms to know
- Starvation
- Ageing
- How to prevent Starvation?

Synchronisation

- [Why Process Coordinatin/Sync is needed?](https://www.studytonight.com/operating-system/process-synchronization)
- Data Inconsistency
- Race Condition
- [Physical Address Space vs Logical Address Space](https://www.geeksforgeeks.org/logical-and-physical-address-in-operating-system/)
- Imp terms to know
- [Mutual Exclusion](https://www.geeksforgeeks.org/mutual-exclusion-in-synchronization/)
- [Critical Section](https://www.geeksforgeeks.org/g-fact-70/)
- Critical Section Problem, peterson Solution
- [Follow youtube video (knowledge gate)](https://www.youtube.com/watch?v=YwqexcfbucE&list=PLmXKhU9FNesSFvj6gASuWmQd23Ul5omtD)
- Why pre-emptive kernel is better than non pre-emptive kernel?
- Semaphore
- Binary Semaphore/Mutex Locks
- Counting Semaphore
- Imp terms to know
- Busy Waiting
- Spin Lock
- Example of busy waiting & spin lock
- [How to implement Binary Semaphore in real world coding](https://www.geeksforgeeks.org/semaphores-in-process-synchronization/)
- What is Deadlock & Starvation?
- Bounded Buffer, Reader-Writer Problem & Dining Philosopher Problem
- [Follow youtube video (knowledge gate)](https://www.youtube.com/watch?v=YwqexcfbucE&list=PLmXKhU9FNesSFvj6gASuWmQd23Ul5omtD)

Deadlocks

- [What is Deadlock?](https://www.cs.rpi.edu/academics/courses/fall04/os/c10/)
- [Effects of Deadlock?](https://stackoverflow.com/questions/41204406/what-is-effect-of-deadlock-on-other-processes-which-are-not-involve-in-deadlock/41713812)
- Necessary Conditions
- Mutual Exclusion
- Hold & Wait
- No Pre-emption
- Circular Wait
- [Methods for Deadlock handling](https://www.scaler.com/topics/dbms/deadlock-in-dbms/)
- Prevention or Avoidance
- Detection or Recovery
- Banker's Algo
- Ostrich Algo
- Resource Per-emption
- Ignorance

Memory-Management

- Imp Points
- CPU can direct access Registers and Main Memory
- Protection of Memory space is handled by Hardware
- OS loads Base and Limit registers
- Mapping from Logical to Physical address is done by MMU[Memory Management Unit]
- OS memory is categorised into
- for the resident of OS
- user processes
- Logical vs Physical address space
- What is Swapping
- Ex-Priority based Scheduling
- Done by Dispatcher
- [Context Switch](https://www.scaler.com/topics/operating-system/context-switching-in-os/) time in swapping is very high
- OS can't swap process that has pending input/output
- Imp topics to cover
- [Follow youtube videos](https://www.youtube.com/watch?v=YwqexcfbucE&list=PLmXKhU9FNesSFvj6gASuWmQd23Ul5omtD)
- Memory Allocation
- Contiguous Memory Allocation
- Address Translation: Base and limit Register
- Fixed Partitioning
- Variable Partitioning
- Variable Partitioning
- dynamic storage allocation problem
- Best Fit
- Worst Fit
- First Fit
- Internal Fragmentation
- External Fragmentation
- Compaction
- Non-Contiguous Allocation
- Paging
- Segmentation
- Paging
- Page table
- Page no
- Page offset
- Page Table Limit Register (PTLR)
- Segmentation
- Segment Table
- Base Register
- Limit Register
- [Why paging increases the context-switch time?](https://gateoverflow.in/178062/paging-os-galvin-book-page-no-332)
- [Page vs Frame?](https://practice.geeksforgeeks.org/problems/page-and-frames)
- [What is TLB miss?](https://stackoverflow.com/questions/37825859/cache-miss-a-tlb-miss-and-page-fault)

Virtual Memory

- Goal of mem. Mgmt
- To keep multiple processes in memory to allow multi-programming
- [Virtual Memory](https://www.tutorialspoint.com/operating_system/os_virtual_memory.htm)
- What?
- Why?
- Where it is physically located?
- How it is implemented?
- Demand Paging
- Strategy to only load pages when they are needed
- Paging + Swapping
- Advantages
- user can write program for extremely large virtual address space
- [CPU utilisation & throughput] increases & [Response Time, Turn aruond time, TAT] remains same
- Less I/O would be needed to load or swap user programs into memory, so each user program would run faster
- Degree of Multiprogramming increases
- allows file and memory to be shared by 2 or more processes through page sharing
- If it is used carelessely, it can decrease performance
- [Demand Paging](https://www.youtube.com/watch?v=Agi0u5Png_U)
- paging + swapping
- Lazy Swapper
- pager
- page fault
- [Pure Demand Paging](https://practice.geeksforgeeks.org/problems/what-is-pure-demand-paging)
- Swap Space
- Section of hard disk used for implementing Virtual Mem. in swap
- What is Page Fault?
- Page Replacement Algo
- FIFO
- Optimal Page Replacement
- LRU
- What is Frame Rate
- [Most Asked Questions (Thrashing)](https://practice.geeksforgeeks.org/problems/thrashing-in-os)
- What?
- Low CPU Utilisation->Degree of Multiprogramming increases->More Page Fault->Cycle Continues->Thrashing occurs->Page fault occurs tremendously->CPU utilisation decrease sharply
- Cause of Thrashing?
- Solution to Thrashing?
- use priority based replacement algo
- allocate the exact no. of frames that are actually required
- Can we replace physical memory i.e, RAM with virtual memory?
- Is performance of virtual memory and physical memory same?

Storage Management
(optional)

- [Resource 1](https://www.slideshare.net/DeepikaT13/storage-management-in-operating-system)
- [Resource 2](https://www.slideshare.net/arjunk007/secondary-storage-structureoperating-system-concepts)

For College Exams


### 2๏ธโƒฃ Database Management & Design

Tech Gaints: They usually ask only a bit about normalization, ACID properties(imp.) ans SQP queries & interview is done

Start Ups: They do focus on system design a lot ans in between questions on DBMS are frequently asked
So, we need to be 100% prepared for it & best way is to follow the System Design Primer (resource given below)
Questions always revolves around the type of DB, why this DB, why not that DB, how to scale, [SQL vs NoSQL](https://www.interviewbit.com/blog/sql-vs-mysql/), your familiarity level with those DBs, etc

Resources

- [System Design Primer (Database Section)](https://github.com/donnemartin/system-design-primer#database)

Introduction

- [What is Database?](https://www.javatpoint.com/what-is-database)
- [What is DBMS?](https://www.guru99.com/what-is-dbms.html)
- [Why do we need DBMS?](https://www.geeksforgeeks.org/need-for-dbms/)
- [File management system vs DBMS](https://www.javatpoint.com/dbms-vs-files-system)
- [What is Database Admin & it's functions?](https://practice.geeksforgeeks.org/problems/what-are-the-functions-of-a-dba)
- [Database Tier-2/Tier-3 Architecture](https://www.geeksforgeeks.org/difference-between-two-tier-and-three-tier-database-architecture/)
- [Database Language](https://www.geeksforgeeks.org/sql-ddl-dql-dml-dcl-tcl-commands/)
- DCL
- DDL
- DML
- TCL
- [Important Terms](https://whatisdbms.com/instances-schema-and-sub-schema-in-dbms-with-examples/)
- Instance
- Schema
- Sub-Schema
- How DBMS is implemented?)
- [What is Data abstraction in DBMS?](https://afteracademy.com/blog/what-is-data-abstraction-in-dbms-and-what-are-its-three-levels)
- [3 level of Data Abstraction](https://afteracademy.com/blog/what-is-data-abstraction-in-dbms-and-what-are-its-three-levels)
- [What is Referectial Integrity](https://www.tutorialspoint.com/Referential-Integrity-Rule-in-RDBMS)

RDBMS

- [What is RDBMS & how it is stored in memory?](https://www.quora.com/How-does-a-relational-DBMS-internally-store-its-data-In-what-type-of-data-structure-How-does-it-offer-the-rapid-retrieval-without-loading-the-entire-database-into-the-main-memory-I-have-heard-many-DBMS-use-B-trees)
- What is meaning of word "Relational" in RDBMS?
- [Degree of Relation](https://www.relationaldbdesign.com/database-design/module6/three-relationship-types.php)
- 1:1
- 1:M
- M:M
- [Keys](https://www.geeksforgeeks.org/types-of-keys-in-relational-model-candidate-super-primary-alternate-and-foreign/)
- Primary Key
- Foreign Key
- Candidate Key
- Alternate Key
- [Super Key](https://www.scaler.com/topics/super-key-in-dbms/)
- Secondary Key
- [Databse Schema](https://www.tutorialspoint.com/dbms/dbms_data_schemas.htm)
- Physical Databse Schema
- Logical Databse Schema
- [Schema Diagrams](https://www.geeksforgeeks.org/mapping-from-er-model-to-relational-model/)
- [Relational Model](https://www.scaler.com/topics/dbms/relational-model-in-dbms/)
- ER Diagram
- [Relational Operations](https://www.guru99.com/relational-algebra-dbms.html)
- Select
- Project
- Union
- Set Different
- Cartesian Product
- Rename
- SQL
- [What is SQL](https://www.w3schools.com/sql/sql_intro.asp)
- [SQL vs MySQL](https://www.upgrad.com/blog/sql-vs-mysql/)
- [Important Keywords](https://www.educba.com/sql-keywords/)
- [CheatSheet: SQL](https://www.educba.com/cheat-sheet-sql/?source=leftnav)
- [Composite key in SQL](https://www.educba.com/composite-key-in-sql/?source=leftnav)
- [Join & it's types](https://www.geeksforgeeks.org/sql-join-set-1-inner-left-right-and-full-joins/)
- Inner Join
- Left Join
- Right Join
- Full Join
- Self Join
- [What is View](https://www.geeksforgeeks.org/sql-views/)
- [Updating a View](https://www.scaler.com/topics/sql/views-in-sql/)
- [What is trigger](https://www.geeksforgeeks.org/sql-trigger-student-database/)
- [Unique & Primary key in SQL](https://www.geeksforgeeks.org/difference-between-primary-key-and-unique-key/)
- [What is SQL Injection?](https://www.w3schools.com/sql/sql_injection.asp)
- [Delete vs Truncate](https://www.geeksforgeeks.org/difference-between-delete-and-truncate/)
- [SQL Privileges](https://www.geeksforgeeks.org/mysql-grant-revoke-privileges/)
- [What do you mean by Subquery](https://www.tutorialspoint.com/sql/sql-sub-queries.htm)
- [What is difference between clustered and non-clustered indexes?](https://www.guru99.com/clustered-vs-non-clustered-index.html)
- [What is a Cursor?](https://www.geeksforgeeks.org/what-is-cursor-in-sql/)
- Query Emaples
- Write an SQL query to get third maximum salary of an employee from a table named employee_table
- Write a SQL query to find names of employee start with 'A'
- How can you create an empty table from an existing table?
- How to fetch common records from two tables?
- How to fetch alternate records from a table?
- What is command used to fetch first 5 characters of the string?
- Which operator is used in query pattern matching?
- [What is Index in DBMS & it's types](https://www.guru99.com/indexing-in-database.html)

Relational Database Design

- [Features of Good Relationsl Design](https://www.microfocus.com/documentation/xdbc/win20/GUID-82D58958-278F-482C-B76F-AAF94A28DCCF.html)
- [What is Functional Dependency?](https://www.guru99.com/dbms-functional-dependency.html)
- Trivial
- Non-Trivial
- Fully-Functional Dependency
- Partial
- Transitive
- [What is Normalisation?](https://www.guru99.com/database-normalization.html)
- [Purpose of Normalisation?](https://medium.com/@bbrumm/what-is-the-purpose-of-database-normalisation-8070b2948d70)
- [What are 3 anomalies resolved by normalisation?](https://dba.stackexchange.com/questions/194631/how-does-normalization-fix-the-three-types-of-update-anomalies)
- Types of Normalisation? (Purpose and Steps to Convert?)
- [1NF](https://www.geeksforgeeks.org/first-normal-form-1nf/)
- [2NF](https://www.geeksforgeeks.org/second-normal-form-2nf/)
- [3NF](https://www.geeksforgeeks.org/third-normal-form-3nf/)
- [BCNF](https://www.geeksforgeeks.org/boyce-codd-normal-form-bcnf/)

Storage and File Structure

- [Storage System](https://www.tutorialspoint.com/dbms/dbms_storage_system.htm)
- [File Structure](https://www.tutorialspoint.com/dbms/dbms_file_structure.htm)

Transaction Management

- [What is a transaction?](https://www.tutorialspoint.com/dbms/dbms_transaction.htm)
- [State of Transaction](https://www.gatevidyalay.com/transaction-states-in-dbms/)
- [IMP Terms](https://www.studytonight.com/dbms/tcl-command.php)
- Commit
- Rollback
- Savepoint
- [ACID Properties](https://www.geeksforgeeks.org/acid-properties-in-dbms/)
- [How to Implement Atomicity in Trsactions?](https://ashutoshtripathi.com/2017/11/27/implementation-of-atomicity-and-durability-using-shadow-copy/)
- Problem of Concurrent Transaction?
- Lost Update
- Dirty Read
- Unpredictable Read
- Incorrect Summary
- Advantages
- Reduced Wai Time
- High Throughput
- High resource utilisation
- [Concurrent Trnsaction?](https://www.geeksforgeeks.org/concurrency-problems-in-dbms-transactions/)
- Schedule
- [Type](https://www.geeksforgeeks.org/types-of-schedules-in-dbms/)
- Serial
- Complete
- Recoverable
- Cascadeless
- Strict
- [What is Conflict Operation?](https://www.javatpoint.com/dbms-conflict-serializable-schedule)
- How to find wether Schedules are conflicting or not
- [Concurrency Control](https://www.tutorialspoint.com/dbms/dbms_concurrency_control.htm)
- Purpose?
- Shared Lock
- Exclusive Lock
- 2-Phase Locking PRotocal (important)

Deadlock

- [What is Deadlock?](https://www.geeksforgeeks.org/deadlock-in-dbms/)
- Examples?
- Deadlock Detection
- [How to prevent Deadlock](https://www.scaler.com/topics/operating-system/deadlock-prevention-in-operating-system/) (already in OS Topics)
- Mutual Exclusion
- Hold and Wait
- No PreEmption
- Circular Wait
- [Other Techniques to prevent Deadlock](https://www.geeksforgeeks.org/introduction-to-timestamp-and-deadlock-prevention-schemes-in-dbms/)
- use Timestamp
- Wait-Die Scheme
- Wound-Wait Scheme
- Timeout Based Scheme
- [What is Starvation and it's reasons?](https://www.geeksforgeeks.org/starvation-in-dbms/)
- [Deadlock recovery](https://www.geeksforgeeks.org/recovery-from-deadlock-in-operating-system/)
- Selection of Victim
- Roll Back
- Starvation

Must Do (for system Design Interview)

- SQL vs NoSQL
- [Resources to Follow](https://www.mongodb.com/nosql-explained/nosql-vs-sql)
- [Which Modern Databse is Right for your use case?](https://www.xplenty.com/blog/which-database/)
- [Scaling Patterns](https://www.freecodecamp.org/news/understanding-database-scaling-patterns/)
- [CAP Theorem](https://www.analyticsvidhya.com/blog/2020/08/a-beginners-guide-to-cap-theorem-for-data-engineering/)
- [Scaling RDBMS and NoSQL](https://betterprogramming.pub/scaling-sql-nosql-databases-1121b24506df)
- [What DB to use](http://jlamere.github.io/databases/)
- [In-memory Database](https://medium.com/@denisanikin/what-an-in-memory-database-is-and-how-it-persists-data-efficiently-f43868cff4c1)
- [Graph Database](https://neo4j.com/developer/graph-database/)
- [In-depth Indexing (optional)](https://www.freecodecamp.org/news/database-indexing-at-a-glance-bb50809d48bd/)
- [Master Slave](https://www.datadriveninvestor.com/2020/05/28/the-master-slave-database-concept-for-beginners/)
- [Master Slave vs Master Master](https://intellipaat.com/community/6605/master-master-vs-master-slave-database-architecture)
- [ACID vs BASE](https://www.dataversity.net/acid-vs-base-the-shifting-ph-of-database-transaction-processing/)


### 3๏ธโƒฃ Object Oriented Programming

What to expect from these resources,

- To the point for your Interview Preparation
- Sufficient for Academics

Resources

- [C++](https://www.javatpoint.com/cpp-oops-concepts)
- [Java](https://www.javatpoint.com/java-oops-concepts)
- [Python](https://www.scaler.com/topics/oops-concepts-in-python/)
- [OOPs Concepts](https://www.scaler.com/topics/what-is-object-oriented-programming-oop/)

Overview

- [What is Object Oriented Programming?](https://www.w3schools.com/cpp/cpp_oop.asp)
- Object oriented programming is about creating objects that contain both data and functions
- [How Object Oriented Programming is related to the real world?](https://fdhgjhjhukj.medium.com/object-oriented-programming-with-real-world-example-63f69f917d62)
- Example
- [Why to study OOPS?](https://www.c-sharpcorner.com/forums/why-we-need-oops-in-programming-language)
- [Limitation of OOPS](https://resources.saylor.org/wwwresources/archived/site/wp-content/uploads/2013/02/CS101-2.1.2-AdvantagesDisadvantagesOfOOP-FINAL.pdf)
- When we say that 'X' language is object oriented programming language, then what does we mean by that ?
- Your Homework

Pillars of OOPS

- [What is a Class?](https://www.guru99.com/java-oops-class-objects.html)
- [Difference between Structure & Class](https://www.geeksforgeeks.org/structure-vs-class-in-cpp/)
- [Similarity between Structure & Class](https://practice.geeksforgeeks.org/problems/what-are-similarities-between-a-class-and-a-structure)
- When to use Structure over class?
- [Access Modifiers](https://www.javatpoint.com/access-modifiers)
- Public
- Private
- Protected
- Friend
- Protected Friend
- [Member Function](https://www.studytonight.com/cpp/types-of-member-function.php)
- Inside Class Function
- Outside Class Function
- [What is Constructor?](https://www.geeksforgeeks.org/constructors-c/)
- Default Constructor
- Parameterised Constructor
- Copy Constructor
- [What is Deep/Shallow Copy?](https://www.geeksforgeeks.org/difference-between-shallow-and-deep-copy-of-a-class/)
- [Copy Constructor vs Assignment Operator](https://www.geeksforgeeks.org/copy-constructor-vs-assignment-operator-in-c/)
- [Virtual Constructor](https://www.tutorialspoint.com/virtual-constructor-in-cplusplus)
- [Virtual Copy Constructor](https://www.tutorialspoint.com/virtual-copy-constructor-in-cplusplus)
- [How constructors are different from a normal member function?](https://iq.opengenus.org/constructor-cpp/)
- [Can we have more than one constructor in a class?](https://stackoverflow.com/questions/37517522/why-would-you-need-to-use-more-than-one-constructor)
- [Constructor Overloading](https://www.scaler.com/topics/constructor-overloading-in-java/)
- [Destructor](https://www.geeksforgeeks.org/destructors-c/)
- [Private Destructor](https://www.geeksforgeeks.org/private-destructor/)
- [Virtual Destructor](https://www.geeksforgeeks.org/virtual-destructor/)
- [Pure Virtual Destructor](https://www.geeksforgeeks.org/pure-virtual-destructor-c/)
- [How destructors are different from a normal member function?](https://www.tutorialspoint.com/destructors-in-cplusplus)
- [Can there be more than one destructor in a class?](https://stackoverflow.com/questions/21934810/why-a-class-has-only-one-destructor/21934951)
- [When do we need to write a user-defined destructor?](https://stackoverflow.com/questions/22491174/when-do-we-need-to-define-destructors)
- Can a destructor be virtual?
- [When to use it?](https://stackoverflow.com/questions/461203/when-to-use-virtual-destructors)
- What is an Object?
- [Class vs Object](https://www.javatpoint.com/difference-between-object-and-class)
- [Real world analogy of Class and Object?](https://www.c-sharpcorner.com/blogs/real-life-examples-of-object-oriented-programming1)
- Important Keywords
- [Static](https://www.youth4work.com/Talent/Core-Java/Forum/119567-wat-is-the-use-of-a-static-keyword?yFast=On)
- [Virtual](https://www.codeproject.com/Questions/270054/why-virtual-keyword-is-used)
- [Abstract](https://www.tutorialspoint.com/abstract-keyword-in-Java)
- [Final](https://www.javatpoint.com/final-keyword)
- [Explicit](https://www.geeksforgeeks.org/g-fact-93/)
- [this](https://www.javatpoint.com/this-keyword)
- [new](https://www.javatpoint.com/new-keyword-in-java)
- [const](https://stackoverflow.com/questions/7428358/why-const-keyword-is-not-used-in-java)
- [super](https://www.javatpoint.com/super-keyword)
- Features of OOPS
- [Polymorphism](https://www.scaler.com/topics/java/polymorphism-in-java/)
- [What?](https://www.javatpoint.com/runtime-polymorphism-in-java)
- [Need?](https://stackoverflow.com/questions/11064409/why-to-use-polymorphism)
- Categorisation
- [Function/Operator Overloading](https://www.javatpoint.com/cpp-overloading)
- [Compiletime Polymorphism](https://www.dineshonjava.com/compile-time-polymorphism-in-java/)
- [What function can't be overloaded in C++?](https://www.geeksforgeeks.org/function-overloading-in-c/)
- [What are all operators that can't be overloaded?](https://www.tutorialspoint.com/operators-that-cannot-be-overloaded-in-cplusplus)
- [Function Overriding](https://www.javatpoint.com/runtime-polymorphism-in-java)
- Runtime Polymorphism
- [Virtual Function](https://www.javatpoint.com/cpp-virtual-function)
- [Virtual Class](https://www.geeksforgeeks.org/virtual-base-class-in-c/)
- [Derived Class](https://www.techopedia.com/definition/3780/derived-class)
- [Can virtual function be set private?](https://www.geeksforgeeks.org/can-virtual-functions-be-private-in-c/)
- [Inline Virtual Function](https://stackoverflow.com/questions/733737/are-inline-virtual-functions-really-a-non-sense)
- [Abstract Class](https://www.javatpoint.com/abstract-class-in-java)
- [Pure Virtual Function](https://www.geeksforgeeks.org/pure-virtual-functions-and-abstract-classes/)
- [Pure Virtual Destructor](https://stackoverflow.com/questions/1219607/why-do-we-need-a-pure-virtual-destructor-in-c)
- [Inheritance](https://www.scaler.com/topics/java/inheritance-in-java/)
- [What is Inheritance?](https://www.javatpoint.com/inheritance-in-java)
- Sub Class
- Super Class
- Reusability
- [Why/Need of Inheritance?](https://www.youth4work.com/Talent/Core-Java/Forum/121637-what-is-the-need-of-inheritance?yFast=On)
- [Can Object Oriented Programming exist without Inheritance?](https://yourbasic.org/golang/inheritance-object-oriented/)
- [Types of Inheritance](https://www.studytonight.com/cpp/types-of-inheritance.php)
- Single Inheritance
- Multiple Inheritance
- Hierarchical Inheritance
- Multilevel Inheritance
- Hybrid/Virtual Inheritance
- [Real Life Example of Multiple Inheritance](https://www.quora.com/What-are-the-real-world-examples-of-multiple-inheritance-in-C++)
- [What are the limitations of Inheritance?](https://practice.geeksforgeeks.org/problems/what-are-advantages-and-disadvantages-of-using-inheritance)
- [What is Sealed Modifier?](https://www.c-sharpcorner.com/interview-question/what-is-sealed-modifiers)
- [How can we call the base method without creating an instance?](https://stackoverflow.com/questions/10173827/how-to-invoke-parent-class-method-without-creating-object-of-it)
- [What is the difference between new and override?](https://stackoverflow.com/questions/6576206/what-is-the-difference-between-the-override-and-new-keywords-in-c)
- [Why Java does not support Multiple Inheritance?](https://stackoverflow.com/questions/2515477/why-is-there-no-multiple-inheritance-in-java-but-implementing-multiple-interfac)
- [What is diamond problem in case of multiple inheritance in Java?](https://www.tutorialspoint.com/what-is-diamond-problem-in-case-of-multiple-inheritance-in-java)
- If a class A inherits from class B, then what all is inherited from Parent class?
- Explore Every Combination
- [Object Slicing](https://stackoverflow.com/questions/274626/what-is-object-slicing)
- [How to hide base class methods/functions?](https://stackoverflow.com/questions/2589146/overload-and-hide-methods-in-java)
- Friend Function/Class.Inline Function
- Local Class/Nested Class.Simulating Final Class
- [Does Overloading works with Inheritance?](https://www.geeksforgeeks.org/does-overloading-work-with-inheritance/)
- [Difference between polymorphism and inheritance?](https://www.geeksforgeeks.org/difference-between-inheritance-and-polymorphism/)
- [Generalisation vs Aggregation vs Composition](https://javapapers.com/oops/association-aggregation-composition-abstraction-generalization-realization-dependency/)
- [Encapsulation](https://www.scaler.com/topics/java/encapsulation-in-java/)
- [What?](https://www.javatpoint.com/encapsulation)
- Combo of Data-hiding & Abstraction
- [Advantages/Needs?](https://www.javatpoint.com/q/7216/use-of-encapsulation-in-java)
- [How to achieve?](https://www.quora.com/How-do-we-achieve-encapsulation-in-java)
- [Code/implementation Example](https://beginnersbook.com/2013/05/encapsulation-in-java/)
- [Real World Example](https://www.sitesbay.com/java/java-encapsulation)
- [Difference Between Abstraction and Encapsulation](https://www.scaler.com/topics/difference-between-encapsulation-and-abstraction/)
- Abstraction
- [What?](https://www.scaler.com/topics/java/abstraction-in-java/)
- Implementation hiding
- When to use?
- [How to achieve?](https://www.javatpoint.com/how-to-achieve-abstraction-in-java)
- C++
- Access Specifiers
- [header Files](https://www.scaler.com/topics/cpp/cpp-header-files/)
- Java
- [Interfaces](https://www.scaler.com/topics/java/interface-in-java/)
- [Abstract Classes](https://www.scaler.com/topics/java/abstract-class-in-java/)
- [Encapsulation vs Abstraction](https://stackoverflow.com/questions/12072980/encapsulation-vs-abstraction-real-world-example)
- Example
- [What are the differences between interfaces and abstract classes?](https://www.javatpoint.com/difference-between-abstract-class-and-interface)
- [Dynamic Binding](https://www.javatpoint.com/static-binding-and-dynamic-binding)
- [Message Passing](https://www.panonit.com/blog/overview-message-passing-object-oriented-programming)
- Object-oriented design interview questions
- [Design a hash map](https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/hash_table/hash_map.ipynb)
- [Design a LRU cache](https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/lru_cache/lru_cache.ipynb)
- [Design a call center](https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/call_center/call_center.ipynb)
- [Design a deck of cards](https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/deck_of_cards/deck_of_cards.ipynb)
- [Design a parking lot](https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/parking_lot/parking_lot.ipynb)
- [Design an online chat](https://github.com/donnemartin/system-design-primer/blob/master/solutions/object_oriented_design/online_chat/online_chat.ipynb)

Misc

- [C vs C++ vs Java](https://www.edureka.co/blog/difference-between-c-c-and-java)
- [Difference between procedural programming and OOPs?](https://www.geeksforgeeks.org/differences-between-procedural-and-object-oriented-programming/)
- [Why Java is not a Purely Object Oriented Language?](https://www.geeksforgeeks.org/java-not-purely-object-oriented-language/)
- [Is an array a primitive type or an object in Java?](https://www.geeksforgeeks.org/array-primitive-type-object-java/)
- [What is early and late binding?](https://stackoverflow.com/questions/10580/what-is-the-difference-between-early-and-late-binding)
- [What is the default access modifier in a calss?](https://stackoverflow.com/questions/3499572/what-is-the-default-access-modifier-of-a-class)
- [How many instances can be created for an abstract class?](https://www.quora.com/Can-we-create-instance-to-abstract-class)
- [Define Garbage collection? How does it works](https://stackify.com/what-is-java-garbage-collection/)
- [Define manipulators](https://www.geeksforgeeks.org/manipulators-in-c-with-examples/)
- [What fo you mean by finally block?](https://www.javatpoint.com/finally-block-in-exception-handling)
- [What is a final variable?](https://www.educative.io/edpresso/what-is-the-final-keyword-in-java)
- [What is meant by an exception?](http://www.iitk.ac.in/esc101/05Aug/tutorial/essential/exceptions/definition.html)
- [Is an error basically the same as an exception?](https://www.quora.com/What-is-the-difference-between-error-and-an-exception)
- [Exception handling?](https://www.scaler.com/topics/java/exception-handling-in-java/)
- [try catch](https://beginnersbook.com/2013/04/try-catch-in-java/)
- [What is the method 'finalize' used for?](https://www.javatpoint.com/java-object-finalize-method)
- [What is a token?](https://www.geeksforgeeks.org/cc-tokens/)
- [What are the three arguments of a ternary operator?](https://www.freecodecamp.org/news/c-ternary-operator/)
- [Describe the concept of enum](https://www.geeksforgeeks.org/enumeration-enum-c/)
- [Basic understanding of Design Patterns](https://www.javatpoint.com/singleton-design-pattern-in-java)
- Is it possible for a class to inherit the constructor of it's base class?
- [When should I use a struct instead of a class?](https://stackoverflow.com/questions/85553/when-should-i-use-a-struct-instead-of-a-class)
- [Cohesion vs Coupling](https://stackoverflow.com/questions/3085285/difference-between-cohesion-and-coupling)


### 4๏ธโƒฃ Computer Networks

Overview

- Basics
- [What is Computer Networking](https://www.cisco.com/c/en_in/solutions/enterprise-networks/what-is-computer-networking.html)
- Basic Terms
- [Client](https://learntomato.flashrouters.com/what-is-a-client-what-is-a-server-what-is-a-host/)
- [Server](https://learntomato.flashrouters.com/what-is-a-client-what-is-a-server-what-is-a-host/)
- [Peer](https://softwareengineering.stackexchange.com/questions/274116/what-is-a-peer-in-computer-network)
- [Host](https://learntomato.flashrouters.com/what-is-a-client-what-is-a-server-what-is-a-host/)
- [Bandwidth](https://searchnetworking.techtarget.com/definition/bandwidth)
- [Jitter](https://www.ringcentral.com/us/en/blog/what-is-jitter/)
- [Packet](https://www.cloudflare.com/en-in/learning/network-layer/what-is-a-packet/)
- [Frame](https://www.techopedia.com/definition/27175/frame-networking)
- [Local Host](https://www.geeksforgeeks.org/what-is-local-host/)
- [Bit Rate](https://www.khanacademy.org/computing/computers-and-internet/xcae6f4a7ff015e7d:the-internet/xcae6f4a7ff015e7d:connecting-networks/a/bit-rate-bandwidth-and-latency)
- [Noise](https://tutsmaster.org/what-is-noise-types-of-noises-in-network/)
- [Attenuation](https://www.comptia.org/content/guides/what-is-attenuation#:~:text=Definition%20of%20Attenuation%20in%20Networking,to%20become%20distorted%20or%20indiscernible.&text=Radio%20signals)
- [Distortion](https://www.computerhope.com/jargon/d/distorti.htm#:~:text=Updated%3A%2010%2F04%2F2017,cables%20such%20as%20network%20cables.)
- What is Web?
- [Difference between Web vs Internet](https://www.geeksforgeeks.org/whats-difference-internet-web/#:~:text=The%20Internet%20is%20a%20global,on%20top%20of%20that%20infrastructure.)
- [Type of transmission Media](https://www.geeksforgeeks.org/types-transmission-media/)
- [Computer Network Devices](https://www.certiology.com/computing/computer-networking/network-devices.html)
- [Unicast, BroadCast and MultiCast](https://www.geeksforgeeks.org/difference-between-unicast-broadcast-and-multicast-in-computer-network/)
- [Networking Topology](https://www.guru99.com/type-of-network-topology.html)
- Mesh
- Star
- Bus
- Ring
- Tree
- [LAN vs MAN vs WAN](https://www.geeksforgeeks.org/difference-between-lan-man-and-wan/)

OSI Model

- [What](https://www.forcepoint.com/cyber-edu/osi-model)
- Different Layers
- PDNTSPA
- Physicsl
- Data Link
- [What is Ethernet?](https://www.linksys.com/us/r/resource-center/basics/whats-ethernet/)
- [Extranet vs Intranet vs Internet](https://www.geeksforgeeks.org/difference-between-internet-intranet-and-extranet/)
- [Virtual ckt vs Datagram Network](https://www.geeksforgeeks.org/differences-between-virtual-circuits-and-datagram-networks/)
- [Switch & it's types](https://www.geeksforgeeks.org/types-of-switches-in-computer-network/)
- [What is Virtual LAN?](https://www.guru99.com/vlan-definition-types-advantages.html)
- [Basics of Wifi](https://www.geeksforgeeks.org/basics-of-wi-fi/)
- Network
- [IP Addressing?](https://www.kaspersky.com/resource-center/definitions/what-is-an-ip-address)
- [IPv4 vs IPv6](https://www.guru99.com/difference-ipv4-vs-ipv6.html)
- [Supernet](https://www.geeksforgeeks.org/supernetting-in-network-layer/)
- [Types of Routing](https://www.geeksforgeeks.org/types-of-routing/)
- Static
- Default
- Dynamic
- [Network Address Translation](https://www.geeksforgeeks.org/network-address-translation-nat/)
- [WPA vs WPS](https://www.quora.com/What-is-the-difference-between-WPS-and-WPA-in-WiFi)
- [LiFi vs WiFi](https://www.geeksforgeeks.org/difference-between-lifi-and-wifi/)
- [What is ACL[AccessList]?](https://www.geeksforgeeks.org/access-lists-acl/)
- [AAA in networking (imp)](https://www.geeksforgeeks.org/computer-network-aaa-authentication-authorization-and-accounting/)
- [SONET](https://www.geeksforgeeks.org/synchronous-optical-network-sonet/)
- Transport
- [TCP Connection Setup](https://www.geeksforgeeks.org/tcp-connection-establishment/)
- [3-way Handshake](https://www.geeksforgeeks.org/tcp-3-way-handshake-process/)
- [UDP](https://www.geeksforgeeks.org/user-datagram-protocol-udp/)
- [Peer2Peer Sharing](https://www.geeksforgeeks.org/p2ppeer-to-peer-file-sharing/)
- [Congestion in Computer Networks](https://www.geeksforgeeks.org/congestion-control-in-computer-networks/)
- [Error Control](https://www.geeksforgeeks.org/error-control-in-tcp/)
- Session
- Presentation
- Application
- [Protocols in Application Layer](https://www.geeksforgeeks.org/protocols-application-layer/)
- [DNS](https://www.geeksforgeeks.org/domain-name-system-dns-in-application-layer/)
- [Why does DNS uses UDP and not TCP?](https://www.geeksforgeeks.org/why-does-dns-use-udp-and-not-tcp/)
- [Address Resolution in DNS](https://www.geeksforgeeks.org/address-resolution-in-dns-domain-name-server/)
- [DNS Spoofing or DNS Cache poisoning](https://www.geeksforgeeks.org/dns-spoofing-or-dns-cache-poisoning/)
- [Types of DNS Attacks](https://www.geeksforgeeks.org/types-of-dns-attacks-and-tactics-for-security/)
- [Difference in http and https](https://www.geeksforgeeks.org/difference-between-http-and-https/)
- [How DHCP server dynamically assigns IP addresses to a host](https://www.geeksforgeeks.org/how-dhcp-server-dynamically-assigns-ip-address-to-a-host/)
- [How a Packet travels? (V.V.V.Imp)](https://www.practicalnetworking.net/series/packet-traveling/packet-traveling/)

Misc & System Design

- [Common Networking Commands:](https://www.educba.com/networking-commands/)
- ping
- netstat
- tracert
- ipconfig
- nslookup
- route
- pathping
- netDiag
- hostname
- arp
- [Difference in http and https](https://www.geeksforgeeks.org/difference-between-http-and-https/)
- [What is API Gateway?](https://www.youtube.com/watch?v=hYgP0cBORVg)
- [SSL/TLS](https://www.ssl.com/faqs/faq-what-is-ssl/)
- [Reverse Proxy?](https://www.cloudflare.com/en-gb/learning/cdn/glossary/reverse-proxy/)
- [Load Balancer](https://www.nginx.com/resources/glossary/load-balancing/)
- [ARP, Address Resolution Protocol](https://www.practicalnetworking.net/series/arp/traditional-arp/)
- [Horizontal vs Vertical Scaling](https://www.redswitches.com/blog/difference-between-horizontal-vertical-scaling/)
- [Caching & How does a website is cached](https://www.cloudflare.com/en-in/learning/cdn/what-is-caching/)
- [What is VIP in Computer Networks](https://learningnetwork.cisco.com/s/question/0D53i00000KsxEZ/what-is-a-vip-virtual-ip)
- [REST API vs HTTP API](https://www.baeldung.com/cs/rest-vs-http)
- [What is a container in computer networks](https://www.vmware.com/topics/glossary/content/container-networking#:~:text=Container%20Networking%20is%20an%20emerging,concept%20to%20a%20virtual%20machine.&text=All%20applications%20inside%20the%20container,available%20inside%20the%20container%20only.)
- [Containerisation vs Virtualisation](https://www.burwood.com/blog-archive/containerization-vs-virtualization#:~:text=Virtualization%20enables%20you%20to%20run,single%20virtual%20machine%20or%20server.)
- [Performance vs Scalability](https://www.dynatrace.com/news/blog/performance-vs-scalability/#:~:text=Performance%20refers%20to%20the%20capability,a%20certain%20amount%20of%20data.&text=Scalability%20referes%20to%20the%20characteristic,performance%20by%20adding%20additional%20ressources.)
- [Latency vs Throughput](https://www.comparitech.com/net-admin/latency-vs-throughput/#:~:text=Latency%20indicates%20how%20long%20it,a%20specific%20period%20of%20time.)
- [2G vs 3G vs 4G vs 5G](http://net-informations.com/q/diff/generations.html)
- [How a VPN works?](https://www.kaspersky.com/resource-center/definitions/what-is-a-vpn)
- [Gateway vs Router](https://www.geeksforgeeks.org/difference-between-router-and-gateway/)
- [NIC and MAC Address](https://securityxploded.com/basics-nic-mac-and-arp-tutorial.php)
- [Public vs Private IP Address](https://www.geeksforgeeks.org/difference-between-private-and-public-ip-addresses/)
- [What is Multiplexing](https://www.javatpoint.com/multiplexing-in-computer-network)
- [Modem vs Router](https://www.youtube.com/watch?v=1-gDIlH8-fs)
- [How Bluetooth Works](https://www.tutorialspoint.com/wireless_communication/wireless_communication_bluetooth.htm)
- [How Hotspot Works](https://www.netspotapp.com/hardware/wifi-hotspot/)
- [How Email Works](https://www.tutorialspoint.com/internet_technologies/e_mail_working.htm#:~:text=Email%20working%20follows%20the%20client%20server%20approach.&text=Person%20A%20composes%20the%20messages,area%20designated%20for%20person%20B.)
- [How file transfer works](https://www.geeksforgeeks.org/file-transfer-protocol-ftp-in-application-layer/)
- [How ATM works](https://www.geeksforgeeks.org/asynchronous-transfer-mode-atm-in-computer-network/)

Security

- [What is Firewall?](https://www.checkpoint.com/cyber-hub/network-security/what-is-firewall/)
- [Types of Firewall](https://www.javatpoint.com/types-of-firewall)
- [Possible attacks on Firewall](https://www.geeksforgeeks.org/types-of-firewall-and-possible-attacks/)
- [Basic Network Attacks](https://www.geeksforgeeks.org/basic-network-attacks-in-computer-network/)
- [Denial of Service and Prevention](https://www.geeksforgeeks.org/deniel-service-prevention/)
- [Digital Signature & Certificates](https://www.geeksforgeeks.org/digital-signatures-certificates/)
- Terms to know:
- [Cryptography](https://www.csoonline.com/article/3583976/what-is-cryptography-how-algorithms-keep-information-secret-and-safe.html)
- [Symmetrics Key](https://www.cryptomathic.com/news-events/blog/symmetric-key-encryption-why-where-and-how-its-used-in-banking#:~:text=Symmetric%20encryption%20is%20a%20type,used%20in%20the%20decryption%20process.)
- [Assymetrics Key](https://cheapsslsecurity.com/blog/what-is-asymmetric-encryption-understand-with-simple-examples/)
- [Hashing](https://www.thesslstore.com/blog/difference-encryption-hashing-salting/)
- [Cryptanalysis](https://www.geeksforgeeks.org/cryptanalysis-and-types-of-attacks/)
- AES/DES/RSA/MD5 hashing
- [Active & Passive attack in Infosec](https://www.geeksforgeeks.org/active-and-passive-attacks-in-information-security/)
- [Types of Email Attacks](https://www.geeksforgeeks.org/types-of-email-attacks/)


## ๐Ÿ† Other Notes and Resources

#### ๐Ÿ”–Best book for Coding Interviews - [Cracking-The-Coding-Interview](https://mega.nz/folder/KhpUBLLR#cKmpMsctk9hV_p0hUaZG_Q) | [Link 2](https://mega.nz/file/JJQRXQYR#b0EeBTHvGcPnvD-j8kuItzmgCnh1kZj32DDGIVQpFv0)

##### Some other helpful books

- [CSES Competitive Programming Handbook](https://mega.nz/file/ZQIX1IjY#6S8FY39nLdRScbEL9uL0J_2wGWkvmYCQeibC5UrU81k)
- [Problem Solving Strategies](https://mega.nz/file/sER3mQoI#eCsgS89O3voBhcSAFmZNdZTvQREZ3o5cQrWQNyFZuNY)
- [Programming Challenges](https://mega.nz/file/lAJnxaqD#srD7jyEPzm9X0LlvlDtkFzzfoid_dpeeYXFFCeTEU-0)
- [Concrete Maths](https://mega.nz/file/NAYTAAhA#Kow_caWhfOdb3R-P1YrY6j3Ap7mckktfNLKBZWcpxh4)
- [Algorithms Design Strategies](https://mega.nz/file/9EQFmIgR#h-fZvrDN2bJN7Br-13m9NnlkfEhxzMxz0yzLAGqsfLY)
- [The Algorithms Design Manual](https://mega.nz/file/pJpHjKoK#LpZe3G-NnoEBKjBgjYXhH2nRCWpsaLKJfkpNy5EqGX0)

Urls for other Notes, and Reading Resources picked from different editorials.

View Resources/Articles

- [๐Ÿ“˜ CPP Data Structures, Algorithms, and STL Sheet](./Resources/Articles/CPP-STL.md)
- [๐Ÿ“˜ CPP Syntax Cheet Sheet](./Resources/Articles/CPP-SYNTAX.md)
- [๐Ÿ“˜ GitHub Sheet](./Resources/Articles/GitCheatsheet.md)
- [๐Ÿ“˜ Data Structures and Algorithms](https://www.scaler.com/topics/data-structures/)

Last Minute Notes

- [๐Ÿ“™ Operating System (apni kaksha notes)](https://drive.google.com/file/d/1B_kmekdghu-sO8-eXZ1kc4Xx_YtB8BPM/view)
- [๐Ÿ“™ Last Minute Notes โ€“ Operating Systems](https://www.geeksforgeeks.org/last-minute-notes-operating-systems/)
- [๐Ÿ“™ Last Minute Notes โ€“ Computer Networks](https://www.geeksforgeeks.org/last-minute-notes-computer-network/)
- [๐Ÿ“™ Last Minute Notes โ€“ DBMS](https://www.geeksforgeeks.org/last-minute-notes-dbms/)
- [๐Ÿ“™ Last Minute Notes โ€“ Algorithms](https://www.geeksforgeeks.org/lmns-algorithms-gq/)
- [๐Ÿ“™ Last Minute Notes โ€“ Data Structure](https://www.geeksforgeeks.org/lmns-gq/lmns-data-structure-gq/)
- [๐Ÿ“™ Last Minute Notes โ€“ Git](https://towardsdatascience.com/a-git-cheatsheet-that-all-coders-need-bf8ad4d91576)

Notes/Question/Explanations

- [๐Ÿ“’ Segment Tree | HackerEarth](https://www.hackerearth.com/practice/data-structures/advanced-data-structures/segment-trees/tutorial/)
- [๐Ÿ“• Dynamic Programming | HackerEarth)](https://www.hackerearth.com/practice/algorithms/dynamic-programming/introduction-to-dynamic-programming-1/tutorial/)
- [๐Ÿ“’ Disjoint Set Union (Union Find) | HackerEarth](https://www.hackerearth.com/practice/notes/disjoint-set-union-union-find/)
- [๐Ÿ“• Ternary Search | HackerEarth](https://www.hackerearth.com/practice/algorithms/searching/ternary-search/tutorial/)
- [๐Ÿ“’ Binary Search for Beginners | Leetcode](https://leetcode.com/discuss/general-discussion/691825/Binary-Search-for-Beginners-Problems-or-Patterns-or-Sample-solutions)


## ๐Ÿ† Sources

Other coding websites, [hackerearth](https://www.hackerearth.com/), [interviewbit](https://www.interviewbit.com/),[gfg](https://www.geeksforgeeks.org/), [leetcode](https://leetcode.com/), [codechef](https://www.codechef.com/), [codeforces](https://codeforces.com/), [CSES Problem Set](https://cses.fi/problemset/), [Scaler](https://www.scaler.com/topics/)
Youtube channels, [love babbar](https://www.youtube.com/channel/UCQHLxxBFrbfdrk1jF0moTpw), [take you forward](https://www.youtube.com/c/takeUforward),

## ๐Ÿ† Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

### :handshake: Our Contributors

Click to view!


## ๐Ÿ† License

Distributed under the MIT License. See `LICENSE` for more information.

## ๐Ÿ† Contact

Project Link: [https://github.com/sachuverma/DataStructures-Algorithms](https://github.com/sachuverma/DataStructures-Algorithms)
Sachin Verma : [[email protected]](sachinverma53121.gmail.com)

Drop a โญ if you like my work๐Ÿ˜„

[contributors-sachu]: https://img.shields.io/github/contributors/sachuverma/DataStructures-Algorithms.svg?style=flat-square
[contributors-url]: https://github.com/sachuverma/DataStructures-Algorithms/graphs/contributors
[forks-sachu]: https://img.shields.io/github/forks/sachuverma/DataStructures-Algorithms.svg?style=flat-square
[forks-url]: https://github.com/sachuverma/DataStructures-Algorithms/network/members
[stars-sachu]: https://img.shields.io/github/stars/sachuverma/DataStructures-Algorithms.svg?style=flat-square
[stars-url]: https://github.com/sachuverma/DataStructures-Algorithms/stargazers
[issues-sachu]: https://img.shields.io/github/issues/sachuverma/DataStructures-Algorithms.svg?style=flat-square
[issues-url]: https://github.com/sachuverma/DataStructures-Algorithms/issues
[license-sachu]: https://img.shields.io/github/license/sachuverma/DataStructures-Algorithms.svg?style=flat-square
[license-url]: https://github.com/sachuverma/DataStructures-Algorithms/blob/master/LICENSE
[linkedin-sachu]: https://img.shields.io/badge/LinkedIn--yellow?style=flat-square&logo=linkedin
[linkedin-url]: https://www.linkedin.com/in/sachuverma/
[portfolio-sachu]: https://img.shields.io/badge/Portfolio--red?style=flat-square&logo=clickup
[portfolio-url]: https://sachin-verma.netlify.app/