Variables, Scope, and Lifecycle:
Understand how data is stored and accessed, and scope rules to manage memory and avoid bugs.
Control Flow, Loops, and Conditionals:
Master logical structures such as if-else, switch, and various loops to control execution flow.
Error Handling and Exception Strategies:
Anticipate and handle errors gracefully using try/catch blocks, custom exceptions, and fail-safe patterns.
Data Structures and Performance:
Know arrays, linked lists, trees, hash maps, and their time-space trade-offs to choose the right structures.
Composition vs Inheritance:
Understand design principles; composition often provides more flexibility than inheritance.
Immutability and Side-Effect Management:
Write predictable, testable code by favouring immutable data and minimising side effects.