/from-junior-to-senior

My study plan for going from junior to senior software developer

From junior to senior

My study plan for going from junior to senior software developer (i. e. from level 1 to level 3 of the Programmer Competency Matrix). Inspired by Google Interview University.

This study plan attemts to cover a lot of topics related to math and theoretical computer science, but it can miss some applied topics, like mobile or frontend development. Also this plan doesn't (and never will) include something related to SEO, advertising, marketing etc.

Usage

  1. Fork this repo
  2. Mark all items as undone
  3. Add missing topics (optional)
  4. Study!

Table of contents

Calculus

Functional Analysis

Geometry

Analytic Geometry

Linear Algebra

Abstract Algebra

Category Theory

Combinatorics and Probability

Discrete Mathematics

Graph Theory

Type Theory

Data Structures

Algorithms

Basic algorithms

Sorting

Complexity

Programming Languages

Assembly

C/C++

Java

Haskell

Rust

Programming Paradigms

Object-Oriented Programming

Functional Programming

Actor Model

Computer Architecture

Systems Programming

Operating Systems

Linux

Embedded Programming

Compilers and Interpreters

Compilers

Interpreters

Garbage Collectors

Networks

Web Development

Server-side

Client-side

Databases

SQL Databases

Concurrent Programming

POSIX Threads

SIMD

Security

Cryptography

Web Applications Security

See also

Resources

You can find more courses, articles, videos etc here:

Online documentation:

Wikimedia Foundation projects:

Forums, Q&A:

Online Tools

  • Math
  • Coding
    • Cloud9 — a development environment in the cloud
    • Codepen — a playground for the front end side of the web
    • Compiler Explorer — an interactive online C, C++, D, Rust and Go compiler
    • Ideone — a free online IDE, compiler and debugging tool
    • Repl.It — a REPL, compiler & IDE
    • RunKit — a Node prototyping tool
    • Reepl — an online ClojureScript REPL