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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ReadMe.md

ReadMe.md

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

Books

  • 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

Todo


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

ToDo

Algorithms

ToDo

Good Reads & Views

Books

Videos


Programming

  • 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

Testing

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

Version Control

  • GIT basics
  • Version control strategies

References

https://github.com/ossu/computer-science#introduction-to-computer-science

https://github.com/ossu/computer-science/blob/master/extras/readings.md

https://github.com/donnemartin/system-design-primer