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)
- Host: GitHub
- URL: https://github.com/err0r500/foundational-knowledge-for-programmers
- Owner: err0r500
- Created: 2020-03-29T17:38:21.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-02-06T15:57:30.000Z (almost 5 years ago)
- Last Synced: 2024-05-06T05:43:24.182Z (over 1 year ago)
- Topics: 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
- Homepage:
- Size: 34.2 KB
- Stars: 163
- Watchers: 11
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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 !

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)