馃摎 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

6.5840 / 6.824 Distributed Systems

MIT PDOS 路 Advanced 路 Lectures + labs
systemsgo

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

Scientific Computing with Python

freeCodeCamp 路 Beginner 路 Interactive exercises
codingpython

Information Security

freeCodeCamp 路 Intermediate 路 Interactive projects
securityweb

The Odin Project

The Odin Project 路 Beginner 路 Text curriculum + projects
codingweb

Full Stack Open

University of Helsinki 路 Intermediate 路 Text course + exercises
codingweb

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

Malware Analysis

RPISEC 路 Intermediate 路 Lecture slides + labs
malware-analysisreverse-engineering

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

how2heap: Heap Exploitation Techniques

Shellphish 路 Advanced 路 Code examples
binary-exploitationheapc

ROP Emporium

ROP Emporium 路 Intermediate 路 Challenge series
binary-exploitationrop

Exploit Education (Phoenix, Nebula, Fusion)

Exploit Education 路 Beginner to Advanced 路 Vulnerable VMs + exercises
binary-exploitationlinux

Microcorruption

Microcorruption 路 Intermediate 路 Browser-based CTF
reverse-engineeringembeddedassembly

OverTheWire Wargames

OverTheWire 路 Beginner to Advanced 路 Wargames
securitylinuxbinary-exploitation

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

Red Team Notes (ired.team)

ired.team 路 Intermediate 路 Notes / wiki
securitywindowsos-internals

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

Computer Science from the Bottom Up

Ian Wienand 路 Intermediate 路 Free online book
systemsclow-level

The Rust Programming Language

Rust Project 路 Beginner 路 Free online book
codingrust

LearnCpp.com

LearnCpp 路 Beginner 路 Text tutorials
codingc++

Exercism

Exercism 路 Beginner 路 Coding exercises + mentoring
codingcrustpython

Hacker101

HackerOne 路 Beginner 路 Video lessons + CTF
securityweb

Web Security Academy

PortSwigger 路 Beginner to Advanced 路 Interactive labs
securityweb

OSSU Computer Science curriculum

Open Source Society University 路 Beginner 路 Curated curriculum of free courses
codingfundamentalscurriculum