馃摎 New on the Beginner Shelf: The Low Level Librarian's Top 10 Languages for Absolute Beginners
Low Level Library: Free Reverse Engineering & Low-Level Programming Courses
A hand-checked directory of 60 free online courses in coding, reverse engineering, assembly, C, binary exploitation, malware analysis and OS internals. Every link points to the official provider.
Filter by topic
All 60 free courses
CS50x: Introduction to Computer Science
Harvard University (CS50) 路 Beginner 路 Video lectures + problem sets
codingcfundamentals
CS50's Introduction to Programming with Python
Harvard University (CS50) 路 Beginner 路 Video lectures + problem sets
codingpython
CS50's Web Programming with Python and JavaScript
Harvard University (CS50) 路 Intermediate 路 Video lectures + projects
codingweb
CS50's Introduction to Cybersecurity
Harvard University (CS50) 路 Beginner 路 Video lectures
securityfundamentals
6.004 Computation Structures (Spring 2017)
MIT OpenCourseWare 路 Intermediate 路 Lecture notes + videos
computer-architectureassemblylow-level
6.828 Operating System Engineering (Fall 2012)
MIT OpenCourseWare 路 Advanced 路 Lecture notes + labs
os-internalsclow-level
6.858 Computer Systems Security (Fall 2014)
MIT OpenCourseWare 路 Advanced 路 Video lectures + labs
securityexploitation
6.0001 Introduction to CS and Programming in Python (Fall 2016)
MIT OpenCourseWare 路 Beginner 路 Video lectures + problem sets
codingpythonfundamentals
6.006 Introduction to Algorithms (Spring 2020)
MIT OpenCourseWare 路 Intermediate 路 Video lectures + problem sets
codingalgorithms
6.172 Performance Engineering of Software Systems (Fall 2018)
MIT OpenCourseWare 路 Advanced 路 Video lectures + projects
clow-levelperformance
6.087 Practical Programming in C (IAP 2010)
MIT OpenCourseWare 路 Beginner 路 Lecture notes + assignments
ccodinglow-level
6.033 Computer System Engineering (Spring 2018)
MIT OpenCourseWare 路 Intermediate 路 Lecture notes + videos
systemsos-internals
6.1810 / 6.828 Operating System Engineering (xv6, 2023)
MIT PDOS 路 Advanced 路 Lecture notes + labs
os-internalscrisc-vlow-level
6.S081 Operating System Engineering (Fall 2020)
MIT PDOS 路 Advanced 路 Lecture videos + labs
os-internalscrisc-v
The Missing Semester of Your CS Education
MIT CSAIL 路 Beginner 路 Video lectures + exercises
codingtoolsshell
Nand2Tetris: Build a Modern Computer from First Principles
Nand2Tetris (Nisan & Schocken) 路 Beginner 路 Projects + software tools
computer-architectureassemblylow-levelcompilers
Build a Computer from NAND Gates (Part I)
Hebrew University via Coursera 路 Beginner 路 Video course (free to audit)
computer-architectureassembly
pwn.college
Arizona State University (pwn.college) 路 Beginner to Advanced 路 Interactive hands-on dojos + videos
binary-exploitationreverse-engineeringassemblysecurity
OpenSecurityTraining2 (OST2) course catalog
OpenSecurityTraining2 路 Beginner to Advanced 路 Self-paced video courses + labs
reverse-engineeringassemblymalware-analysisos-internalsfirmware
OpenSecurityTraining (original archive)
OpenSecurityTraining 路 Intermediate 路 Archived class videos + slides
reverse-engineeringassemblymalware-analysis
freeCodeCamp Curriculum
freeCodeCamp 路 Beginner 路 Interactive exercises + certifications
codingwebpython
CS 61A: Structure and Interpretation of Computer Programs
UC Berkeley 路 Beginner 路 Lectures + projects
codingpythonfundamentals
CS 61C: Great Ideas in Computer Architecture
UC Berkeley 路 Intermediate 路 Lectures + labs + projects
computer-architecturecrisc-vassembly
CS 162: Operating Systems and System Programming
UC Berkeley 路 Advanced 路 Lectures + projects
os-internalsc
15-213/18-213: Introduction to Computer Systems
Carnegie Mellon University 路 Intermediate 路 Lecture slides + labs
systemscassemblylow-level
CS107: Computer Organization and Systems
Stanford University 路 Intermediate 路 Lecture notes + assignments
cassemblylow-level
CS107 Programming Paradigms (Stanford Engineering Everywhere)
Stanford Engineering Everywhere 路 Intermediate 路 Video lectures + handouts
ccoding
CSCI 0300: Fundamentals of Computer Systems
Brown University 路 Intermediate 路 Lecture notes + projects
systemsclow-level
COS 217: Introduction to Programming Systems
Princeton University 路 Intermediate 路 Lecture slides + assignments
cassemblyarmlow-level
Operating Systems: Three Easy Pieces
Remzi & Andrea Arpaci-Dusseau (UW-Madison) 路 Intermediate 路 Free online textbook
os-internalsc
Modern Binary Exploitation (MBE)
RPISEC 路 Intermediate 路 Lecture slides + labs
binary-exploitationreverse-engineeringsecurity
Reverse Engineering Tutorial (x86, x64, ARM, AVR, RISC-V)
Kevin Thomas (mytechnotalent) 路 Beginner 路 Text tutorial + examples
reverse-engineeringassemblyarmrisc-v
Z0F Course: Reverse Engineering (x64 Windows)
0xZ0F 路 Beginner 路 Text course
reverse-engineeringassemblywindows
Reverse Engineering for Beginners (Understanding Assembly Language)
Dennis Yurichev 路 Beginner 路 Free online book
reverse-engineeringassembly
Nightmare: Intro to Binary Exploitation / RE via CTF
guyinatuxedo 路 Intermediate 路 Text course with CTF challenges
binary-exploitationreverse-engineering
Exploit Education (Phoenix, Nebula, Fusion)
Exploit Education 路 Beginner to Advanced 路 Vulnerable VMs + exercises
binary-exploitationlinux
Microcorruption
Microcorruption 路 Intermediate 路 Browser-based CTF
reverse-engineeringembeddedassembly
picoCTF
Carnegie Mellon University 路 Beginner 路 CTF practice + learning resources
securityreverse-engineeringbinary-exploitation
The Cryptopals Crypto Challenges
Cryptopals 路 Intermediate 路 Challenge sets
cryptographysecuritycoding
Azeria Labs: ARM Assembly Basics
Azeria Labs 路 Beginner 路 Text tutorial series
assemblyarmexploitation
x86 Assembly Language Programming notes
Ray Toal, Loyola Marymount University 路 Beginner 路 Lecture notes
assemblyx86
Writing an OS in Rust
Philipp Oppermann 路 Intermediate 路 Blog-style tutorial series
os-internalsrustlow-level
os-tutorial: How to create an OS from scratch
Carlos Fenollosa 路 Beginner 路 Step-by-step tutorial
os-internalsassemblyc
OSSU Computer Science curriculum
Open Source Society University 路 Beginner 路 Curated curriculum of free courses
codingfundamentalscurriculum