This repository contains the basic fundamental concepts of computer science and data structure & algorithms.
Some of topics are big and will take more than a day to learn, and I don't want to learn it in a hurry and under pressure, cuz that would have ruined the whole purpose and joy of learning. Also I won't be covered all topics, so below is the list of topics I think it's important for frontend developers to know.:
The resources I will be using to learn are:
Main language I will be using is JavaScript, but I will be using Python for some topics.
Topics covered:
- Binary Numbers
- Hexadecimal
Topics covered:
- ASCII and Unicode
- Data Compression
- Binary and Denary Prefixes
- Calculating Bit Depths
- Calculating File Sizes
- Introduction to networking
- TCP/IP Model Stacks & Layers
- Types of Networks - LAN, WAN, PAN
- Network Topologies
- Client Server vs Peer to Peer
- Network Speeds
- Network Protocols
- Internet vs WWW
- IP v4, IP v6 & MAC Addresses
- URLS, DNS & Address resolution
- Network validation & authentication
- Viruses
- Malware
- Phishing
- DDOS Attacks
- Brute force Attacks
- SQL Injection
- Social Engineering
- Protection Network
- Algorithm
- Decomposition
- Flowcharts
- Pseudocode, Program code & written descriptions
- Memory
- Stack
- Queue
- Linked List
- Hash Tables
- Trees
- Graphs
- Heaps
- Stacks and Queues
- Recursion
- Base Case & Recursive Case
- Structure of a recursive function & stack trace
- Comparing recursive and iterative solutions
- Recursion in real life
- Tail Recursion
- Avoiding stack overflow
- Factorial
- Fibonacci
- Tower of Hanoi
- Greatest Common Divisor(GCD)
- Array Sum
- Reverse a string
- Palindrome
- Permutations
- Subsets
- Big O Notation
- Linear Search
- Binary Search
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort