Resources for CS Students
This list is a work in progress.
Many entries are missing descriptions, and the order of entries is not final. Entries may be added, removed, or moved to other sections.
Last updated on March 30, 2024
Please contact me if you have any suggestions or comments about this list.
Contents
-
Computer science fields and concepts
- Automata theory
- Compilers
- Computer architecture
- Cryptography
- Databases
- Data science
- Game development
- Graphics
- Hardware
- Logic
- Networking
- Operating systems
- Parallel computing
- Programming language theory
- Robotics
- Security
- Software engineering
- Software testing
- UI/UX
- VoIP
- Web development
- Miscellaneous
Programming languages
Ada
Assembly
- Intel 64 and IA-32 Architectures Software Developer Manuals:
- Encoding Real x86 Instructions:
- Learn Assembly Language: A guide to NASM x86 assembly language on Linux.
- NASM Documentation: The official NASM documentation.
- sandpile.org: Information about x86 processors.
- Assemblers and Loaders (PDF):
- x86 Assembly on Wikibooks:
- x86 Disassembly on Wikibooks: A guide to converting machine code into a human-readable format.
- Zen of Assembly Language: Volume I, Knowledge:
- Easy 6502: An introduction to 6502 assembly language.
Bash
- Bash Reference Manual:
- Bash Scripting on Codecademy:
- Introduction to the Command Line:
- Bash Scripting Tutorial:
- Safe ways to do things in bash:
- Conquering the Command Line:
- Advanced Bash-Scripting Guide:
- What helps people get comfortable on the command line?:
- Writing Shell Scripts:
C
- learn-c.org:
- C Programming on Wikibooks:
- C on Codecademy:
- Learn C in Y Minutes:
- Practical Programming in C: Introductory C course from MIT.
- Effective Programming in C and C++: MIT course with a fast-paced introduction to the C and C++ programming languages, with an emphasis on good programming practices and how to be an effective programmer in these languages.
- Awesome C: A curated list of C resources, libraries, and frameworks.
- Lesser known tricks, quirks and features of C: A list of C tricks, quirks and features which seems to throw even experienced developers off the track.
- Build Your Own Lisp: A book (online and in print) on creating your own Lisp-like programming language in C.
- A Tutorial on Pointers and Arrays in C (PDF):
- Algorithms Design in C: A course on algorithms and data structures their implementations in C.
- Beej's Guide to C Programming:
- Beej's Guide to C Programming—Library Reference:
- C for Python programmers: An introduction to C for people familiar with Python.
- C Internals: A series of short articles examining how the C compiler (
gcc
) compiles C code into machine code. - C Notes for Professionals: A collection of C hints and tricks compiled from Stack Overflow answers.
- The GNU C Reference Manual:
- Learn C++ in Y Minutes:
- Introduction to C++: Introductory C++ course from MIT.
- Introduction to C Memory Management and C++ OOP: C/C++ empowerment course from MIT.
- Bit Twiddling Hacks:
C++
- C++ reference: In-depth reference wiki for C++.
- learncpp.com:
- C++ Programming on Wikibooks:
- C++ on Codecademy:
- Learn C++ in Y minutes:
- A Complete Guide to Standard C++ Algorithms:
- Effective Programming in C and C++: MIT course with a fast-paced introduction to the C and C++ programming languages, with an emphasis on good programming practices and how to be an effective programmer in these languages.
- CS106B - Programming Abstractions: Stanford course covering recursion, algorithmic analysis, and data abstraction using C++.
- CS107 - Programming Paradigms: A Stanford course covering advanced memory management features of C and C++, the differences between imperative and object-oriented paradigms, and concurrent programming.
- C++ Cheat Sheets: Cheat sheets and infographics for various C++ concepts.
- Awesome C++: A curated list of C++ resources, libraries, and frameworks.
- C++ Annotations: A guide to C++ intended for programmers familiar with C.
- C++ Core Guidelines: A set of guidelines for writing good C++ code.
- Google C++ Style Guide:
- More C++ Idioms: A book on C++ idioms for programmers who are already familiar with C++.
C#
- C# on Codecademy:
- C# Programming on Wikibooks:
- Learn C# in Y minutes:
- Threading in C#:
- C# Algorithms: Various algorithms and data structures implemented in C#.
COBOL
CSS
- MDN CSS tutorial:
- MDN CSS reference:
- W3Schools CSS tutorial/reference:
- Learn CSS:
- CSS on Codecademy:
- Learn CSS in Y Minutes:
- You Might Not Need JavaScript:
- CSS Snippets:
- CSS-Tricks:
- CSS Protips:
- Dark mode in a website with CSS:
- Flexbox Froggy: A game for learning CSS flexbox.
- Grid Garden: A game for learning CSS grid.
- A Complete Guide to Flexbox:
- A Complete Guide to CSS Grid:
- cssgradient.io:
- CSS Grid Generator:
- Randoma11y:
- Material Design 2 guidelines:
- Awesome CSS: A curated list of CSS resources.
- CSS Selectors: A Visual Guide:
- Sass:
- Less.js:
- RTL Styling 101: A guide to handling right-to-left scripts (e.g. Arabic) with CSS.
- CSS on HTML Dog:
- Google HTML/CSS Style Guide:
- CSS Animation 101:
- Web Visual Effects with CSS3:
- Maintainable CSS:
- Learn CSS Layout:
- Learn CSS Layout The Pedantic Way:
Fortran
Go
- Get Started: The official Go introduction.
- Go Documentation: The official Go documentation.
- An Introduction to Programming in Go:
HTML
- MDN HTML tutorial:
- MDN HTML reference:
- W3Schools HTML tutorial/reference:
- HTML on Codecademy:
- Awesome HTML5: A curated list of HTML5 resources.
- 🤯 HEAD: A simple guide to HTML
<head>
elements. - Can I use...: Browser support tables for modern web technologies.
- A Blog Post with Every HTML Element:
- HTML Cheat Sheet:
- HTML Dog:
- HTML Canvas Deep Dive:
- Google HTML/CSS Style Guide:
- W3C Accessibility Standards:
- Accessbility on MDN:
Haskell
- Haskell Documentation: The official Haskell documentation.
- Learn You a Haskell for Great Good!:
- Haskell on Wikibooks:
- Haskell Tutorial and Cookbook:
Java
- Official Java Tutorials:
- Java on Codecademy:
- W3Schools Java tutorial/reference:
- Java Programming on Wikibooks:
- Java Algorithms and Clients:
- Awesome Java: A curated list of frameworks, libraries and software for the Java programming language.
- Formatting Numeric Print Output:
- Primitive Data Types:
- Packages and Visibility:
- Java Scope:
- Java Keywords:
- List of Java Exceptions: All public exceptions and errors in the Java API, grouped by package.
- CS106A - Programming Methodology: A Stanford course covering object-oriented design, decomposition, encapsulation, abstraction, and testing. The course uses Java, but the concepts can also be applied to other languages.
- Swing GUI tutorial:
- Introduction to Computer Science using Java:
- Google Java Style Guide:
- Java, Java, Java: Object-Oriented Problem Solving:
- Java Language and VM Specifications: The official specification for the Java language and the Java Virtual Machine (JVM).
JavaScript
- MDN JavaScript tutorials/reference:
- JavaScript on CodeCademy:
- Eloquent JavaScript:
- The Modern JavaScript Tutorial:
- You Don't Know JS: A series of books diving deep into the core mechanisms of the JavaScript language.
- JavaScript Key Code Event Tool:
- Awesome JavaScript: A curated list of browser-side JavaScript libraries and resources.
- JavaScript on HTML Dog:
- Clean Code PHP: An adaptation of the book Clean Code for JavaScript.
LaTeX
- Learn LaTeX:
- Arbitrary LaTeX reference: A collection of miscellaneous LaTeX information.
- Learn LaTeX in 30 minutes:
Lua
- Lua: Getting started: The official Lua introduction.
- Lua: Documentation: The official Lua documentation.
- Lua Programming on Wikibooks:
MATLAB
- MATLAB Documentation: The official MATLAB documentation.
- MATLAB Programming on Wikibooks:
PHP
- PHP Manual: The official PHP manual.
- PHP: The Right Way:
- PHP Apprentice:
- PHP Programming on Wikibooks:
- W3Schools PHP tutorial/reference:
- Learn PHP in Y Minutes:
- Modern PHP Cheat Sheet:
- PHP Internals:
- Clean Code PHP: An adaptation of the book Clean Code for PHP.
- PHP Security Guide:
Perl
- Perl Intro: The official introduction to Perl.
- learn.perl.org: The official Perl documentation.
PowerShell
- PowerShell Documentation: The official PowerShell documentation.
- PowerShell Gallery: The central repository for sharing and acquiring PowerShell code including PowerShell modules, scripts, and DSC resources.
- A Unix Person's Guide to Powershell:
- Learn Powershell in Y minutes:
- The Big Book of PowerShell Error Handling:
- The Big Book of PowerShell Gotchas:
- Why PowerShell?: An introduction to PowerShell's capabilities.
Python
- Python for Beginners:
- The Python 3 Tutorial:
- Python 3 Documentation:
- Awesome Python: A curated list of awesome frameworks, libraries, software, and resources.
- Python on Codecademy:
- Python Programming on Wikibooks:
- W3Schools Python tutorial/reference:
- A Byte of Python: ...a free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you.
- PythonSpot:
- Google's Python class:
- Google Python style guide:
- The Hitchhiker's Guide to Python:
- Full Stack Python:
- A Beginner's Python Tutorial on Wikibooks:
- A Whirlwind Tour of Python:
R
- The R Manuals: Official manuals for learning R.
- R on Codecademy:
- R Programming on Wikibooks:
Regular expressions (Regex)
- regex101:
- Regular-Expressions.info:
- Stack Overflow Regular Expressions FAQ:
- aloisdg/awesome-regex: A curated list of Regex libraries, tools, frameworks, and software.
Ruby
- Ruby Documentation: The official Ruby documentation.
- Ruby in Twenty Minutes: A concise official Ruby tutorial.
- Ruby on Codecademy:
- fpsvogel/learn-ruby: A list of resources for learning Ruby and Ruby on Rails.
- Ruby Koans: An interactive Ruby tutorial that revolves around correcting Ruby code so that tests pass.
- Rubyfu: Ruby skills for penetration testers.
Rust
- Learn Rust: The official Rust tutorials and documentation.
- Rust by Example:
- Rust Cookbook: Examples of various common programming tasks, implemented in Rust.
SQL
- MySQL Documentation:
- MySQL 8.1 Reference Manual:
- W3Schools SQL tutorial/reference:
- SQLBolt:
- SQL on Khan Academy:
- SQL on Codecademy:
- sqltutorial.org:
- GeeksforGeeks SQL tutorial:
- MySQL Cheat Sheet:
Swift
- Swift Documentation: The official Swift documentation.
- Swift Resources: Apple's official Swift resources.
- Swift on Codecademy:
- Swift Introduction on Wikibooks:
- matteocrippa/awesome-swift: A curated list of Swift libraries and resources.
Miscellaneous
- Hyperpolyglot: Commonly used features in a side-by-side format.
- Scratch: A block-based visual language for introducing children to programming.
Libraries and frameworks
Angular
ASP.NET
- Awesome .NET: A collection of .NET libraries, tools, frameworks, and software.
Electron
JavaFX
LWJGL
- LWJGL: The Lightweight Java Game Library.
Node.js
- Node.js:
- Introduction to Node.js:
- Node.js on Codecademy:
- W3Schools Node.js tutorial:
- NodeSchool:
- Awesome Node.js: A collection of Node.js packages and resources.
- npm Docs: Documentation for the Node Package Manager.
NumPy
- NumPy for absolute beginners: An in-depth introduction to NumPy.
- NumPy quickstart: A somewhat less in-depth introduction to NumPy.
Qt
- Qt: Qt is a cross-platform C++ GUI framework.
- Qt Documentation: The official Qt documentation.
- Qt Wiki: The community-maintained Qt wiki.
React
Spring Framework
Miscellaneous
- g9.js: Drag all the graphics!
Operating systems
Linux
General resources
- Linux Journey: Guides to the various aspects of Linux.
- Interactive map of the Linux kernel:
- The Linux Kernel Module Programming Guide:
- Ed Is The Standard Text Editor:
- Ad Hoc Data Analysis From The Unix Command Line:
- Linux From Scratch: A guide to building your own customized Linux system entirely from source.
- The Debian Administrator's Handbook:
- Linux text manipulation:
GNU Coreutils
- List of GNU Core Utitilies tools: These tools are preinstalled on most Unix-like systems.
- GNU Coreutils Manual: The official manual for GNU Coreutils.
- GNU Coreutils Manual (split): Same as the above, but split into separate pages for each topic.
- GNU Core Utilities FAQ:
- Coreutils Gotchas:
- Decoded: GNU coreutils:
macOS
Windows
Miscellaneous
Computer science fields and concepts
Algorithms
General resources
- Big-O Cheat Sheet: Big-O complexities of common algorithms and data structure operations.
- VisuAlgo: Interactive visualizations of common algorithms and data structures.
- Data Structures & Algorithms: Google Tech Dev Guide covering various important algorithms and data structures.
- Data Structure Visualizations: Interactive visualizations for a variety of data structures and algorithms.
- Grid pathfinding optimizations: Adapting the A* algorithm and Dijkstra's algorithm to work on a grid.
- Hashing: A visual, interactive introduction to hash functions.
Specific algorithms
- Binary search:
- Breadth-first search (BFS):
- Depth-first search (DFS):
- Insertion sort:
- Selection sort:
- Merge sort:
- Quicksort:
- Radix sort:
- Counting sort:
- Heap sort:
- Topological sort:
- Quickselect:
- Euclidean algorithm (Euclid's algorithm):
- Huffman coding:
- Knuth-Morris-Pratt (KMP) algorithm:
- Kruskal's algorithm:
- Floyd-Warshall algorithm:
- Dijkstra's algorithm:
- Bellman-Ford algorithm:
- Floyd's cycle-finding algorithm:
- Kadane's algorithm:
- Flood fill:
- Hamming codes:
- Disk scheduling algorithms:
- A* search:
Artificial intelligence
Machine learning
- ML for Beginners:
- Your First Machine Learning Project in Python, Step-By-Step:
- Deep Learning Tuning Playbook: A playbook for systematically maximizing the performance of deep learning models.
- The Little Book of Deep Learning (PDF):
- Probabilistic Machine Learning: An Introduction: An introduction to machine learning, presented through the unifying lens of probabilistic modeling and Bayesian decision theory.
- Deep Learning: An MIT Press book:
- Deep Neural Networks As Computational Graphs:
- Deep Learning in a Nutshell: Core Concepts:
- Convolution arithmetic: A technical report on convolution arithmetic in the context of deep learning.
- Crash Course in Convolutional Neural Networks for Machine Learning:
- A Gentle Introduction to Generative Adversarial Networks (GANs):
- The Illustrated Machine Learning Website:
Computer vision
- Computer Vision Foundation Open Access: Papers from conferences sponsored by the Computer Vision Foundation.
- Computer Vision - Papers With Code:
Datasets
- Common Objects in Context (COCO): A large-scale object detection, segmentation, and captioning dataset.
- GeoFaces: A dataset containing millions of geotagged images of human faces.
Generative artificial intelligence (GenAI)
Natural language processing (NLP)
- Natural Language Processing Demystified:
- LLaMa from scratch (or how to implement a paper without crying):
- GPT in 60 Lines of NumPy:
Automata theory
Compilers
Computer architecture
- Memory Allocation: A visual introduction to memory allocation.
- Integer Exposed: Tool for visualizing the bits of an integer.
- Float Exposed: Tool for visualizing the bits of a floating point number.
- Two's Complement:
- Floating Point Visually Explained:
Cryptography
Databases
Data science
Data structures
General resources
- VisuAlgo: Interactive visualizations of common algorithms and data structures.
- Data Structures & Algorithms: Google Tech Dev Guide covering various important algorithms and data structures.
- Data Structure Visualizations: Interactive visualizations for a variety of data structures and algorithms.
Specific data structures
- Arrays:
- Lists:
- Linked lists:
- Doubly linked lists:
- Sets:
- Stacks:
- Queues:
- Double-ended queue (deque):
- Hash tables:
- Trees:
- Binary trees:
- Binary search trees:
- AVL trees:
- Red-black trees:
- B-trees:
- Heaps:
- Graphs:
- Treemaps:
- Ropes:
- espoofer: A tool for checking if email servers and clients are vulnerable to spoofing attacks.
- Can I email...:
Game development
- Kavex/GameDev-Resources: A curated list of game development resources.
Graphics
- Scratchapixel: An introduction to 3D computer graphics.
- Lode's Computer Graphics Tutorial: A guide to writing a raycasting engine in C++, similar to that of Wolfenstein 3D.
- The Book of Shaders: A guide to fragment shaders using GLSL.
- Ray Tracing in One Weekend: A guide to creating a ray tracing engine in C++.
- Glossary of computer graphics:
- Pixar graphics papers:
- Ke-Sen Huang's Resource for Computer Graphics:
Hardware
Logic
Networking
- HTTP response status codes: A list of HTTP status codes, their meanings, and when to use them.
- Series of posts on HTTP status codes: More detailed information about HTTP status codes.
- What is CIDR?:
- .htaccess Snippets: Useful snippets for .htaccess files used by web servers.
Operating systems
- OSDev.org: Extensive information for creating your own operating system.
- The little book about OS development: A guide to writing an x86 operating system.
Parallel computing
Programming language theory
Robotics
Security
- Buffer Overflow: An overview of buffer overflow vulnerabilities, with examples.
- Using freed memory: An overview of use-after-free vulnerabilities, with examples.
- Project Zero Blog: A blog by Google's Project Zero covering zero-day exploits.
- Forward Pass: On the Security Implications of Email Forwarding Mechanism and Policy:
Software engineering
Software testing
UI/UX
- Laws of UX:
- What they don't tell you when you translate your app: Considerations to keep in mind when localizing software.
VoIP
- RFC 3261: SIP (Session Initiation Protocol): The formal specification for SIP.
- RFC 4566: SDP (Session Description Protocol): The formal specification for SDP.
Web development
Miscellaneous
- SIGEVO: The ACM Special Interest Group on Genetic and Evolutionary Computation.
Tools
Build systems
Command-line tools
- nmap: A tool for network discovery and security auditing.
- jq: Command-line JSON processor.
- fq: Tool, language, and decoders for working with binary data.
- cheat: Create and view interactive cheatsheets on the command line.
- exa: A modernized replacement for
ls
. - chars: Determine end-of-line format, tabs, BOM, and null characters in a file.
- pv: A tool for monitoring the progress of data through a pipeline.
- ncdu: An ncurses-based disk usage analyzer.
- bitwise: A terminal based bitwise calculator... supporting dynamic base conversion and bit manipulation.
- add-gitignore: Interactive tool for generating a .gitignore for your project.
- iola: Command-line socket client with REST API.
- is-up: Check whether a website is up or down using the isitup.org API.
- reachable: Tool for checking if a domain is up.
- loadtest: Tool for running load tests on an HTTP server or WebSocket.
- diff2html: Generate HTML diff pages from
git diff
output. - iredis: A terminal client for redis with auto-completion and syntax highlighting.
- HTTPie: HTTP client with JSON support, colors, sessions, downloads, plugins & more.
- curlie: The functionality of
curl
with the interface of HTTPie. - neomutt: Command-line email client. A modern fork of Mutt.
- neoss: TCP/UDP socket statistics. A modernized
ss
. - has: Checks presence of various command line tools on the PATH and reports their installed version. An alternative to
which
. - neofetch: Displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.
- mdv: Terminal markdown viewer.
- speedtest-cli: Command line interface for testing internet bandwidth using speedtest.net.
- xq: Command-line XML and HTML beautifier and content extractor.
- diskonaut: Terminal disk space navigator using a treemap.
- ripgrep: Recursively searches directories for a regex pattern while respecting your gitignore.
- ImageMagick: Various command-line image editing tools, including bulk editing.
- tiv: A tool for viewing images in your terminal.
Editors
- Notepad++ (Windows):
- Visual Studio Code (cross-platform): A powerful general-purpose editor that can also function as an IDE.
- Sublime Text (cross-platform):
- TextMate (macOS):
- vim (cross-platform):
- emacs (cross-platform):
- neovim: A modernized fork of vim.
- micro (cross-platform):
- Helix (cross-platform):
Git
- github/.gitignore: A collection of useful .gitignore templates.
- Git for Windows: Git BASH (a Bash shell for Windows) and a Git GUI.
IDEs
- Eclipse: Java. Supports other languages with plugins.
- Intellij IDEA: Java and Kotlin. Supports other languages with plugins.
- Visual Studio: C#, C++, JavaScript, Python, Visual Basic, and F#.
- Xcode: Swift and various other languages. Only available on macOS.
- Android Studio: Kotlin, Java, and C++. Designed for Android development.
- NetBeans: Java, PHP, C, C++, HTML5, and JavaScript.
- Code::Blocks: C, C++, and Fortran.
- Spyder: Scientific Python.
- CLion (paid): C and C++.
- PyCharm (paid): Python.
- PhpStorm (paid): PHP.
Web tools
- Huemint: AI-based color scheme generator.
- Shift and rotate bits: An online tool for shifting the bits of an integer.
- badssl.com: Domains with various SSL problems for testing.
- Unicode code converter: Convert text to various encodings.
- Unicode lookup: Inspect the Unicode characters that make up a string.
- JSON Formatter & Validator: Format and validate JSON online.
- Cut & Paste Jeroen's Chmod Calculator: Calculate permissions for the
chmod
command by selecting which permissions you need. - CyberChef: Perform a wide variety of operations on strings.
- Desmos: A powerful online graphing calculator.
- Overleaf: A collaborative online LaTeX editor.
- ColorHexa: View information about a hexadecimal or RGB color code.
- Compiler Explorer:
- Show My IP Address: View your external IP and information about your browser and screen.
- DNS traversal checker: Comprehensive traversal DNS checking in an instant.
Miscellaneous
- Git for Windows: Git BASH (a Bash shell for Windows) and a Git GUI.
- Rufus: Create bootable USB drives from disk images.
- MediaWiki: Software for creating a wiki. Most well-known as the platform powering Wikipedia.
- TiddlyWiki: a non-linear notebook for capturing, organising and sharing complex information.
- QDirStat: A tool for viewing detailed disk usage on *nix systems
- WinDirStat: A tool for viewing detailed disk usage on Windows.
- Disk Inventory X: A tool for viewing detailed disk usage on macOS.
- PlantUML: A tool for creating UML diagrams from text.
- Luke Stackwalker: A C/C++ code profiler for Windows.
- Zenmap: GUI for Nmap.
- Wireshark: A packet analyzer/sniffer for network troubleshooting and development.
- 7-Zip: A file compression tool that supports most common archive formats.
- PuTTY: SSH and telnet client for Windows.
- SecureCRT (paid): SSH client, telnet client, and serial terminal emulator.
- CrystalDiskInfo: HDD/SSD health monitoring tool.
- VirtualBox: Hypervisor (creates and runs virtual machines) for Windows, Linux, and Intel-based macOS.
- Insomnia: Cross-platform REST/HTTP client.
- AutoHotKey: Scripting language for automating tasks in Windows.
- ImHex: Cross-platform hex editor.
- HxD: Hex file, disk, and memory editor for Windows.
- Resource Hacker: Resource compiler and decompiler for Win32 applications.
- NirSoft: Various utilities for Windows.
Other resources
File formats
- Common MIME types: A list of commonly encountered MIME types, ordered by their common extensions.
- Media Types: An exhaustive list of MIME types.
- JSON: JavaScript Object Notation, a text-based data interchange format.
Mathematics
Category theory
Linear algebra
- The Matrix Cookbook: A collection of facts about matrices and matters relating to them.
Statistics
- Introduction to Statistics: An online course from Stanford that provides an overview of essential topics in statistics.
- Statistics and Proability on Khan Academy: A course on statistics featuring videos and exercises.
- Statistics Tutorial on W3Schools: An introduction to statistics with examples in Python.
- Statistics Tutorial on Kaggle: An interactive Python-based introduction to statistics.
- StatQuest with Josh Starmer: YouTube playlists covering statistics, machine learning, and data science.
- Think Stats (PDF): An introduction to probability and statistics for programmers.
- OnlineStatBook: An online statistics textbook with exercises. Also features code examples in R.
Miscellaneous
- Understanding Quaternions: A detailed guide on quaternions in the context of computer graphics.
Official reference
- IETF Datatracker: A collection of official specifications and standards for the Internet and related technologies.
- Unicode character code charts: A set of charts containing information about all official Unicode characters.
- IANA Protocol Registries:
- W3C Accessibility Standards:
Online courses and learning
- Codecademy:
- Coursera: Free and paid online courses and certifications on various topics.
- edX:
- Open Culture:
- MIT OpenCourseWare:
- Khan Academy:
- Stanford Engineering Everywhere:
Miscellaneous
- Stack Overflow:
- LeetCode:
- Choose an open source license:
- TLDRLegal: Summaries of popular software licenses. For informational purposes only; be sure to read the full license before you use it.
- SPDX License List: A list of commonly found licenses and exceptions used in free and open or collaborative software, data, hardware, or documentation.
- Falsehoods Programmers Believe In: A curated list of falsehoods programmers believe in. A falsehood is an idea that you initially believed was true, but in reality, it is proven to be false.
- karan/Projects: A list of practical projects that anyone can solve in any programming language.
- Awesome First PR Opportunities: A list of projects that encourage beginners to resolve pull requests.
- The Missing Semester of Your CS Education: MIT course on how to master the command-line, use a powerful text editor, use fancy features of version control systems, and much more.
- It’s Not Wrong that "🤦🏼♂️".length == 7: Why is the length of a string containing what appears to be a single emoji greater than 1?
- Unicode character tables: An online list of all Unicode characters.
- free-programming-books: An extensive list of free programming resources (not only books) in many languages.
- Working with timezones:
- Falsehoods Programmers Believe About Names: Considerations to keep in mind when developing a system that will handle human names.
- Rosetta Code: Solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another.
- Learn X in Y minutes: Crash courses on programming languages.
- Awesome CS Courses: A list of university computer science courses that are available online.
- Counterexamples in Type Systems: A compendium of programs that go wrong in ways that should be impossible.
- Big List of Naughty Strings: An evolving list of strings which have a high probability of causing issues when used as user-input data.
- What happens when...: A very in-depth explanation of What happens when you type google.com into your browser's address box and press enter?
- arXiv: An open-access repository of electronic preprints and postprints approved for posting after moderation, but not peer review.
- René Nyffenegger's notes: Random useful notes on many topics, mostly computer-related.
- Hypervisor From Scratch: A guide to writing your own hypervisor in C.
- Programming from the Ground Up (PDF):
- Localization Guide: A guide to localizing your projects.
- Confusing git terminology:
Compiled by Chase Vaughan