You learn fundamental programming structures including data types, operators, branching and looping structures, user-defined methods and basic data structures. You also learn how to use OOP features like encapsulation, inheritance, interfaces, overloading, overriding and polymorphism.