An open API service indexing awesome lists of open source software.

https://github.com/err0r500/foundational-knowledge-for-programmers

List of resources about foundational knowledge for programmers (supposed to last a few decades)
https://github.com/err0r500/foundational-knowledge-for-programmers

List: foundational-knowledge-for-programmers

algorithms algorithms-and-data-structures awesome awesome-list category-theory computer-architecture computer-science cryptography linear-algebra networking programming-languages programming-paradigms proof-theory software-architecture type-theory

Last synced: 5 days ago
JSON representation

List of resources about foundational knowledge for programmers (supposed to last a few decades)

Awesome Lists containing this project

README

          

# 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](https://imgs.xkcd.com/comics/complex_numbers.png "source: https://xkcd.com/2028/")

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

## Computer Science

### General
- Structure and Interpretation of Computer Programs (MIT)
[(video playlist)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/)
[(book)](https://web.mit.edu/alexmv/6.037/sicp.pdf)
- Mathematics for Computer Science (MIT)
[(video playlist)](https://www.youtube.com/playlist?list=PLB7540DEDD482705B)

### Programming Language Theory
- Software Foundations in Coq by B. Pierce [(website)](https://softwarefoundations.cis.upenn.edu/)
* Logical Foundations [(website)](https://softwarefoundations.cis.upenn.edu/lf-current/index.html)
* Programming Language Foundations [(website)](https://softwarefoundations.cis.upenn.edu/plf-current/index.html) [(video serie, see page bottom)](https://www.cs.uoregon.edu/research/summerschool/summer12/curriculum.html)
* Verified Functional Algorithms [(website)](https://softwarefoundations.cis.upenn.edu/vfa-current/index.html)
- Programming Language Foundations in Agda by P. Wadler
[(book)](https://plfa.github.io/)
[(repo)](https://github.com/plfa/plfa.github.io/)

### Category Theory
- Category Theory for Programmers by B. Milewski
[(video playlist)](https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_)
[(book)](https://github.com/hmemcpy/milewski-ctfp-pdf)
- Programming with categories (MIT)
[(video playlist)](https://www.youtube.com/playlist?list=PLhgq-BqyZ7i7MTGhUROZy3BOICnVixETS)
- Seven Sketches in Compositionality: An Invitation to Applied Category Theory
[(book)](https://arxiv.org/abs/1803.05316)

### Type Theory
- Propositions as Types
[(video)](https://www.youtube.com/watch?v=SknxggwRPzU)
- The Little Typer
[(πŸ’² book)](https://mitpress.mit.edu/books/little-typer)
- Oregon Programming Languages Summer School 2010
[(video playlist)](https://www.youtube.com/watch?v=ev7AYsLljxk&list=PL8Ky8lYL8-Oh7awp0sqa82o7Ggt4AGhyf&index=5)

### Proof Theory
- The Little Prover
[(πŸ’² book)](https://mitpress.mit.edu/books/little-prover)
- Oregon Programming Languages Summer School 2010
[(video playlist)](https://www.youtube.com/watch?v=YRu7Xi-mNK8&list=PL8Ky8lYL8-Oh7awp0sqa82o7Ggt4AGhyf&index=12)

### Misc
- Dependent types with Idris by Edwin Brady
[(video playlist)](https://www.youtube.com/playlist?list=PL7lYBKOG3R5CLb6AOhE4EaSmVzXrgJM6n)
- Adventure with Types in Haskell - Simon Peyton Jones
[(video playlist)](https://www.youtube.com/playlist?list=PL7lYBKOG3R5DnCP3r3bvKreRjRRWpp1Ao)

## Programming paradigms

### General
- [wikipedia article](https://en.wikipedia.org/wiki/Programming_paradigm)
- Programming Paradigms (Stanford)
[(video playlist)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)

### Functional
- Erik Meijer: Functional Programming
[(video)](https://youtu.be/z0N1aZ6SnBk?t=416)

### Imperative
- Programming from the ground up by Jonathan Bartlett
[(book)](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf)

### Actor Model
- Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know...
[(video)](https://www.youtube.com/watch?v=7erJ1DV_Tlo)

## Software Architecture

### General

- Architecture of Open Source Applications
* Volume I
[(website)](https://aosabook.org/en/index.html#aosa1)
[(πŸ’² book)](https://aosabook.org/en/buy.html#vol1)
* Volume II
[(website)](https://aosabook.org/en/index.html#aosa2)
[(πŸ’² book)](https://aosabook.org/en/buy.html#vol2)
* 500 lines or less
[(website)](https://aosabook.org/en/index.html#500lines)
[(πŸ’² book)](https://aosabook.org/en/buy.html#fh)
* Performance of Open Source Applications
[(website)](https://aosabook.org/en/index.html#posa)
[(πŸ’² book)](https://aosabook.org/en/buy.html#posa)
- System Design
[(video playlist)](https://www.youtube.com/playlist?list=PLkQkbY7JNJuBoTemzQfjym0sqbOHt5fnV)

### Distributed Systems Design
- Time, Clocks, and the Ordering of Events in a Distributed System
[(article)](https://lamport.azurewebsites.net/pubs/time-clocks.pdf)
- The TLA+ Video Course by Leslie Lamport
[(course)](https://lamport.azurewebsites.net/video/videos.html)

## Computer Architecture
- Computer Architecture (ETH ZΓΌrich)
[(video playlist)](https://www.youtube.com/playlist?list=PL5Q2soXY2Zi-DyoI3HbqcdtUm9YWRR_z-)
- Programming from the ground up by Jonathan Bartlett
[(book)](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf)

## Algorithms & Data structures
- Analysis of Algorithms by Steven Skiena
[(video playlist)](https://www.youtube.com/playlist?list=PLOtl7M3yp-DX32N0fVIyvn7ipWKNGmwpp)
- Purely Functional Data Structures by Chris Okasaki
[(book)](https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf)
- The Algorithm Design Manual
[(πŸ’² book)](http://www.algorist.com/)

## Data Science
### Linear Algebra
- Linear Algebra course by Gilbert Strang (MIT)
[(video playlist)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/)

### Discrete Mathematics
- Notes on Discrete Mathematics (Yale)
[(pdf)](http://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf)

### Calculus
- Introduction to Calculus
[(pdf)](https://arachnoid.com/calculus/index.html)

### Machine Learning and Deep Learning
- Mathematics of Machine Learning (MIT)
[(pdf)](https://ocw.mit.edu/courses/mathematics/18-657-mathematics-of-machine-learning-fall-2015/lecture-notes/MIT18_657F15_LecNote.pdf)
- The Matrix Calculus You Need For Deep Learning (University of San Francisco)
[(pdf)](https://explained.ai/matrix-calculus/index.html)
- Deep Reinforcement Learning (Berkeley)
[(video playlist)](https://www.youtube.com/playlist?list=PLkFD6_40KJIxJMR-j5A1mkxK26gh_qg37)
- Convolutional Neural Networks for Visual Recognition (Stanford)
[(video playlist)](https://www.youtube.com/playlist?list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv)
- Natural Language Processing with Deep Learning (Stanford)
[(video playlist)](https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z)

## Networking
- Network Fundamentals
[(video playlist)](https://www.youtube.com/playlist?list=PLDQaRcbiSnqF5U8ffMgZzS7fq1rHUI3Q8)

## Cryptography
- PKI bootcamp
[(video playlist)](https://www.youtube.com/watch?v=q9vu6_2r0o4&list=PLDp2gaPHHZK-mnKi3Zy_-hRjqLHh5PaAv)
- Introduction to Cryptography by Christof Paar
[(video playlist)](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
- Cryptography (MIT)
[(video playlist)](https://www.youtube.com/playlist?list=PL6ogFv-ieghe8MOIcpD6UDtdK-UMHG8oH)