Awesome Open Source
Awesome Open Source

Foundational knowledge for programmers

Foundational knowledge is very different from basic knowledge : if you're a newcomer in the field, it may not be the shortest path to become "job-ready"... but what you'll learn here will last your life long !

xkcd complex numbers

Feel free to contribute if you know some great resources that fits the definition above.

Computer Science


Programming Language Theory

Category Theory

Type Theory

Proof Theory


Programming paradigms



  • Erik Meijer: Functional Programming (video)


  • Programming from the ground up by Jonathan Bartlett (book)

Actor Model

  • Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know... (video)

Software Architecture


Distributed Systems Design

  • Time, Clocks, and the Ordering of Events in a Distributed System (article)
  • The TLA+ Video Course by Leslie Lamport (course)

Computer Architecture

  • Computer Architecture (ETH Zürich) (video playlist)
  • Programming from the ground up by Jonathan Bartlett (book)

Algorithms & Data structures

Data Science

Linear Algebra

Discrete Mathematics

  • Notes on Discrete Mathematics (Yale) (pdf)


  • Introduction to Calculus (pdf)

Machine Learning and Deep Learning

  • Mathematics of Machine Learning (MIT) (pdf)
  • The Matrix Calculus You Need For Deep Learning (University of San Francisco) (pdf)
  • Deep Reinforcement Learning (Berkeley) (video playlist)
  • Convolutional Neural Networks for Visual Recognition (Stanford) (video playlist)
  • Natural Language Processing with Deep Learning (Stanford) (video playlist)



Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Algorithms (10,759
Awesome (3,759
Cryptography (3,493
Awesome List (3,471
Programming Language (3,304
Networking (2,621
Computer Science (1,466
Algorithms And Data Structures (975
Linear Algebra (820
Computer Architecture (229
Software Architecture (183
Category Theory (164
Related Projects