Computer Organisation and Architecture

Assembly and Machine Code

Operating System

Basic Computer Networking

Basic Programming Concepts

Programming Paradigms

Data Structures and Algorithms

Memory Management in Programming Languages

Concurrency in Programming Language

C/C++

Haskell

Desigining Good Softwares

Testing

Clean code, Programming principles and Refactoring