Giter Site home page Giter Site logo

cs-reference's Introduction

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

cs-reference's People

Contributors

sarathshyam avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

bitsinnovate00

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.