# Interview prep

Master aptitude , system scaling/design and coding problems.

Aptitude :
1) Number system (LCM,HCF,divisibilty , primality , cyclicity , age, logarithms , series/progressions[AP , GP , HP], time ,  exponents and algebra)
2) Fraction problems (train , pipe-cistern , time-speed-dist , work-wage , percentage , ratio and proportion)
3) SI , CI , Statistics , probability , profit-loss , permutation and combination 
4) Trigonometry and mensuration 
5) Geometry
6) Logical puzzles
7) Grammar (English)

Basic array .
String = char array
Algorithm= way to solve problem

Data structure = data arrangement strategy

Static = fixed size
Dynamic = size at runtime
(This is preferred cuz we can't predict how much size is required, not flexible)


Linear and non linear ( memory allocation)
Dynamic mem in C (Linkedlist)
Static implementation is Array 

Practice dynamic implementation of all these below

Linear = stack , queue , matrix , string , set , array
Map = dictionary , hashtable
Non- linear = trees , graph

Master C++/Java and then start solving leetcode selective problems.

C : Files, pointers , bit operations , preprocessor directives , error/exception handling , I/O , header files , basics , command line arguments , programs/problems[pattern printing / op finding etc][common to all][modular programs] , keywords , operator precedence , expression evaluation , macros  

OOPS have some common features.

C++ :
Basics , oops , exceptions , STL and templates ,  Files , namespaces , preprocessor , Multithreading , interrupts , abstract class , pointers , cout , cin , endl , memory mgmt , Bit manipulation , functional programming , design pattern.

Java :
1) OOPS in Java
2) Packages
3) IO streams and files
4) Language basics
5) Strings
6) Static
7) Exception handling
8) Multithreading
9) JDBC
10) Collections
11) Design patterns
12) Servlets
13) Socket programming, RPC ,RMI
14) Regex
15) I18N , L10N
16) Reflection API
17) Memory mgmt 
18) Garbage collection , JVM tuning
19) Selenium
20) Spring + Springboot + Hibernate
21) Getter , Setter
22) File handling 
23) Lambda expression 
24) Serialization
25) Java alternatives : Camel , Gradle , Groovy , Clojure , Scala , Kotlin
26) JasperReports
27) Factory method
28) Bitsets


Python :

Basics , OOPS , operators , data structures , decision making , loops , functions , files , error handling , modules , data science 

RDBMS + SQL :

DDL+DML+TCL , SQL , Nested queries , Views , index , savepoints , control structures , functions , procedures , triggers

Data structures : Array , Stack , Queue , Tree , map , set , hashtable , graph

https://betterprogramming.pub/why-developers-should-stop-fretting-over-faamg-rejections-104b597f7da0

https://javascript.plainenglish.io/how-an-average-coder-climbed-up-to-become-githubs-cto-aec08a6468c6

https://medium.com/illumination/why-the-software-industry-will-follow-the-same-fate-as-banking-314b5a714d8f

https://medium.com/yardcouch-com/now-that-youtube-is-dying-here-are-better-alternatives-29b7f75d7ab7

https://medium.com/codex/what-programmers-should-do-in-their-free-time-b8eeda607cfd

https://medium.com/@kurt.shibainu/dear-tech-company-unfortunately-that-engineer-you-rejected-was-actually-the-main-character-42b8bdd881a

ATS and GDPR rules means even rejection mail won't be sent properly..

System design nah it's the pyramid of UI , Hardware , component and data. Scope , assume , draw architecture and identify key issues.

If OOPS is in company tech stack, OOD round is expected.

https://youtu.be/lmrra8i4hZY

https://youtu.be/hU6BVxtGd5g
