edujtm / awesome-computer-science-websites

Some websites with a huge amount of free content on computer science topics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

awesome-computer-science-websites

Some websites with a huge amount of free content on computer science topics

  • Items marked with ⚠️ are incomplete/work in progress.
  • Publication years (Pub. Year) are based on information I've found on the websites and might not be completely accurate. They are only meant to give a rough idea if the content might be outdated. (C.U. means Continuosly Updated and a - means Not Found)

Operating Systems

name topic Pub. Year author
Operating System in Rust OS, Rust 2020 Philipp Opperman
How to make an Operating System ⚠️ OS, C++ 2018 Sammy Pessé
Linux Insides Linux, C 2020 (C.U.) 0xAX
OSDev Wiki Operating Systems 2020 (C.U.) Many Authors
Raspberry PI OS ⚠️ Raspberry PI, Operating Systems 2019 Sergey Matyukevich
Making our own executable packer Linux, Rust 2020 Amos Wenger

Compilers, Parsers, Lexers

name topic Pub. Year / Last Update author
Lisperator - Implementing a programming language in Javascript Parsers, Javascript - / - Mihai Bazon
Crafting Interpreters Compilers, Java, C 2015 / - Bob Nystrom
Let's Build a Simple Interpreter Interpreters, Python 2015 / - Ruslan Spivak
Build Your Own Lisp Compilers, C 2015 / - Daniel Holden
Make a Language with Rust Parsers, Lexers, Rust 2020 / 2020 Aramis Razzaghipour

Computer Graphics

name topic author
Scratch A Pixel Computer Graphics Jean-Colas Prunier
Tiny Renderer Rendering Dmitry V. Sokolov
The Book of Shaders ⚠️ Shaders Patricio Gonzalez
3D Game Shaders for Beginners Shaders David Lettier
Vulkan Tutorial Computer Graphics -
Physically Based Rendering: From Theory to Implementation Rendering Matt Pharr, Wenzel Jakob, and Greg Humphreys
Raytracing In One Weekend Rendering Peter Shirlay
Learning Modern 3D Graphics Programming Computer Graphics Jason L. McKesson
3D Math Primer for Graphics and Game Development Computer Graphics Fletcher Dunn, Iann Parbery
Computer Graphics from Scratch Computer Graphics Gabriel Gambetta

Game Programming

name topic author
Game Programming Patterns Game Programming, C++ Bob Nystrom
Unreal Cpp Game Programming, Computer Graphics Harrison McGuire
Roguelike Tutorial in Rust + Tcod Game Programming, Rust Tomas Sedovick
Roguelike Tutorial in Rust Game Programming, Rust Herbert Wolverson
How to Make a Roguelike Game Programming, Kotlin Adam Arold
Game Programming Tutorials Game programming, C++ Gilles Bellot

Software Engineering

name topic author
Refactoring Guru Design Patterns Alexander Shvets
System Design Primer System Design, Scalability Donne Martin

Web Development

name topic Pub. Year / Last Update author
How to GraphQL GraphQL 2018 / 2020 Many Authors
Mozilla Developer Network Tutorials Web Development - Many Authors
High Performance Browser Networking Networking, Web Performance - Ilya Grigorik
OAuth Simplified OAuth - Aaron Parecki
OWASP Cheatsheet Web Security 2020 (C.U.) OWASP Foundation
useHooks React Hooks 2018 / 2020 Gabe Garland
FullStack Redux Tutorial Redux 2015 Tero Parviainen
Soundcloud clone with React + Redux React, Redux 2016 Robin Wieruch
Explore Flask Python, Flask 2014 Robert Picard
TDD With Python Python, Django 2016 / 2017 Harry Percival
Flask Mega Tutorial Python, Flask - / 2017 Miguel Grinberg
Django Book Python, Django 2012 / 2013 Matt Behrens
Testing Angular - A Guide to Robust Angular Applications Angular 2021 Mathias Schäfer
Haskell and Yesod Haskell, Yesod 2015 / - Michael Snoyman
Web Browser Engineering Browsers 2021 / - Pavel Panchekha
Cosmic Python | Architecture Patterns with Python Web Server Architecture, Python 2020 Harry Percival, Bob Gregory

Databases

name topic author
SQL Server Tutorial SQL Server, T-SQL -
MySQL Tutorial MySQL -
PostgreSQL Tutorial PostgreSQL -

Security & Criptography

name topic Pub. Year author
Practical Criptography With Go Criptography, Go 2015 -

Algorithms

name topic author
Interactive Coding Challenges Algorithms Donne Martin
Data Structures with Java Data Structures Joshua Hug
Codeforces Algorithms And Data Structures Algorithms Many Authors
Codeforces Competitive Programming Tutorials Algorithms Many Authors
CodeChef Data Structures And Algorithms Algorithms Many Authors
E-Maxx Algorithms Algorithms Many Authors
Topcoder Tutorials Algorithms Many Authors

Data science

name topic author
Data Science Notebooks Data Science, Python Donne Martin
The Foundations of Data Science Data Science Ani Adikhari and John Denero
Machine Learning Topic Explanations Machine Learning Leonardo Araujo Santos
Interpretable Machine Learning Machine Learning Christoph Molnar
Neural Networks And Deep Learning Machine Learning Michael Nielsen
MIT: Convolutional Neural Networks for Visual Recognition Machine Learning Andrej Karpathy

Programming Languages

name topic author
Typealias Kotlin Dave Leeds
The Rust Book Rust Steve Klabnik and Carol Nichols
The Rustonomicon Rust -
Learn Go With Tests Go Chris James
Effective Go Go -
Go by Example Go Mark Mcgranaghan & Eli Bendersky
Go 101 Go -
Eloquent Javascript Javascript Marijn Haverbeke
Javascript Garden Javascript Ivo Wetzel
Understanding ES6 Javascript, EcmaScript 6 Nicholas Zakas
Javascript Enlightenment Javascript, EcmaScript 6 Cody Lindley
Javascript For Impatient Programmers Javascript Axel Rauschmayer
Deep Javascript Javascript Axel Rauschmayer
Tackling Typescript Typescript Axel Rauschmayer
Typescript Deep Dive Typescript Helmut Tammen
F# For Fun And Profit F# Scott W.
Learn You A Haskell For A Great Good Haskell Mirân Lipovaca
Real World Haskell Haskell Bryan O'Sullivan, Don Stewart, and John Goerzen
Edulinq C#, LINQ Jon Skeet

Programming Paradigms

name topic author
Mostly Adequate Guide to Functional Programming Functional Programming, Javascript Many Authors?
Functional Programming in OCaml Functional Programming, OCaml Many Authors

Programming Tools

name topic author
MIT - The Missing Semester of Your CS Education terminal tools Many Authors
Pro Git Git Ben Straub
Learn Vimscript The Hard Way Advanced Vim Steve Losh
Software Tools in Javascript Software Tooling Greg Wilson

Mathematics

name topic author
Mathematics for Programmers Mathematics Jeremy Kun
Nature of Code Mathematics, Artistic Programming Daniel Shiffman
Interactive Linear Algebra Linear Algebra Dan Margalit, Joseph Rabinoff

Why make this repository?

I made this repository because I couldn't keep all of the websites that I found with good content in my head, so I decided to put on github since it's the website I use the most. It currently doesn't have a lot of websites, but if you know any that isn't listed here, please do a pull request.

About

Some websites with a huge amount of free content on computer science topics