Data structure & Algorithm
Object-oriented programming
Functional Programming
Design Patterns