Skip to content

Instantly share code, notes, and snippets.

@thamaraiselvam
Last active May 5, 2019 05:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thamaraiselvam/0346804a8f329f411771246253be7750 to your computer and use it in GitHub Desktop.
Save thamaraiselvam/0346804a8f329f411771246253be7750 to your computer and use it in GitHub Desktop.
Pair programming
- State what you know
- Ask questions
- Start Simple
- Should be extendable
- Write tests
Data structure
-------------------
tree ( Eg: Filesystem tree, PATH /usr/home/tom)
-undirected graph , acyclic(no cycle) connected graph
-n nodes n- 1 edges
-node connected by one path
-Root, parent, child, key, edges, leaf nodes(bottom , no child), sub tree
Binary Tree:
-Only max two children
Binary search tree
-lesser on left, bigger on right
Uses:
syntax trees (compilers and calculators)
On insertion:
if < on left
if > on right
if same do nothing
on removal:
find:
reached null node (not found)
== 0 found
< go to left
> go to right
replace to successor
if leaf - no effect
if it has right node
if it has left node
if it has both - find smallest on right || find largest on left
Traversal:
Preorder - print before
In order - print in middle
post order - print after
level order - print level by level - BFS - using queue
Hashing:
DS that map -> key and values
keys - hasing - unique - fixed range
uses:
check words frequencies
Heap:
binary tree:
1.Max heap - root node max of all nodes
2. min heap - root node min of all nodes
Dikistra Algo:
find value shortest path using its distance between two nodes
Algorithms
---------------
- Sorting and Searching
Merge Sort
Quick Sort
Insertion Sort
selection Sort
Bubble Sort
radix sort
- Bit Manipulation
- Basic Co-ordinate geometry - Manhattan Distance, Closest Point Pair
- Divide and Conquer
- Greedy
- Dynamic Programming - Extremely important
- Probability and basic Number Theory
- Try famous Problems for solutions
Other languages
- Angular - Learn all basics
Problems:
- Facebook mutual friends create design
- Software excelence
- tic tak toe gam
- data structures used for file search and tree traversal and insertion
- app like split wise
Social Cause:
- caste based system - DONe
- LBGT - DONE
- women in tech - DONE
Technology Depth
- Microservices - DONE ( Highly maintanable and testable, loosly couples, independent deployement)
- OS - DONE - Threads, Processes (Instance of computer program, it can have single or multiple threads) - DONE
- Memory Management - DONE- Single contiguous, partitioned , paged, segmented => First(first free) , best(smallest process can adopt), worst (largest), next fit(after first it start from where it left from) - DONE
- Scalability Issues - DONE -(Architecture issues(Microservices, load balancer..etc), database scalling(split database, replicas, sharding..etc), CPU Bound(heavy calulcation, no caching, no async could cuase it), IO bound(more time than cpu process, SSD could fix))
- Linux booting process
BIOS(basic i/o system) => search ->load -> execute -> MBR boot loader programs
MBL(master boot loader) => MBL -> executes GRUB boot loader
GRUB(Grand Unified boot loader) => loads ->execute ->Kernal (If multple kernal images it will show on system)
Kernal => execute init() program -> Mount FS and initilize RAM and init other hardwares
Init => execute run level programs
Run level Programs => executes startups ..etc
- Linux commands
ps => get processes
grep => print by regular expression
sed => replace strings in text file
ifconfig, ls,rm,find,touch,vi,emacs,rmdir,chmod,chown, init 0, init 1, init 6
- CSS3, Saas - DONE - can import, var, reuse ,strcutured way of writing css
- Docker - Hypervisor (separate os for each machine and fixed resouces), Docker engine talks directly to Host os and docker file -> images -> containers
- Git commands - DONE
-Browser background:
DNS look up to get IP
Browser cache -> System Cache -> router Cache -> resolver (ISP) Cache ->
ROOT Server (8 server all over the world) -> It gives top level domain -> (.com) -> that server -> Name server with its ip ->it gives ip address for that site
Resolver -> OS -> Browser IP received ->
Make http request to server -> request -> server Agreed and send Acknowldge ->client agreed and send ack -> connection estableshed -> server sends data with headers to browser then browser shows it
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment