Skip to content

fostercs/syllabus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 

Repository files navigation

Welcome to WEB3 101

Syllabus

CS Fundamentals in Python

Getting Started

Steps for your particular use case:

macOS

  • Install Docker

Chromebook

  • google chrome developer tools

Create the following free accounts

  • gmail.com
  • github.com
  • repl.it
  • stackblitz.com
  • glitch.com

Windows

  • Install Docker

Programming Concepts (10 pts)

  • Run Python in a Docker Container locally
docker run -it python:3.8

Problem Solving

Introduction to Concepts

  • Math Operations
  • Arrays
  • Strings
  • Binary Search
  • Bit-Manipulation (Bitwise)
  • Pointers
  • Recursion
  • Hashing
  • Sorting
  • Stacks
  • Queues
  • Linked Lists
  • Trees
  • Tries
  • Heap
  • Backtracking
  • Greedy
  • Dynamic Programming
  • Graphs
  • Databases
  • Objects

Introduction to Data Structures & Algorithms (20 pts)

Assessments

OSI

  • Physical Layer
    • OS
    • Disk
    • Memory
    • CPU
  • Data Link Layer
    • DB
  • Network Layer (Layer 3)
    • IP Address
  • Transport (Layer 4)
    • TCP/IP
  • Session
  • Presentation
  • Application (Layer 7)
    • HTTP

Assessment

  • Weekly contests to gauge conceptual understanding and problem-solving abilities
  • Particular focus on complex topics like Dynamic Programming and Graphs (e.g., traversals, shortest paths, etc.)

Programming Languages

JS

GO

Specalization (5 pts)

Backend

  • MVC
  • REST APIs
  • ORM
  • SpringBoot
  • Views
  • Database Indexes
  • Multithreading

Full-Stack

Become a Javascript expert which will enable you to excel in any role.

  • Building a server, Intro to MVC
  • Web architecture, HTML, CSS, Javascript
  • Node.js, Backend Architecture, MongoDB, React/Redux

Data Engineering (Specalization)

  • Intro to Data Engineering

  • Building efficient Data Processing Systems

  • Advanced SQL

  • Cloud Services

  • Cloud Agnostic

  • AWS, GCP, and Azure pros/cons

  • Developing ETL pipelines

  • Map-Filter-Reduce

  • ELK

  • Big Data

  • Hadoop

  • Kafka

  • Spark

  • Data Warehousing

  • Data Modeling

  • OLAP

  • Dashboarding

  • AWS/GCP Deployment

  • Workflow Orchestration

  • Apache Airflow

  • Logging

  • Monitoring

  • Focus on building foundational skills that will enable you to solve all the major problems pertaining to data storage and management.

  • Understand the complexities of developing end-to-end pipelines with hands-on experience.

Assessment

  • Capstone Project (Backend, Full-stack, Data engineering)

Design (10 pts)

Low Level Design

  • OOP
  • UML
  • Schema Design
  • Architecture
    • Microservices
      • Sidecar - The Sidecar pattern is used to augment the functionality of a microservice by running additional processes or services in the same deployment unit (like a container or pod). This allows for modularization of concerns such as logging, monitoring, configuration, and communication.
  • Design Principles (SOLID, Gang of Four)
  • SOLID
  • GoF
  • Orthogonally - A concept where components or systems are designed in such a way that changes in one do not affect others. It emphasizes minimizing dependencies between components to increase modularity and reduce the risk of side effects.
    • Dependency Management
    • Inversion of Control (IoC)
    • Dependency Injection - Dependency Injection promotes orthogonality by reducing the dependencies between components. By injecting dependencies into a class rather than having the class instantiate them itself, DI decouples the class from its dependencies, making it easier to change one without affecting the other. This promotes a more modular and maintainable system, which aligns with the principles of orthogonality.
    • Coupling
    • Cohesion

Design Patterns

Real-World Design (Low-Level)

  • Movie Ticket Booking System
  • Expense Sharing Application
  • Distributed Cache
  • Parking Lot

Assesment & Objective

  • Real-world case studies and examples on large scale open source repositories
  • Hands-on working code implementation in class for every case study
  • TA Driven Code Reviews and Assignments
  • Detailed discussions on Schema Designs, Design Principles and Practices

High Level Design

  • Scaling (Horizontal vs Vertical)
  • DNS Lookup/DNS Servers
  • Load Balancer
  • Consistent Hashing
  • Caching and CDN
  • CAP Theorem
  • Master-Slave
  • Multi-Master
  • SQL vs NoSQL DB
  • Zookeeper + Kafka
  • Quad Trees
  • Monoliths & Microservices

Real-World Design (High-Level)

  • Search Typehead
  • Search Engine (Google)
  • Social Chat (Messenger)
  • Social KB (Quora)
  • Distribuited Crawler
  • Video Streaming Platform
  • Train Ticket Booking System

Complex systems

  • Cassandra DB
  • Distributed File Systems

Containers

Integration Tests

  • Swagger
  • Scaling secrets

CI

  • Linting with Git Hooks

Web3

Reference

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published