This is my evergrowing reference on things related to Computer Science and Software Engineering.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Computer Science- Reference Notes

This is my evergrowing reference on things related to Computer Science and Software Engineering. I started working on documenting this with the intention of becoming a better, more grounded and rounded Software Engineer. I would like to call it the list of 'things I know that I dont know them', humbly reminding myself that no man knows it all- the more we have on our don't know list, the more rounded we become.

Instead of tools technologies or frameworks, I am learning more on the fundamentals and first principles.

This is heavily inspired by jwasham's coding university, but the objective is not an interview preparation roadmap.

Hopefully, this will be of some use to anyone dropping by.

Enough of ranting, let's jump right in !.

Table of Contents

The Basics

The atomic building blocks!- bare metal stuff

  • Basic Math
    • Binary
    • BitWise Operators
    • Masking
    • Bit Hacks
    • HexaDecimal- Why Hexadecimal in CS
  • Character Set & Encoding
  • How CPU Works
  • Endianness
  • Some Basic skills
    • Math skills
      • Numbers and scales
    • Markdown for documentation
    • Learn C
    • Understanding of compilers

Good Reads & Views


  • Computer Science from the Bottom Up
  • Structure and Interpretation of Computer Programms
  • But How do it know

Operating System

The first layer of abstraction over the bare metal


Computer Networks

Group of computers..

  • Networking fundamentals
  • OSI Reference Model
  • Network Devices
  • How packet routing works
  • DNS
  • Architecture of the internet
  • HTTP Fundamentals
    • Spec
    • Important Request and Response headers
    • HTTPS

DataStructures & Algorithms

To better at problem solving

  • Algorithmic Thinking
  • Complexity & Asymptotic analysis

Data Structures




Good Reads & Views




  • Programming Paradigms
    • Imperative
    • Functional
    • Declarative
  • Core Concepts
    • Abstraction
    • OOPS
  • SOLID principles
  • Code Complexity
  • Design Patterns
  • Debugging

Good Reads & Views Books

  • The Prgamtic Programmer
  • Code Complete

System Design

  • System Design pricniples and patterns
    • Architecture Patterns
    • Microservices
  • Layering
  • Documenting system designs
  • NFRs
    • Security- Authentication & Authorization
    • Scalability
    • Availability
    • Reliability
    • Maintinability
    • Monitorability
    • Evolvability
    • Configurability
  • Distributed Systems
    • ACID vs BASE, CAP Theorem
  • DataStorage systems
    • Durable
      • RDBMS- Concepts, DataModelling
      • NOSQL
    • Volatile
      • Caches
  • Messaging
    • In Process - eg: Queue and Worker threads
    • In Memory- Pipes, Messaging systems
    • Distributed
  • NFR Testing and Benchmarking

Good Reads

** Books**

  • Release It

Computer Security

  • Basics
  • WebApplication Security
  • Vulnerability assessment
  • DataSecurity- Compliance & Laws


  • Automation
  • Performance Testing
  • Reliability Testing- Chaos & fault tolerence
  • Security Testing

Version Control

  • GIT basics
  • Version control strategies