{"id":37427105,"url":"https://github.com/err0r500/foundational-knowledge-for-programmers","last_synced_at":"2026-01-16T06:20:29.158Z","repository":{"id":49322751,"uuid":"251093415","full_name":"err0r500/foundational-knowledge-for-programmers","owner":"err0r500","description":"List of resources about foundational knowledge for programmers (supposed to last a few decades)","archived":false,"fork":false,"pushed_at":"2021-02-06T15:57:30.000Z","size":35,"stargazers_count":163,"open_issues_count":0,"forks_count":11,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-05-06T05:43:24.182Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/err0r500.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-29T17:38:21.000Z","updated_at":"2024-04-08T08:33:12.000Z","dependencies_parsed_at":"2022-08-24T13:52:40.911Z","dependency_job_id":null,"html_url":"https://github.com/err0r500/foundational-knowledge-for-programmers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/err0r500/foundational-knowledge-for-programmers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/err0r500%2Ffoundational-knowledge-for-programmers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/err0r500%2Ffoundational-knowledge-for-programmers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/err0r500%2Ffoundational-knowledge-for-programmers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/err0r500%2Ffoundational-knowledge-for-programmers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/err0r500","download_url":"https://codeload.github.com/err0r500/foundational-knowledge-for-programmers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/err0r500%2Ffoundational-knowledge-for-programmers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2026-01-16T06:20:28.485Z","updated_at":"2026-01-16T06:20:29.147Z","avatar_url":"https://github.com/err0r500.png","language":null,"readme":"# Foundational knowledge for programmers\n\n_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 !\n\n\n![xkcd complex numbers](https://imgs.xkcd.com/comics/complex_numbers.png \"source: https://xkcd.com/2028/\")\n\nFeel free to contribute if you know some great resources that fits the definition above. \n\n\n## Computer Science \n\n### General \n- Structure and Interpretation of Computer Programs (MIT)\n  [(video playlist)](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/)\n  [(book)](https://web.mit.edu/alexmv/6.037/sicp.pdf)\n- Mathematics for Computer Science (MIT)\n  [(video playlist)](https://www.youtube.com/playlist?list=PLB7540DEDD482705B)\n\n\n### Programming Language Theory\n- Software Foundations in Coq by B. Pierce [(website)](https://softwarefoundations.cis.upenn.edu/)\n  * Logical Foundations [(website)](https://softwarefoundations.cis.upenn.edu/lf-current/index.html)\n  * 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)\n  * Verified Functional Algorithms [(website)](https://softwarefoundations.cis.upenn.edu/vfa-current/index.html)\n- Programming Language Foundations in Agda by P. Wadler\n  [(book)](https://plfa.github.io/)\n  [(repo)](https://github.com/plfa/plfa.github.io/)\n\n\n### Category Theory\n- Category Theory for Programmers by B. Milewski \n  [(video playlist)](https://www.youtube.com/playlist?list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_) \n  [(book)](https://github.com/hmemcpy/milewski-ctfp-pdf)\n- Programming with categories (MIT)\n  [(video playlist)](https://www.youtube.com/playlist?list=PLhgq-BqyZ7i7MTGhUROZy3BOICnVixETS)\n- Seven Sketches in Compositionality: An Invitation to Applied Category Theory \n  [(book)](https://arxiv.org/abs/1803.05316)\n\n\n### Type Theory\n- Propositions as Types \n  [(video)](https://www.youtube.com/watch?v=SknxggwRPzU)\n- The Little Typer \n  [(💲 book)](https://mitpress.mit.edu/books/little-typer)\n- Oregon Programming Languages Summer School 2010 \n  [(video playlist)](https://www.youtube.com/watch?v=ev7AYsLljxk\u0026list=PL8Ky8lYL8-Oh7awp0sqa82o7Ggt4AGhyf\u0026index=5)\n\n\n### Proof Theory\n- The Little Prover \n  [(💲 book)](https://mitpress.mit.edu/books/little-prover)\n- Oregon Programming Languages Summer School 2010 \n  [(video playlist)](https://www.youtube.com/watch?v=YRu7Xi-mNK8\u0026list=PL8Ky8lYL8-Oh7awp0sqa82o7Ggt4AGhyf\u0026index=12)\n\n\n### Misc\n- Dependent types with Idris by Edwin Brady \n  [(video playlist)](https://www.youtube.com/playlist?list=PL7lYBKOG3R5CLb6AOhE4EaSmVzXrgJM6n)\n- Adventure with Types in Haskell - Simon Peyton Jones \n  [(video playlist)](https://www.youtube.com/playlist?list=PL7lYBKOG3R5DnCP3r3bvKreRjRRWpp1Ao)\n\n\n\n## Programming paradigms\n\n\n### General\n- [wikipedia article](https://en.wikipedia.org/wiki/Programming_paradigm)\n- Programming Paradigms (Stanford)\n  [(video playlist)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)\n\n### Functional \n- Erik Meijer: Functional Programming \n  [(video)](https://youtu.be/z0N1aZ6SnBk?t=416)\n\n### Imperative\n- Programming from the ground up by Jonathan Bartlett \n  [(book)](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf)\n\n\n### Actor Model\n- Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know... \n  [(video)](https://www.youtube.com/watch?v=7erJ1DV_Tlo)\n\n## Software Architecture\n\n### General\n\n- Architecture of Open Source Applications\n  * Volume I \n    [(website)](https://aosabook.org/en/index.html#aosa1) \n    [(💲 book)](https://aosabook.org/en/buy.html#vol1)\n  * Volume II \n    [(website)](https://aosabook.org/en/index.html#aosa2) \n    [(💲 book)](https://aosabook.org/en/buy.html#vol2)\n  * 500 lines or less \n    [(website)](https://aosabook.org/en/index.html#500lines) \n    [(💲 book)](https://aosabook.org/en/buy.html#fh)\n  * Performance of Open Source Applications\n    [(website)](https://aosabook.org/en/index.html#posa) \n    [(💲 book)](https://aosabook.org/en/buy.html#posa)\n- System Design \n  [(video playlist)](https://www.youtube.com/playlist?list=PLkQkbY7JNJuBoTemzQfjym0sqbOHt5fnV)\n\n### Distributed Systems Design\n- Time, Clocks, and the Ordering of Events in a Distributed System \n  [(article)](https://lamport.azurewebsites.net/pubs/time-clocks.pdf)\n- The TLA+ Video Course by Leslie Lamport \n  [(course)](https://lamport.azurewebsites.net/video/videos.html)\n\n## Computer Architecture\n- Computer Architecture (ETH Zürich)\n  [(video playlist)](https://www.youtube.com/playlist?list=PL5Q2soXY2Zi-DyoI3HbqcdtUm9YWRR_z-)\n- Programming from the ground up by Jonathan Bartlett \n  [(book)](https://download-mirror.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-booksize.pdf)\n\n\n## Algorithms \u0026 Data structures\n- Analysis of Algorithms by Steven Skiena \n  [(video playlist)](https://www.youtube.com/playlist?list=PLOtl7M3yp-DX32N0fVIyvn7ipWKNGmwpp)\n- Purely Functional Data Structures by Chris Okasaki\n  [(book)](https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf)\n- The Algorithm Design Manual \n  [(💲 book)](http://www.algorist.com/)\n\n\n\n## Data Science\n### Linear Algebra\n- Linear Algebra course by Gilbert Strang (MIT) \n  [(video playlist)](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/)\n\n\n### Discrete Mathematics\n- Notes on Discrete Mathematics (Yale) \n  [(pdf)](http://www.cs.yale.edu/homes/aspnes/classes/202/notes.pdf)\n\n\n### Calculus\n- Introduction to Calculus \n  [(pdf)](https://arachnoid.com/calculus/index.html)\n\n\n### Machine Learning and Deep Learning\n- Mathematics of Machine Learning (MIT) \n  [(pdf)](https://ocw.mit.edu/courses/mathematics/18-657-mathematics-of-machine-learning-fall-2015/lecture-notes/MIT18_657F15_LecNote.pdf)\n- The Matrix Calculus You Need For Deep Learning (University of San Francisco) \n  [(pdf)](https://explained.ai/matrix-calculus/index.html)\n- Deep Reinforcement Learning (Berkeley) \n  [(video playlist)](https://www.youtube.com/playlist?list=PLkFD6_40KJIxJMR-j5A1mkxK26gh_qg37)\n- Convolutional Neural Networks for Visual Recognition (Stanford) \n  [(video playlist)](https://www.youtube.com/playlist?list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv)\n- Natural Language Processing with Deep Learning (Stanford) \n  [(video playlist)](https://www.youtube.com/playlist?list=PLoROMvodv4rOhcuXMZkNm7j3fVwBBY42z)\n\n\n\n## Networking\n- Network Fundamentals \n  [(video playlist)](https://www.youtube.com/playlist?list=PLDQaRcbiSnqF5U8ffMgZzS7fq1rHUI3Q8)\n\n\n\n## Cryptography\n- PKI bootcamp \n  [(video playlist)](https://www.youtube.com/watch?v=q9vu6_2r0o4\u0026list=PLDp2gaPHHZK-mnKi3Zy_-hRjqLHh5PaAv) \n- Introduction to Cryptography by Christof Paar \n  [(video playlist)](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)\n- Cryptography (MIT) \n  [(video playlist)](https://www.youtube.com/playlist?list=PL6ogFv-ieghe8MOIcpD6UDtdK-UMHG8oH)\n","funding_links":[],"categories":["Other Lists","Others"],"sub_categories":["TeX Lists"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferr0r500%2Ffoundational-knowledge-for-programmers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferr0r500%2Ffoundational-knowledge-for-programmers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferr0r500%2Ffoundational-knowledge-for-programmers/lists"}