Best Programming Languages courses
The 124 Programming Languages courses programmers recommend to each other on Hacker News, ranked by how many people recommended each one, how strongly, in how many separate threads and over how many years (378 recommendations, 2006 to October 2026). 69 of them are free. How ranking works.

6.001 Structure and Interpretation of Computer Programs
MIT OpenCourseWare · intermediate · free
Commenters repeatedly describe it as eye-opening and foundational, calling the lectures and book a must-study for anyone wanting to think more deeply about programming.

Functional Programming Principles in Scala
Coursera · beginner · freemium
Commenters call it an excellent, well-taught introduction to functional programming, praising Odersky as a lecturer and the course's automated grader and assignments.

Programming Languages (Dan Grossman)
Coursera · intermediate · free
Commenters call it an excellent, well-structured introduction to programming language concepts and functional programming, and several say it changed how they approach learning new languages.

Design of Computer Programs
Udacity · intermediate · free
Commenters call it an excellent, rewarding course in problem solving and programming taste, taught clearly by Peter Norvig.
Compilers
Coursera · intermediate · free
Commenters call it excellent and say it made building a compiler feel achievable, with several saying it dispelled the idea that only wizards can write one.

An Introduction to Interactive Programming in Python
Coursera · beginner · free
Commenters call it a fun, beginner-friendly, hands-on introduction that teaches by building games, with one calling it superb and very entertaining.
CS169.1x Software as a Service
edX · beginner · free
Commenters call it a free, practical introduction to Ruby on Rails and modern software engineering practices, with one saying it works well as a first step for beginners.
CIS 194: Introduction to Haskell
University of Pennsylvania · beginner · free
Commenters call it a great introduction to Haskell and say that working through the lecture notes and exercises is far more effective than books like Learn You a Haskell.

How to Design Programs
edX · beginner · freemium
Commenters call it the best intro for beginners because it teaches systematic design habits instead of tinker-until-it-works coding, and one says it is free to audit.
CS101 Building a Search Engine
Udacity · beginner · free
Commenters call it a perfect, interactive beginner course that assumes no prior programming knowledge and teaches Python through a practical project.

Principles of Reactive Programming
Coursera · intermediate · free
Commenters call it a great introduction to reactive programming and say the lectures and course notes were an eye opener.
Compilers
Stanford Lagunita · intermediate · free
Commenters call it free, self-paced and one of the best educational experiences, since you actually write a compiler.
Systematic Program Design
edX · beginner · free
Commenters call it a good, more accessible companion to HtDP than the book, and a sound way to learn the design method from scratch.

Programming Languages, Part A
Coursera · intermediate · free
Commenters praise it for opening their thinking about what a programming language is and for providing good recursion practice.
6.005 Elements of Software Construction
MIT OpenCourseWare · intermediate · free
Commenters call it an outstanding, design-centred introduction to software construction that improved their programming in any language, and praise its coverage of state machines and functional programming.
Write a Compiler
David Beazley · advanced · paid
Commenters call it an amazing, mind-blowing experience for building a compiler, praising Beazley as a great teacher who explains things by building them from nothing.
Programming Languages, Application and Interpretation
Brown University · intermediate · free
Commenters call it an undergraduate PL textbook that gets straight to semantics without spending time on lexing and parsing, and they note it is free to read online.
Professor Frisby Introduces Composable Functional JavaScript
egghead.io · beginner · free
Commenters praise it as a quirky, free companion to the Mostly Adequate Guide, with content they found useful despite the unusual presentation.
CS 3110 Functional Programming (OCaml)
Cornell University · beginner · free
Commenters point to it as a good primer for learning OCaml and call its lecture notes high quality and well revised over the years.
CS107 Programming Paradigms
Stanford University · beginner · free
Commenters praise Jerry Cain's detailed, clarifying lectures, saying they leave you very comfortable with C memory management and pointers.

Efficient Programming with Components (Alexander Stepanov)
YouTube · advanced · free
Commenters call it a phenomenal, philosophical, and painstakingly detailed introduction to Stepanov's way of thinking about generic programming.
CSE 341 Programming Languages
University of Washington · intermediate · free
Commenters call it an excellent undergraduate-level introduction to programming languages and recommend the recorded lectures, with one saying they could not stop watching the videos.
Computing for Data Analysis
Coursera · beginner · freemium
Commenters find it a useful introduction to R: they say the lectures are relatively succinct and the assignments put the material into practice.

Pharo MOOC
Pharo · beginner · free
Commenters recommend it as the entry point to Pharo and the Smalltalk tradition, praising the language's programming environment and developer experience.
15-150 Principles of Functional Programming
Carnegie Mellon University · beginner
Commenters describe it as a course where each homework made them feel they had unlocked a new level of reasoning with code, and as one that discourages operational reasoning in favor of ML/Haskell-style thinking.
Functional Programming with Erlang
FutureLearn · beginner · free
Commenters describe it as a very good, practical way to learn Erlang, including one who learned it directly from Joe Armstrong through the course.

Paradigms of Computer Programming
edX · intermediate · free
Commenters call it a lucid treatment of the functional paradigm and a companion to Van Roy's well-regarded book CTM.
Introduction to Functional Programming
edX · beginner
Commenters say Meijer explains hard concepts simply and that the course gave them a solid start before reading Haskell books.
The Go Programming Language Course
Udemy · beginner · paid
Commenters single it out as a good way to learn Go, with one calling Todd McLeod's Golang course amazing.

CS50P: Introduction to Programming with Python
Harvard University · beginner · free
Commenters call it one of the best courses they've taken and praise its free, easy-to-follow lectures and good problem sets.
Type Theory (Robert Harper)
Oregon Programming Languages Summer School · advanced · free
Commenters recommend it as a strong lecture series on type theory, with one saying the lectures are great and another highly suggesting them, though audio and video quality are sometimes weak.
Python Deep Dive
Udemy · advanced · paid
Commenters recommend it as a deep, internals-focused alternative to books for learning Python in detail.

How Git Works
Pluralsight · paid
Commenters say it covers Git fundamentals without the elitist tone found in many Git books and articles, and one says they learned a lot from Perrotta's Pluralsight Git courses.
Domain-Driven Design
Pluralsight · beginner · paid
Commenters mention it as one of the recommended Pluralsight DDD courses, with one saying there are great courses on Pluralsight for understanding DDD.

How to Use Git and GitHub
Udacity · beginner · free
Commenters recommend it as a free, visual-friendly way to get up and running with Git within a week or two.

Google Python Class
Google · beginner · free
Commenters point to it as a fast, practical introduction to Python, citing its good examples, lectures, and sample assignments.
Intro to x86 Assembly (Xeno Kovah)
OpenSecurityTraining · beginner · free
Commenters say Xeno Kovah's OpenSecurityTraining courses were really great for learning x86 and call them excellent for learning assembly, despite some poor audio quality.

Programming Languages, Part B
Coursera · intermediate · freemium
Commenters call the course excellent for learning to think recursively, and one says it is worth taking for the interpreter project even if you skip the rest of the series.
6.945 Adventures in Advanced Symbolic Programming
MIT OpenCourseWare · advanced · free
Commenters describe it as the modern, graduate-level successor to MIT's Scheme-based introductory course, valued for its demanding problem sets and for changing how they write code.
CS262 Programming Languages
Udacity · intermediate · free
Commenters single it out for explaining state machines and other core ideas well, and one praises its teaching format as genius.
CS108 Object-Oriented Systems Design
Stanford University · intermediate
One commenter remembers CS108 as one of their favorite courses of all time, taken with advisor Nick, and the course is mentioned in a thread about learning OOP well.
100 Days of Code: The Complete Python Pro Bootcamp
Udemy · beginner · paid
Commenters call it really good and beginner friendly for someone starting with Python.

Scala Specialization
Coursera · intermediate · freemium
One commenter suggests it as a natural next step after learning Standard ML, calling Scala "the closest thing I've seen to Standard ML on the JVM"; another points to it as taught by Martin Odersky.

Learn Python
Codecademy · beginner · free
Commenters describe it as a fun, well-structured way to start Python, and one praises its free access and instant exercise feedback for keeping motivation up.
JavaScript Lecture Series (Douglas Crockford)
Yahoo! · intermediate · free
Commenters point to it as a must-watch for understanding JavaScript's history and strengths, and as a companion to Crockford's other talks.
Try Ruby
TryRuby.org · beginner · free
Commenters call it a fast, no-setup way to get a first taste of Ruby before deciding whether to install it.
Compilers (Douglas Thain)
University of Notre Dame · intermediate
The commenter calls it the best course they took, praises the instructor, and recommends following the whole project, which builds a working C-style compiler step by step.
JustJavascript
Dan Abramov · intermediate · paid
Commenters call it an amazing way to build a strong mental model of JavaScript, which they argue makes a programmer more productive in the language.

Elixir
The Pragmatic Studio · beginner · paid
One commenter calls the Pragmatic Studio Elixir and LiveView courses outstanding and says they are worth the cost, especially in the Pro Bundle.

Programming for Everyone: Introduction to Visual Programming Languages
edX · beginner
A commenter highly recommends it for anyone dealing with state, whether programmer, designer, engineer, or manager, since it is taught by the author of the statecharts paper.
David Beazley video course
O'Reilly · paid
One commenter calls David Beazley's O'Reilly video course "great" and says they love it.
CSE 131 Compilers
UC San Diego · advanced · free
Commenters say it is basically the same material as Northeastern's CS 4410 but with videos, and they highly recommend it.
F# From the Ground Up
Udemy · beginner · paid
A commenter calls it a brand new F# course and says it is highly recommended.
The Complete JavaScript Course: Build a Real-World Project
Udemy · mixed · paid
Commenters praise it for combining an explanation of how JavaScript works behind the scenes with practical project work, which they say makes it useful for those who want to truly understand the language.
Comparative Programming Languages
UC Santa Cruz · intermediate
Commenters describe it as a standout course with outstanding teaching that sparked an interest in programming language design and the beauty of functional programming.
C# Applying Design Patterns (Vladimir Khorikov)
Pluralsight · intermediate · paid
A commenter says they highly recommend it and also points to the author's blog, though they note the site is paid.

R Programming
Coursera · beginner · freemium
Commenters single it out as an excellent course, noting it helped them see how idiomatic and functional R really is.
EECS 110 Introduction to Programming
Northwestern University · beginner · free
Commenters call it a great, fun, problem-set-driven intro to Python that gets you actually writing code, with one commenter saying it was their favorite programming class.
CS 3240 Advanced Programming Techniques
Cornell University · advanced
One commenter calls it by far the most interesting and educational course they took as an undergrad, citing its strong coverage of lexers, parsers, and interpreters when Olin taught it.
15-212 Principles of Programming
Carnegie Mellon University · intermediate · free
Commenters include it in a free, self-directed CMU CS syllabus they describe as one of the most open resources on the web.
Software Foundations (Benjamin Pierce)
Oregon Programming Languages Summer School · advanced · free
Commenters call it a well-structured complement to Pierce's lectures on YouTube, though one notes gaps in the material and uneven audio and video quality.
Compiler Lectures (Gustavo)
Unspecified
One commenter says Gustavo's lectures are great and that they are working through his compiler lectures now.
Java Programming MOOC
University of Helsinki · beginner · free
Commenters call it an excellent way to (re)learn Java, praising it as a strong structured resource.
Building a Programming Language
Unspecified
One commenter calls it Roberto's awesome course and recounts asking the instructor in a live class about Lua's design philosophy of being lightweight, effective and simple.

Python Data Fundamentals
DataCamp · beginner
One commenter suggests it as a good starting point for someone beginning with Python, noting that DataCamp tracks arrange several courses in a sensible order.
Programming 101 (Python 2.7)
Udacity · beginner · free
Commenters remember it as a well-built course that interleaves brief theory videos with hands-on coding and automated tests.
p5.js courses for kids
Khan Academy · beginner · free
Commenters call the Khan Academy p5 courses brilliant for kids and say they have no ceiling compared with Scratch, though the commenter frames p5 as a fun creative tool rather than production coding.
Ultimate Go
Ardan Labs · advanced · paid
One commenter says it covers this kind of low-level performance nuance well, with a lot of focus on mechanical sympathy and digging into details.
Cantonese for Mandarin Speakers
Duolingo · beginner · free
One commenter suggests it for anyone with basic Mandarin, saying it helps with pronunciation and vernacular Cantonese expressions, though it needs supplementing with tone drilling.

Execute Program
Execute Program · beginner
Commenters praise its UI/UX and well-structured lesson breakdown, and recommend it for learning JS/TS, regex, and SQL.
Python Programming MOOC
University of Helsinki · beginner · free
A commenter recommends it alongside other beginner Python resources for someone starting with no programming experience.

CS50's Introduction to Programming with Python
Harvard University (CS50) · beginner · free
Commenters point beginners to it as one of several solid free starting points for learning Python from zero experience.
OTP Course
Pragmatic Studio · intermediate · paid
One commenter found it eye-opening because it builds a GenServer from scratch, and wished for more in-depth courses like it.
Git: The Big Picture
Pluralsight · beginner · paid
Commenters recommend it as part of a set of Pluralsight Git courses by Paolo Perrotta, saying they learned a ton from them.
Master Git
Pluralsight · mixed · paid
One commenter says they recommend Paolo Perrotta's Pluralsight Git courses and has learned a ton from them.

Introduction to C++ Programming
The Great Courses · beginner · paid
A commenter recommends it to peers who want to learn C++, pointing to it as a good option alongside CS50 for the very basics.
Solidity Path: Beginner to Intermediate Solidity Smart Contracts
CryptoZombies · beginner · free
Commenters recommend it as a free, bite-sized introduction that a programmer with prior experience can finish in about six hours, with useful coverage of smart contract quirks.
Intro to Python
Udacity · beginner · free
The commenter says the course was a mind-blowing start and calls it great, though the recommendation is brief and mostly anecdotal.
Code Architecture (Tutemic)
YouTube · intermediate · free
Commenters point to it as a useful YouTube resource for structuring code in Godot projects, alongside other channels.
Go Programming Course
freeCodeCamp · beginner · free
Commenters point to it as a deeper follow-up to a quick start guide when you want more depth in Go.

Programming Abstractions (Alexander Stepanov)
YouTube · mixed · free
Commenters describe the lectures as highly entertaining and say the first few lay out Stepanov's view of what makes a great programmer.
Elixir Course (Simon Thomson)
FutureLearn
One commenter says Simon Thomson's FutureLearn course was good, listed alongside Pragmatic Studio's Elixir resources.
CS51 Functional Programming
Harvard University · intermediate
Commenters call it an outstanding but terse course that is much harder than its friendly lecture style suggests.
Dependent Types in Agda
University of Waterloo · advanced · free
One commenter suggests it as the next step after a small Racket book, for learning dependent types once basic functional programming is understood.
JavaScript: Understanding the Weird Parts
Udemy · intermediate · paid
Commenters recommend it as a high-quality course for developers who already know JavaScript and want a deeper, more fundamental understanding of the language.

Kotlin Bootcamp for Programmers
Udacity · beginner
Commenters suggest it as a low-commitment way for Java developers to get into Kotlin, with one describing it as a week-long starting point.
Elixir for Programmers
Codestool · beginner · free
One commenter suggests it as the step after the official Getting Started guide, saying it gets you through the basics and important concepts step by step.
Programming Conversations (Alexander Stepanov)
YouTube · intermediate · free
Commenters describe it as a philosophical, painstakingly detailed introduction to Stepanov's way of thinking about programming, and one commenter calls it one of their favorite lecture series.
Golang
Greater Commons · beginner · free
One commenter says the course was in-depth enough for someone who had only basic programming concepts from Python.

Kotlin for Java Developers
Coursera · intermediate · free
Commenters point to it as a free four-week JetBrains course, and one says their team's Kotlin adoption has gone well with Java interop and IntelliJ support.
C Programming with Linux
Dartmouth · beginner
One commenter calls it an introductory treatment that won't overwhelm a committed young learner, in contrast to more daunting intro courses.
C# Unity Course
Udemy · beginner · paid
Commenters call it a very good C# Unity course that can often be found for around $10.
Complete Python Bootcamp: Go from Zero to Hero in Python 3
Udemy · beginner · paid
Commenters point to it as a solid, well-regarded Python 3 course for someone learning programming from scratch.
Intro to Programming
Khan Academy · beginner · free
Commenters point to its well-built explanation videos and sandbox editor that flags errors in real time and shows results immediately, which got a reluctant 10-year-old interested in coding.
CS 3520 Programming Languages (Matthew Flatt)
University of Utah · intermediate · free
One commenter, who took it as a junior at the University of Utah, calls it a really great class and points to its course materials as a syllabus alternative.
Solidity (Stephen Grider)
Udemy · paid
One commenter recommends Grider's courses in general, saying they have taken his Solidity course and found it very well documented, focused and accurate.

Program Code
Coursera · beginner · freemium
The commenter says it laid a great foundation for a later career as a software engineer, and praises the videos as clear, concise, and accessible.
Lua and Love2D course
Udemy · beginner · paid
One commenter calls it a great short Love2D course and links it while discussing tooling for Love2D development.
Parallel and Concurrent Programming in Haskell (Bartosz Milewski)
YouTube · intermediate · free
A commenter points to it as a great video companion to the Haskell concurrency book.
Applying Functional Principles in C#
Pluralsight · intermediate · paid
A commenter points to it as a practical option for learning functional ideas in C# for anyone with a Pluralsight subscription.

PowerShell Intro
Pluralsight · beginner · paid
The commenter calls it an excellent series of videos and says they always recommend it to anyone learning PowerShell.

Intro to Java Programming
Udacity · beginner
One commenter, who took it through an employer sponsorship, calls it a great course for learning the language.
OCaml MOOC
FUN-MOOC · beginner · free
Commenters describe it as an excellent OCaml course with lots of small exercises, though one notes it is a fair amount of work.
Pragmatic Haskell
Alexandr Solovyov · beginner
Commenters say it concentrates on getting real work done with Haskell rather than the obscure theory most courses emphasize.
COS 326 Functional Programming
Princeton University · intermediate
Commenters point to it as a source of challenging OCaml programming assignments once you have the basics.
Advanced Python (Peter Norvig)
Udacity · advanced · free
Commenters group it with Udacity's earlier courses that explained theory and reasoning rather than just tools, calling it similar in spirit to the Huffman web development course.

Programming in Scratch
edX · beginner · free
Commenters use it alongside Scratch with a child, saying their 8-year-old is doing well and making many games through the course.
Functional Programming (Haskell)
edX · beginner
One commenter says they took the edX functional programming class (mostly Haskell) and found it great fun.
Programming Languages (Gregor Kiczales)
Coursera · intermediate · free
One commenter calls it a wonderful Racket-based course worth watching even for programmers coming from Java, recommending it alongside classic Scheme courses.
Programming Foundations with Python
Udacity · beginner · free
Commenters suggest it as a short follow-up after beginner Python courses to cover object-oriented programming basics.
Create Your Own Programming Language
Marc Cournoyer · intermediate
Commenters suggest it as a practical first step for someone starting out in programming language design.
Introduction to Haskell and Functional Programming (Erik Meijer)
Channel 9 · beginner · free
Commenters call Erik Meijer's Channel 9 lectures amazing, praising them as a way into Haskell.
CMSC 336 Type Systems
University of Chicago · advanced · free
A commenter plans to self-study type theory with it and notes that its per-session readings and solved homework make it straightforward to follow alone.
Haskell Fast and Hard
FP Complete School · beginner
Commenters point to it as the interactive version of the same Haskell series, letting readers run code from the browser.
Ruby Path
Code School · beginner · paid
One commenter points to it as a good place to learn Ruby and notes that Code School's courses are generally strong, though they require a monthly subscription.
CS 106L Standard C++ Programming
Stanford University · intermediate · free
Commenters recommend the course reader as a fast way to get up to speed on major parts of STL and the C++ object model, assuming a prior programming background.
CS240h: Functional Systems in Haskell
Stanford University · advanced · free
One commenter calls the Stanford course notes fantastic while recommending them to someone teaching an introductory Haskell class.
Ruby Monk
RubyMonk · beginner
Commenters point to it as an interactive way to practice Ruby exercises as part of a beginner web development learning path.
Introduction to Python Programming
Khan Academy · beginner · free
Commenters say the Python class was great and praise the narration by Jessica Liu, calling her work amazing.
Python Programming
O'Reilly School of Technology · beginner · paid
One commenter, who left an earlier Udacity Python course, says the O'Reilly course felt like they were actually learning something, though it is not free.
CS652 Compiler Construction
University of San Francisco · intermediate · free
One commenter finds the course materials very informative and timely, and says they also bought the author's Pragmatic Programmers book.
Intro to Java
Stanford University · beginner · free
Commenters call it a great course for learning the basics, praising its satisfying exercises and the way it helps with early environment setup.
CMSC 212 Introduction to C
University of Maryland · beginner · free
One commenter calls it a very good introduction to C that starts with fundamentals and then moves into more advanced material.
Haskell Lectures
YouTube · beginner · free
One commenter says there are some excellent Haskell lectures around that helped them grasp the basic concepts well enough to start programming in it.