#Programming Talks
I watch a lot of talks that I love to share with my friends, fellows and coworkers. As I consider all Githubbers my friends (oh yeah!), I decided it's time to share the list.
There are talks on programming languages specifics as well as a more general section I call "theory". But don't expect to always get theoretical computer science for every talk there; most of them are on the architecture and design of software.
I welcome every contribution to the list; for guidelines look below.
Disclaimer: I did not give any of the talks on the list and am responsible neither for their content nor for their presentation. All links below will direct you to external sites (mostly YouTube, really), be aware of that. If you are one of the people responsible for the talks or the platform presenting it and want it removed, tell me and I'll sort it out with you.
###Names to look out for
To make choosing the right speakers a tad easier, let me give you a quick overview over my favourite speakers in no particular order:
- Scott Meyers (C++): Scott Meyers is one of the most entertaining and knowledgeable speaker when it comes to all things C++. His talks cover a variety of topics, from type inference to API design and cache lines.
- Rich Hickey (Clojure): I am not a Clojure programmer, but I like reasoning about and building programming languages. Even if you don't, Rich Hickeys talks are inspiring and thought-provoking. Whenever he talks about the fundamentals of programming and reasoning, you are sure to learn a ton. Oh, and if you program in Clojure, you have no excuse for not watching this guy speak.
- Reginald Braithwaite (JavaScript): one of my favourite JavaScript speakers. He also has a variety of talks on my list, but is more true to his realm (JavaScript) than most of the other speakers on my list.
- David Nolen (Clojure/Clojurescript): The core maintainer of Clojurescript. His talks mostly focus on immutability and share a bit of their structure. He doesn't get boring, though, and is another very smart person with deep insights in such fields as immutability.
- David Beazley (Python): The person who singlehandedly made me a Pythonista. Need I say more? He has a lot of low-level knowledge about Python and makes poking at the Python interpreter seem more fun than it actually is.
- Joe Armstrong (Erlang): One of the few people I actually had the chance to see live already. He is a funny, witty and smart guy and if you want to learn about Erlang, watch his talks. Most of his talks are also very beginner-friendly.
- Brandon Rhodes (Python): Yet another Pythonista. His talks are enjoyable, enlightening and his way of talking is just enjoyable - you might think that is secondary, but it is really important. His talk on Tolkien is one of the most enjoyable diversions on this list (and a bit off-topic, mind you).
- Aaron Patterson (Ruby): Probably the most entertaining speaker on the list. As a core developer of both Ruby and Rails, he works close to the heart of the Ruby community.
- Philip Wadler (Haskell, Theory, ...): Incredibly knowledgeable gentleman. If you use generics in Java, you owe that to him. If you use Haskell and/or monads, you probably already know him, but in case you do not, try to change that fact. He makes theoretical computer science more approachable than it actually is, and that is a good thing.
###On Programming Languages
####Bash
- The Functional Tao of Bash [00:48:12] by Garrett Smith
####C
- Advanced C Coding For Fun! [00:46:53] by Rusty Russell
- Writing application fault handlers [00:49:03] by Gilad Ben-Yossef
####Clojure
- Expert to Expert - Inside Clojure [00:53:56] by Rich Hickey & Brian Beckman (it's not so much a talk as a conversation; awesome for beginners)
- Clojure Concurrency [02:32:39] by Rich Hickey
- Persistent Data Structures and Managed References [00:55:53] by Rich Hickey
- Design, Composition and Performance [00:51:10] by Rich Hickey
- Making Games at Runtime with Clojure [00:37:34] by Zach Oakes (He's a very funny guy!)
- Clojure Data Science [00:32:40] by Edmund Jackson
- Machine Learning Live [00:27:38] by Mike Anderson
- ClojureScript: Lisp's Revenge [00:32:03] by David Nolen
- Clojure Library Core.async for Asynchronous Programming [00:55:32] by David Nolen
- Make Your Own Lisp [00:53:52] by Bodil Stokke
- ClojureScript + React.js: How I learned to stop worrying and love the browser [00:52:24] by Norbert Wójtowicz
- ClojureScript for Skeptics [00:41:08] by Derek Slager
- Solving Problems with Automata [00:38:03] by Mark Engelberg & Alex Engelberg
- Om Next [00:39:22] by David Nolen
- Genetic Programming in Clojure [00:40:07] by Lee Spector
- Specter: overcome your fear of nested Clojure data [00:41:50] by Nathan Marz
- From REST to CQRS with Clojure, Kafka, & Datomic [00:44:24] by Bobby Calderwood
- Game Development Development [00:35:09] by Michael Nygard & Ragnar Svensson
- Typed Clojure in Practice [00:41:57] by Ambrose Bonnaire Sergeant
- Clojure for Schemers [01:17:27] by David Nolen
- Variants are Not Unions [00:37:53] by Jeanine Adkisson
- Always Be Composing [00:35:11] by Zach Tellman
- Clojure core.async [00:44:25] by Rich Hickey
- Core.Async [00:39:45] by Timothy Baldridge
- Full stack FP in Datomic, Clojure, and ClojureScript [00:51:30] by Priyatam Mudivarti
- Why Is A Monad Like A Writing Desk? [00:30:38] by Carin Meier
- Parallel Programming, Fork Join, and Reducers [00:40:53] by Daniel Higginbotham
- The Relevance of ClojureScript [00:36:16] by Jearvon Dharrie
- Building a Bicycle for the Mind [00:26:39] by David Nolen
- Clojure in 10 Big Ideas [00:30:48] by Stu Halloway
- Clojure Enemy of the State [01:06:31] by Alex Miller
- Managing One of the World's Largest Clojure Code Bases [00:41:05] by Donevan Dolby
- The ReactJS Landscape [00:41:03] by Luke VanderHart
- Simplicity in Practice [00:30:47] by Luke VanderHart
- Developing ClojureScript With Figwheel [00:45:30] by Bruce Hauman
- How Clojure Works: Understanding the Clojure Runtime [00:30:07] by Daniel Solano Gomez
- Hoplon and Javelin, WebDev Alternative Reality [00:22:07] by Micha Niskin
- Predictably Fast Clojure [00:34:01] by Zach Tellman
- Playing Go with Clojure [00:35:53] by Zach Tellman
- Domain Specific Type Systems [00:40:05] by Nathan Sorenson
- Enter the Matrix [00:40:00] by Mike Anderson
- Purely Random [00:38:04] by Gary Fredericks
- Data Science in Clojure [00:44:03] by Soren Macbeth
- Pattern Matching in Clojure [00:47:02] by Sean Johnson
- Predicate Dispatch [00:28:58] by David Nolen
- Jelly stains. Thoughts on JavaScript, LISP & Play [00:19:12] by David Nolen
- The Next Five Years of ClojureScript [01:00:57] by David Nolen
- Bare Metal Clojure with clojure.spec [00:36:07] by Michael Reitzenstein
- Live-Coding Mathematics Your First Clojure Proof [00:41:54] by Frederic Peschanski
- Condition Systems in an Exceptional Language [00:33:31] by Chris Houser
- Bottom Up vs Top Down Design in Clojure [00:36:41] by Mark Bastian
- Clojure, Made Simple [01:00:43] by Rich Hickey
- Spec-ulation [01:16:23] by Rich Hickey
- Proto REPL, a New Clojure Development and Visualization Tool [00:30:10] by Jason Gilman
- Using Clojure with C APIs for crypto and more [00:41:07] by lvh
- Clojure at DataStax: The Long Road From Python to Clojure [00:29:28] by Nick Bailey
- Composing music with clojure.spec [00:46:30] by Wojciech Franke
- Creating DSLs - A tale of spec tacular success and failure [00:39:46] by Claire Alvis
- Clarifying Rules Engines with Clara Rules [00:37:07] by Mike Rodriguez
####C++
- C++17: I See A Monad In Your Future [01:20:59] by Bartosz Milewski
- Using C++11 to speed up your Qt 5 programs [00:46:47] by Marc Mutz
- Don't Help the Compiler [01:17:00] by Stephan Lavavej
- The Effective C++11/14 Sampler [01:15:45] by Scott Meyers
- The Last Thing D Needs [00:54:55] by Scott Meyers
- Support for Embedded Programming in C++11 and C++14 [01:12:52] by Scott Meyers
- Type Deduction and Why You Care [01:09:34] by Scott Meyers
- C++ Seasoning [01:17:12] by Sean Parent
- Efficiency with Algorithms, Performance with Data [01:13:41] by Chandler Carruth
- Back to the Basics! Essentials of Modern C++ Style [01:40:27] by Herb Sutter
- Lock-Free Programming (or, Juggling Razor Blades): This talk has two parts. I recommend taking a short break after watching the first part.
- Lock-Free Programming (or, Juggling Razor Blades), Part I [01:24:00] by Herb Sutter
- Lock-Free Programming (or, Juggling Razor Blades), Part II [01:11:19] by Herb Sutter
- Writing Quick Code in C++, Quickly [01:11:37] by Andrei Alexandrescu
- Optimization Tips - Mo' Hustle Mo' Problems [00:58:19] by Andrei Alexandrescu
- Optimizing the Emergent Structures of C++ [01:33:02] by Chandler Carruth (somewhat annoyingly bad quality)
- Making C++ Code Beautiful [00:56:23] by James McNellis & Kate Gregory
- C++11 Style - A Touch of Class [01:29:48] by Bjarne Stroustrup
- Plain Threads are the GOTO of todays computing [01:27:36] by Hartmut Kaiser
- Scaling with C++11 [01:18:27] by Edouard Alligand
- On Static If, C++11 in 2012, Modern Libraries, and Metaprogramming [00:53:15] by Andrei Alexandrescu, Scott Meyers & Herb Sutter
- Pragmatic Type Erasure: Solving OOP Problems with Elegant Design Pattern [00:43:47] by Zach Laine
- Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My! [01:29:53] by Chandler Carruth
- C++ on Mars: Incorporating C++ into Mars Rover Flight Software [01:26:18] by Mark Maimone
- Transducers: from Clojure to C++ [01:00:03] by Juan Pedro Bolívar
- Better Code: Data Structures [01:03:59] by Sean Parent
- Writing Good C++14... By Default [01:29:05] by Herb Sutter
- Fastware [01:02:16] by Andrei Alexandrescu
- Design Patterns in Modern C++ [01:07:04] by Dmitri Nesteruk
- STL Algorithms - How To Use Them and How to Write Your Own [01:30:36] by Marshall Clow
####Crystal
- Introducing the Crystal Programming Language [00:29:53] by Will Leinweber
- Writing CLI applications in Crystal [00:26:20] by Mark Ranallo
####CSS (yeah, I know, stylesheets are not traditionally programming)
- CSS Levels Up [00:31:39] by Angelina Fabbro
- Your CSS is a Mess [00:51:26] by Jonathan Snook
- CSS Performance Tooling [00:46:28] by Addy Osmani
- Stuff About Cascading Style Sheets [00:20:52] by Mark Otto & Connor Sears
- Your Very Own Component Library [00:20:04] by Alex Sexton
####D
- High Performance Code Using D [00:58:52] by Walter Bright
- Refactoring JIT Compilation [00:43:57] by Maxime Chevalier-Boisvert
- SDC, a D Compiler as a Library [00:48:37] by Amaury Sechet
####Elixir
- Think Different [00:55:47] by Dave Thomas
- Elixir: The Power of Erlang, the Joy of Ruby [00:49:42] by Dave Thomas
- elixir Conf 2014 Keynote [00:59:32] by Jose Valim
- Phoenix - Productive. Reliable. Fast. [00:45:19] by Chris McCord
- New Heights [00:48:42] by Chris McCord
- Learn Elixir: Building a Neural Network from Scratch [00:32:26] by Karmen Blake
- Explicit Elixir [00:27:50] by Paul Lamb
- Enhanced Embedded Systems with Nerves [00:56:11] by Justin Schneck
- Securing Elixir Applications [00:42:52] by Bram Verburg
- Building Multiplayer Games with Phoenix and Phaser [00:34:47] by Keith Salisbury
- The Climb: Experiencing the Rise of Elixir from the Inside [00:43:22] by Bruce Tate & Dave Thomas
- Build Your Own Elxir [00:45:37] by Louis Pilfold
- Code Generation in Elixir [00:43:54] by Bryan Weber
- Elixir in Elixir [00:46:12] by Jay Hayes
- Dialyzer: Optimistic Type Checking for Erlang and Elixir [00:48:57] by Jason Voegele
####Elm
- Controlling Time and Space: understanding the many formulations of FRP [00:40:55] by Evan Czaplicki
####Erlang
- Writing Quality Code in Erlang [00:40:47] by Garreth Smith
- Erlang: Evolution [00:37:24] by Robert Virding
- Implementing Languages on the BEAM [01:47:47] by Robert Virding
- How To Ship New Code Without Taking Your System Down [00:32:47] by Martin Rehfeld
- Why The Cool Kids Don't Use Erlang [00:51:55] by Garreth Smith
- 26 years with Erlang or How I got my grey hairs [01:20:00] by Joe Armstrong
- The How and Why of Fitting Things Together [00:46:40] by Joe Armstrong
- Using Logic Programming Tools to Drive Property-based Testing [00:34:45] by Zachary Kessin
- Chicago Boss: A Web Framework Built for Comfort (and Speed) [00:45:59] by Evan Miller
- Optimizing Native Code for Erlang [00:26:46] by Steve Vinoski
- Scaling Distributed Erlang [00:47:23] by Zandra Norman
- Erlang and Deep Learning [00:47:15] by Garrett Smith
- Pilgrim's Progress to the Promised Land [00:52:24] by Robert Virding
- A Few Improvements to Erlang [00:43:30] by Joe Armstrong
- Erlang in production: I wish I'd known that when I started [00:42:43] by Bernard Duggan
####F#
- F# for Trading [00:50:43] by Phillip Trelford
####Frege
- Frege, a Haskell for the JVM [01:00:12] by Dierk König
####Go
- Go Concurrency Patterns [00:51:27] by Rob Pike
- The move from C to Go in the toolchain by Rob Pike
- Advanced Go Concurrency Patterns [00:34:11] by Sameer Ajmani
- Practical Go Programming [00:59:20] by Andrew Gerrand
- Go for Pythonistas [00:51:17] by Francesc Campoy Flores
- High Performance Systems in Go [00:29:39] by Derek Collison
- Communicating Sequential Processes [00:43:21] by Eric Shull
- Stupid Gopher Tricks [00:53:10] by Andrew Gerrand
- Golang: The good, the bad, & the ugly [00:48:31] by Vincent Batts
- gRPC: Google's high-performance, open-source RPC framework [00:29:22] by Sameer Ajmani
- The Design of the Go Assembler [00:23:56] by Rob Pike
- Go [00:38:18] by Rob Pike
####Haskell
- Demystifying Haskell [00:26:11] by Andrew Rademacher (for Beginners)
- The Algebra In Algebraic Data Types [01:04:35] by Chris Taylor
- Writing a game in Haskell [00:29:37] by Elise Huard
- Lenses, Folds, and Traversals [01:54:46] by Edward Kmett
- Haskell Amuse-Bouche [00:57:13] by Mark Lentczner (the audio quality is scarily bad)
- Enigmatic Haskell, Haskellish Enigma [00:59:41] by Rishiyur S. Nikhil
- Pure Type Systems [01:17:01] by Cody Roux
- Framing the Discussion with EDSLs [01:41:41] by Anthony Cowley (There is a repository containing the slides and code here)
- Introduction to Low Level Haskell Optimization [01:09:40] by Dan Doel
- Haste: Full-Stack Haskell for Non-PhD Candidates [00:40:50] by Erin Swenson-Healey and James Cooper (the sound quality is really bad in the first 5:30 min or so, but it gets better, promise)
- Getting a Quick Fix on Comonads [00:58:33] by Kenneth Foner (for best watching experience, watch it after the optimization talk by dan doel)
- Safe Zero-Cost Coercions for Haskell [00:26:01] by Richard A. Eisenberg
- How Haskell is Changing my Brain [00:48:32] by Alissa Pajer
- Point-Free or Die: Tacit Programming in Haskell and Beyond [00:36:12] by Amar Shah
- Data Parallel Haskell [01:19:56] by Simon Peyton Jones
####Idris
- Type-Driven Development in Idris [00:46:35] by Edwin Brady
- Type-driven Development of Communicating Systems in Idris [00:40:37] by Edwin Brady
####Java & Android
- Java - The Good, Bad and Ugly Parts [00:14:34] by Josh Bloch
- A Few Ok Libraries [01:09:20] by Jake Wharton
- Common crypto mistakes in Android [00:48:44] by Isaax Potoczny-Jones
- Effective Java; Still Effective After All These Years [01:13:59] by Joshua Bloch
- Functional Reactive Programming with RxJava [00:49:27] by Ben Christensen
- Java 8 Lambda Expressions & Streams [01:43:53] by Adib Saikali
- Java 8 Language Capabilities, What's in it for you? [01:25:28] by Venkat Subramaniam
- Living in the Matrix with Bytecode Manipulation [00:55:01] by Ashley Puls
- JVM Bytecode for Dummies (and the Rest of Us Too) [00:50:34] by Charles O.o Nutter
- Recursion Schemes [01:50:29] by Tim Williams
- Fast as C: How to write really terrible Java [00:51:42] by Charles Oliver Nutter
- Ludicrous Speed: Designing For Performance on the JVM [00:39:54] by Cliff Moon
- Nashorn: implementing a dynamic language runtime on JVM in 2014 [00::44:32] by Attila Szegedi
- New Concurrency Models on the JVM: Fibres, Verticles, Agents and Actors [01:03:01] by Lutz Hühnken
- 4 JVM Web Frameworks in 40 Minutes [00:58:38] by Joe Kutner (this is actually for a few JVM languages, not only Java)
- Optional - The Mother of All Bikesheds [00:58:42] by Stuart Marks
- A JVM does that??? [00:51:58] by Cliff Click
####JavaScript (There is a good list of talks about JS to be found here)
- Node.js in 20 Minutes [00:23:08] by Edmond Meinfelder
- Crockford on JavaScript by Douglas Crockford (it's 10 hours long!)
- Really. JavaScript. [00:46:10] by Douglas Crockford
- Monads and Gonads [00:49:48] by Douglas Crockford
- Introduction to Node.js [00:58:18] by Ryan Dahl
- Is Node.js Better [00:41:43] by Brian Ford
- Creating A Scalable JavaScript Application Architecture [00:41:54] by Nicholas Zakas
- Large Scale JavaScript Application Architecture [00:50:40] by Dan Lynch
- Dissecting WebGL [01:11:04] by Justin Windle (you might want to take a look at the slides, you cannot really see them well)
- 10 Angular JS Patterns [01:01:27] by John Papa
- Design Decisions in AngularJS [00:40:00] by Brad Green & Miško Hevery
- Bringing Angular Apps to Life with Animation [00:42:38] by Miško Hevery
- ES6 and 7, the future of JS [01:07:12] by Brendan Eich
- What the heck is the event loop anyway? [00:26:53] by Philip Roberts
- Build Production Ready Javascript Apps With Grunt [00:40:51] by Shai Reznik
- Javascript Combinators [00:54:55] by Reginald Braithwaite
- The Art of the Javascript Metaobject Protocol [00:58:06] by Reginald Braithwaite
- The Art of the JavaScript Metaobject Protocol: Duck Typing, Compatibility, and the Adaptor Pattern [00:26:29] by Reginald Braithwaite
- Functional programming patterns for the non-mathematician [00:29:58] by Brian Lonsdorf (beware; the pace is somewhat high)
- Hey Underscore, You're Doing It Wrong! [00:36:31] by Brian Lonsdorf
- Version 7: The Evolution of JavaScript [01:11:54] by Jafar Husain
- Redemption from Callback Hell [00:50:25] by Michael Jackson & Domenic Denicola
- Async JavaScript with Reactive Extensions [00:28:39] by Jafar Husain
- Immutability, interactivity & JavaScript [00:26:20] by David Nolen
- Raw WebGL [00:55:21] by Nick Desaulniers
- How to effortlessly integrate Three.js into your projects [00:22:00] by Jason Farrell (not as technical as the other *GL talks)
- Classical Inheritance is Obsolete - How to Think in Prototypal OO [00:43:18] by Eric Elliott
- Reactive Game Development For The Discerning Hipster [00:31:06] by Bodil Stokke
- Angular + React = Speed [00:19:27] by Dave Smith
- j2me.js - a multi-threaded Java VM in JavaScript [00:44:10] by Andreas Gal
- If you wish to learn ES6/2015 from scratch, you must first invent the universe [00:25:49] by Ashley Williams
- Constraint programming in the browser [00:28:15] by Adam Solove
- Snappy Performance Apps with Ember.js [00:28:39] by Anthony Bull
- Ember 2.0 [00:40:21] by Erik Bryn
- Solving the real callback hell [00:21:54] by Tim Ruffles
- Benchmarking JavaScript [00:40:54] by Vyacheslav Egorov
- ECMAScript 6 & Web Components [00:36:11] by Brian LeRoux
- Improving Your Workflow With Code Transformation [00:30:18] by Sebastian McKenzie
- Immutable Data and Rect [00:31:10] by Lee Byron
- The first ever presentation on Node.js [00:48:31] by Ryan Dahl
####Julia
- Python and Julia. Why do we need another language? [00:26:19] by Dwight J. Browne
- Crossing Language Barriers with Julia, SciPy,IPython [01:11:18] by Stephen G. Johnson
- Convex Optimization in Julia [00:40:12] by Madeleine Udell
- Julia 1.0 [00:29:46] by Stefan Karpinski
- The Two Cultures of Programming [00:29:40] by Joshua Ballanco
- Machine Code [00:38:11] by Jameson Nash
- Introduction to Writing High Performance Julia (Workshop) [02:48:30] by Arch D. Robison
####Lisp
- Lisp [00:56:00] by Igor Wiedler
- Practical Common Lisp [01:12:04] by Peter Seibel
####Objective C
- RACify Non-Reactive Code [00:24:23] by Dave Lee
####OCaml
- Caml Trading [01:12:43] by Yaron Minsky
####Prolog
- Production Prolog [00:39:57] by Michael Hendricks
- A Taste of Prolog [00:33:48] by Aja Hammerly
####PureScript
- PureScript (Maybe This Time We Get JavaScript Right) [00:44:31] by Bodil Stokke
####Python (There is a good list of talks about Python to be found here)
- Stop Writing Classes [00:27:29] by Jack Diederich
- Super Advanced Python [01:38:56] by Raymond Chandler
- Python 3 Metaprogramming [03:24:00] by David Beazley
- Discovering Python [00:47:50] by David Beazley
- Generators: The Final Frontier [03:50:55] by David Beazley
- Understanding the Python GIL [00:46:10] by David Beazley
- Inside the Python GIL [01:01:03] by David Beazley
- Learn Python Through Public Data Hacking [02:38:22] by David Beazley
- Python Concurrency From the Ground Up: LIVE! [00:46:50] by David Beazley
- Modules and Packages: Live and Let Die! [03:02:34] by David Beazley
- The Cython Compiler for Python [00:48:01] by Dr. Stefan Behnel
- Python Metaprogramming for Mad Scientists and Evil Geniuses [00:37:13] by Walker Hale
- pandas: Powerful data analysis tools for Python [00:34:38] by Wes McKinney
- Loop like a native: while, for, iterators, generators [00:29:15] by Ned Batchelder
- Decorators: A Powerful Weapon in your Python Arsenal [00:31:31] by Colton Myers (only about function decorators)
- Transforming Code into Beautiful, Idiomatic Python [00:48:51] by Raymond Hettinger
- Beyond PEP 8 - Best practices for beautiful intelligible code [00:52:05] by Raymond Hettinger
- Super considered super! [00:46:52] by Raymond Hettinger
- A Python Æsthetic: Beauty and Why I Python [00:46:56] by Brandon Rhodes
- Python Epiphanies [02:21:44] by Stuart Williams (PDF version/code can be found here)
- PyPy.js: What? How? Why? [00:25:38] by Ryan Kelly (2014 version)
- PyPy.js: What? How? Why? [00:30:13] by Rian Kelly (2015 version)
- Type Hints [00:49:26] by Guido van Rossum
- Terminal whispering [00:28:07] by Thomas Ballinger
- Serialization formats are not toys [00:29:54] by Tom Eastman
- Slightly Advanced Python: Some Python Internals [00:59:36] by Alex Martelli
- Getting Hy on Python: How to implement a Lisp front-end to Python [00:47:09] by Paul Tagliamonte
- Fast Python, Slow Python [00:36:11] by Alex Gaynor
- Flask by Example [03:40:29] by Miguel Grinberg
- Outlier Detection in Time Series Signals [00:36:30] by Bugra Akyildiz
- Up and Down the Python Data and Web Visualization Stack [00:39:18] by Rob Story
- Advanced Data Storage [01:19:39] by Thomas Pfaff
- Introduction to SQLAlchemy [02:48:48] by Mike Bayer
- Facts and Myths about Python names and values [00:25:20] by Ned Batchelder
- How to build a brain with Python [00:35:22] by Trevor Bekolay
- Porting Python to run without an OS [00:32:57] by Josh Triplett
- Losing your Loops Fast Numerical Computing with NumPy [00:30:31] by Jake VanderPlas
- How to Be More Effective with Functions [00:29:39] by Brett Slatkin
- Oh, Come On Who Needs Bytearrays [00:44:24] by Brandon Rhodes
- Investigating Python Wats [00:24:09] by Amy Hanlon
- Is Your REST API RESTful? [00:45:31] by Miguel Grinberg
- pyREtic: Reversing Obfuscated Python Bytecode Live Python Objects [01:00:24] by Rich Smith
- Bytes in the Machine: Inside the CPython interpreter [00:34:33] by Allison Kaptur
- My Python's a little Rust-y [00:29:18] by Dan Callahan
- Does your stuff scale? [00:24:31] by Steven Holmes
- Keynote at PyCon Brasil 2015 [00:56:29] by David Beazley (about asyncio)
- Python and Johnny Cash [00:43:15] by James Powell
- Side Effects are a Public API [00:38:26] by Christopher Armstrong
- Removing Python's GIL: The Gilectomy [00:32:06] by Larry Hastings
- Finding closures with closures [00:31:05] by Thomas Ballinger
- Statistics for Hackers [00:40:44] by Jake Vanderplas
- Machete-mode debugging: Hacking your way out of a tight spot [00:35:13] by Ned Batchelder
- Builtin Super Heroes [00:42:13] by David Beazley
####Racket
- Generic Collections: One Interface to Rule Them All [00:18:26] by Alexis King
- Generic Syntax Expanders and Extensible Macros [00:16:26] by Jack Firth
- Purely Functional 3D in Typed Racket [00:22:15] by Neil Toronto
- Racket: A Programming-Language Programming Language [00:51:42] by Robby Findler
- The Racket Manifesto [00:52:42] by Matthias Felleisen
####Ruby
- Programming With Nothing [00:40:50] by Tom Stuart
- Y Not - Adventures in Functional Programming [00:53:22] by Jim Weirich
- Make awesome command line apps with Ruby [00:28:57] by Dave Copeland
- Confident Code [00:31:24] by Avdi Grimm
- Building a binary protocol client in Ruby: A magical journey! [00:30:27] by Trevor Rosen and egypt (James Lee)
- Fun with the Lambda Calculus [00:48:48] by Corey Haines
- How Are Method Calls Formed? [00:52:16] by Aaron Patterson
- Inside Ruby's VM: The TMI Edition [00:39:10] by Aaron Patterson
- Softly, softly typing [00:44:33] by John Cinnamond
- How to Performance [00:30:03] by Eileen Uchitelle
- MiniTest: Write Awesome Tests [00:32:27] by Michael J.I. Jackson
- Speed up Rails, Speed up Your Code [00:41:04] by Aaron Patterson
- Refactoring Ruby with Monads [00:30:04] by Tom Stuart
- That's Not Very Ruby of You [00:36:57] by Ernie Miller
- Ruby, threads, events ... and Flying Robots! [01:12:54] by Jim Weirich
- A Rubyist in Clojure-land [00:37:50] by David Chelimsky
- You Gotta Try This [00:45:12] by Avdi Grimm
- REPL driven development with Pry [00:39:26] by Conrad Irwin
- Pry - The Good Parts! [00:33:33] by Conrad Irwin
- Nothing is Something [00:35:52] by Sandi Metz
- Methods of Memory Management in MRI [00:48:48] by Aaron Patterson
- Composition [00:47:55] by James Dabbs
- Halve Your Memory Usage With These 12 Weird Tricks [00:45:30] by Nate Berkopec
- Metaprogramming? Not good enough! [00:36:09] by Justin Weiss
####Rust
- In Rust We Trust [00:45:01] by Alex Burkhardt
- Concurrency in Rust [00:31:24] by Alex Crichton
- What Rust can teach us about Ruby [00:34:07] by Steve Klabnik
- Rusty Runtimes [00:35:30] by Aditya Siram
- The History of Rust [00:58:41] by Steve Klabnik
- Back to the Futures [00:29:53] by Alex Crichton
- Rust: Safe and Scalable Systems Programming [01:00:09] by Alex Crichton
- Cap'n Proto and Rust: Type Systems for Sharing [00:40:47] by David Renshaw
- Using Generics Effectively [00:23:42] by Without Boats
- The /r/playrust Classifier [00:30:34] by Suchin Gururangan & Colin O'Brien
- RFC: In Order to Form a More Perfect `union` [00:28:21] by Josh Triplet
####Scala
- Scala Monads: Declutter Your Code With Monadic Design [00:31:22] by Dan Rosen
- Scala Versus Java [01:32:35] by Dan Rosen
- What's Next for Scala [01:15:06] by Martin Odersky
- Scala Collections: Why Not? [00:45:42] by Paul Phillips (beware: not very optimistic!)
- Concurrency Anti-Patterns in Scala [00:29:53] by Blake Matheny
- Run free with the monads: Free Monads for fun and profit [00:22:11] by Ken Scrambler
- Minimizing the Slippery Surface of Failure [00:59:26] by Jon Pretty
- Simplifying Scala Collections [00:46:52] by Bill Venners
- Lawful Asynchronous Programming [01:04:31] by Daniel Spiewak
- How types can turn a SQL interpreter into a SQL compiler [00:40:31] by Tiark Rompf
- Evolving Functional Programming Languages [00:40:59] by Erik Osheim
- The Dialectics of Type-Level Programming [00:41:04] by Aaron Levin
- Move Over Free Monads: Make Way for Free Applicatives! [00:45:29] by John de Goes
####Scheme
- miniKanren [00:46:23] by Dan Friedman & William Byrd
- Dan Friedman - Cool Ideas [00:57:00] by Guy Steele
- Barliman: trying the halting problem backwards, blindfolded [00:36:13] by William Byrd & Greg Rosenblatt
####Swift
- Swift Programming Language for JavaScript Developers [00:41:19] by J.P. Simard
- Thinking in Swift [00:24:23] by Abizer Nasir
####VimL
- Vim - I Wish I Knew How To :q You [00:41:08] by Chris Maiden (not really about VimL, more of a general introduction into vim)
- More Instantly Better Vim [00:38:51] by Damian Conway
- Write code faster: expert-level vim [00:41:09] by Ben Orenstein (not really expert level)
####Wolfram Language
- Inside the Wolfram Language [01:08:53] by Stephen Wolfram
####Miscellaneous
- WAT [00:04:17] by Gary Bernhardt
- The Birth & Death of JavaScript [00:29:16] by Gary Bernhardt
- Linus Torvalds on git [01:10:15] by Linus Torvalds
- Linux Sucks - 2014 [00:44:59] by Bryan Lunduke
- You can be a kernel hacker! [00:33:31] by Julia Evans
- A Brief History of Time [00:45:17] by Fred Hebert
- Complexity and the Art of the Left Turn [00:52:05] by K Lars Lohn
- Well I Wouldn't Want To Make a *Dys*functional Game [00:18:17] by Morgan Mullaney
- African Polyphony & Polyrhythm [00:41:49] by Chris Ford
###On theory ####Thoughts on the Industry/Community
- PyCon 2015 Keynote [00:35:51] by Jacob Kaplan-Moss
- What can programmers learn from pilots? [00:31:07] by Andrew Godwin
- Being Human [00:19:45] by Brian J. Brennan (not technical, but very important)
- How to become a Data Scientist in 6 months - A hacker’s approach to career planning [00:56:24] by Tetiana Ivanova
- Software, Faster [00:54:19] by Dan North
- It's Simple [00:37:35] by Adrian Cockcroft
- Common pitfalls of junior developers [00:09:37] by Rachel Warbelow
- You are Not an Impostor [00:33:02] by Nickolas Means
- “Am I Senior Yet?” Grow Your Career by Teaching Your Peers [00:37:57] by Katlyn Parvin
- Normal Considered Harmful [01:07:26] by Alan Kay
- Patterns in Architecture [01:03:35] by Christopher Alexander
####Thoughts on Languages
- Why C++ Sails When the Vasa Sank [01:07:03] by Scott Meyers
- Make Simple Tasks Simple! [01:37:36] by Bjarne Stroustrup
- Running a startup on Haskell [00:50:23] by Bryan O'Sullivan
- Dan Friedman - Cool Ideas [00:57:01] by Guy Steele
- Simplicity is Complicated [00:23:11] by Rob Pike
####Software Development
- Programming is terrible - Lessons learned from a life wasted [01:06:44] by Thomas Figg
- Growing a Language [00:53:31] by Guy Steele
- The Mess We're In [00:45:50] by Joe Armstrong
- Are We There Yet? [01:10:04] by Rich Hickey
- Simple Made Easy [01:01:26] by Rich Hickey
- Simplicity Matters [00:36:54] by Rich Hickey (Simple Made Easy revisited)
- Hammock Driven Development [00:39:49] by Rich Hickey
- The Value Of Values [00:58:53] by Rich Hickey
- The Language of the System [01:02:50] by Rich Hickey
- The Future of Programming [00:32:56] by Bret Victor
- Inventing on Principle [00:54:20] by Bret Victor
- The Most Important Design Guideline [00:58:42] by Scott Meyers
- CPU Caches and Why You care [01:01:55] by Scott Meyers (written in C++, reasonable for almost every software developer)
- Thinking Above the Code [00:59:51] by Leslie Lamport
- I have a good feeling about this - Why tooling is poised to make the jump to hyperspace [00:43:15] by Reginald Braithwaite
- The Not-So-Big Software Design [00:47:31] by Reginald Braithwaite
- The Future Doesn't Have to Be Incremental [00:43:50] by Alan Kay
- The S.O.L.I.D. Principles of Agile OO Design [01:23:35] by Robert C. Martin (way more interesting than it sounds)
- Whence Complexity? [00:55:32] by Michael Nygard
- What does it mean to be Reactive? [00:46:39] by Erik Meijer
- Demystifying Docker [00:29:53] by Andrew T. Baker
- Big Code: Developer Infrastructure at Facebook's Scale [00:46:21] by Bryan O'Sullivan, Christian Legnitto & Katie Coons
- Kicking the Complexity Habit [00:55:30] by Dan North
- One Hacker Way [00:55:36] by Erik Meijer
- Apparatus: A Hybrid Graphics Editor / Programming Environment [00:37:56] by Toby Schachman
- Microservices @ Spotify [00:49:07] by Kevin Goldsmith
- Designing for Performance [00:50:17] by Martin Thompson
- All the Little Things [00:38:46] by Sandi Metz
- Get a Whiff of This [00:38:14] by Sandi Metz
####Debugging
- Debugging with the Scientific Method [00:49:08] by Stuart Halloway
####Compilers/Interpreters
- Parsing with Derivatives [01:13:10] by Matthew Might
- The Clang AST [00:44:53] by Manuel Klimek
- Writing a Nanopass Compiler [00:40:48] by Andy Keep
- Superoptimizing LLVM [00:49:07] by John Regehr
- Implementing Domain Specific Languages with LLVM [00:50:59] by David Chisnall
- PTX Back-End: GPU Programming With LLVM [00:39:34] by Justin Holewinski
- Intel OpenCL SDK Vectorizer [00:35:45] by Natav Rotem
- Rise of the Transpilers [00:44:00] by Jeremy Ashkenas
- How the PyPy JIT works [00:29:05] by Benjamin Peterson
- A VM is a VM is a VM: The Secret Path to High Performance Multi-Language Runtimes [00:47:07] by Mark Stoodley
- Ruby and OMR: Experiments in utilizing OMR technologies in MRI [00:45:38] by Charlie Gracie
- VM Design Choices [01:01:38] by Cliff Click
- Bits of advice for VM writers [00:43:59] by Cliff Click
- Write your own compiler in 24 hours [01:04:07] by Phil Trelford
- The Java Virtual Machine is Over - The Polyglot VM is here [00:51:02] by Marcus Lagergren
- Instaparse [00:38:38] by Mark Engelberg
- Hello Om Next! [01:20:25] by David Nolen
- Understanding Compiler Optimizations [01:50:14] by Chandler Carruth
- So you want to write an interpreter? [00:40:38] by Alex Gaynor
- Let's Write an Interpreter [00:28:34] by Ryan Davis
- An Introduction to Combinator Compilers and Graph Reduction Machines [00:39:30] by David Graunke
####Programming Language Design
- The Worst Programming Language Ever [00:43:46] by Mark Rendle (there is a bit of static humming in the background and the sound quality is not all that great, but it's worth it)
- Papers We Love: Fundamental Concepts in Programming Languages [01:16:39] by John Myles White
- Eve [00:46:03] by Chris Granger
- Propositions as Types [00:42:42] by Philip Wadler
- Let's be mainstream! User focused design in Elm [00:58:23] by Evan Czaplicki
- Pixie - A Lightweight Lisp with 'Magical' Powers [00:33:12] by Timothy Baldridge (a good intro on tracing JITs)
- Transducers [00:45:00] by Rich Hickey
- The Sociology of Programming Languages [00:42:11] by Leo Meyerovich
- Implement an Esoteric Programming Language for Fun [00:22:16] by Arne Martin Aurlien
- A Dinosaur's Thoughts on Programming Language Evolution [00:48:47] by Matthew Flatt
- Syntaxation [00:49:39] by Douglas Crockford
- Make Your Own Programming Language! [00:26:07] by Nick Heiner
- Everything old is new again: Quoted Domain-Specific Languages [00:39:06] by Philip Wadler
- I See What You Mean [00:52:28] by Peter Alvaro
- Sketch-n-Sketch: Interactive SVG Programming with Direct Manipulation [00:40:17] by Ravi Chugh
- Let's Build a Hygienic Macro Expander [00:40:04] by Matthew Flatt
- Into the Core - Squeezing Haskell into Nine Constructors [01:07:48] by Simon Peyton Jones
####Data Science
- Data as Software as Data [00:40:27] by Andrea Burbank
- Expressing complex data aggregations with Histogrammar [00:35:02] by Jim Pivarski
####Data Structures & Algorithms
- Hash Functions and You: Partners in Freedom [00:27:06] by Curtis Lassam
- An Overview of Probabilistic Programming [01:02:54] by Vikash K. Mansinghka (I am unsure where to put this)
- Visualizing Persistent Data Structures [00:37:24] by Dann Toliver
- Persistent Data Structures for Special Occasions [00:44:44] by Michał Marczyk
- Practical Fractals in Space [00:38:27] by Michelle Brush
- Exotic Functional Data Structures: Hitchhiker Trees [00:40:32] by David Greenberg
- Parsing Text with a Virtual Machine [00:43:53] by Ghadi Shayban
####Databases
- Introduction to NoSQL [00:54:52] by Martin Fowler
- Deconstructing the Database [01:06:24] by Rich Hickey
- Postgres Performance for Humans [00:33:49] by Craig Kerstiens
- The Impedance Mismatch is Our Fault [00:58:31] by Stuart D. Halloway
- Sharding and Scaling Your Database [00:42:53] by Neha Narula
- An Ode to 17 Databases in 33 Minutes [00:38:12] by Toby Hede
- Jepsen II: Linearizable Boogaloo [00:44:46] by Kyle Kingsbury
- Cassandra and Go Doubleheader [00:58:23] by Kyle Kingsbury & Al Tobey (this video features two distinct talks, only the first one deals with databases)
- Consistency without consensus in production systems [00:41:09] by Peter Bourgon
- Transactions: myths, surprises and opportunities [00:41:07] by Martin Kleppmann
####Functional Programming
- Functional Principles for Object Oriented Development [00:51:13] by Jessica Kerr
- Adventures in Functional Programming [00:50:34] by Jim Weirich
- Deconstructing Functional Programming [00:48:33] by Gilad Bracha
- Living in a Post-Functional World [00:45:46] by Daniel Spiewak
- Tangible Functional Programming [00:56:25] by Conal Elliott
- Faith, Evolution, and Programming Languages [01:06:54] by Phillip Wadler
- Don't fear the Monad [01:07:11] by Dr. Brian Beckman
- Papers We Love: Composable and Compilable Macros [00:54:49] by Sam Tobin-Hochstadt
- Functional Programming; What? Why? When? How? [00:58:27] by Robert C Martin
- The Functional Final Frontier [00:27:02] by David Nolen
- Functional Programming Design Patterns [01:05:43] by Scott Wlaschin
- Unconventional Programming with Chemical Computing [00:36:00] by Carin Meier
- Why Functional Programming Matters [00:56:09] by John Hughes
- The Essence and Origins of Functional Reactive Programming [00:59:24] by Conal Elliott
- A More Elegant Specification for FRP [00:29:54] by Conal Elliott
- Denotational Design: From Meanings To Programs [02:20:35] by Conal Elliott
####Computer Graphics
- Principles of Lighting and Rendering [01:31:00] by John Carmack
- Making WebGL Dance [00:30:55] by Steven Wittens
- Making things with maths [00:53:45] by Steven Wittens
- Simit: A Language for Computing on Sparse Systems when Performance Matters [00:58:37] by Fredrik Kjolstad
####Computer Vision
- OpenCV and High-Performance Vision on GPU [02:24:59] by Victor Eruhimov
####Robotics
- Robots: You're Still Doing It Wrong [00:49:51] by Katy Levinson (not very formal, DefCon)
- No, Really... Robots and JavaScript?! [00:36:26] by Raquel Vélez
####UX/UI
- User Interface (UX) Techniques [00:51:20] by Janne Jul Jensen
- We Will All Be Game Programmers [00:29:34] by Hunter Loftis
- Practical UI physics [00:34:12] by David DeSandro
####Web Development
- Go To There and Back Again [00:49:06] by Douglas Crockford
- The Birth & Death of JavaScript [00:28:44] by Gary Bernhardt
- Hey Underscore, You're Doing It Wrong! [00:36:31] by Brian Lonsdorf
- Community.js [00:21:40] by Chris Williams
- An End to Negativity [00:27:26] by Chris Williams
- Life is Terrible: Let's Talk About the Web [00:32:07] by James Mickens
- Virtual Machines, JavaScript and Assembler [00:25:57] by Scott Hanselmann
- HTML5 Boilerplate [01:04:20] by Paul Irish
- Delivering the goods [00:23:25] by Paul Irish
- Parallax Performance [00:32:01] by Paul Irish
- Unlock the next era of UI development with Polymer [00:41:31] by Rob Dodson
- React: Rethinking best practices [00:29:32] by Pete Hunt
- React: RESTful UI Rendering [00:36:15] by Pete Hunt
- Hacker Way: Rethinking Web App Development at Facebook [00:44:36] by Tom Occhino, Jing Chen & Pete Hunt (it starts pretty slow and marketingy, but gets much better over time)
- Reactive Programming Overview [00:09:18] by Jafar Husain (very concise and dense)
- Immutability: Putting The Dream Machine To Work [00:22:06] by David Nolen
- How I learned to Code by Making 180 websites in 180 days [00:22:03] by Jennifer De Walt
- How NOT to Measure Latency [00:42:59] by Gil Tene
- C10M - Defending The Internet At Scale [00:47:53] by Robert Graham
- Upgrading the Web [00:41:19] by Douglas Crockford
####System Architecture
- Keeping a System Running Forever [00:28:06] by Fred Hebert
- Scalability at YouTube [00:38:43] by Mike Solomon (long intro; starts about 8 minutes in)
- The Power Of UNIX [00:30:03] by Dan North
- Speed & Scale: How to get there [01:04:51] by Adrian Cockcroft
- Runtime scheduling: theory and reality [00:42:11] by Eben Freeman
- Kill "Microservices" before its too late [00:39:41] by Chad Fowler
####Distributed Programming
- Distributed Systems 101 [00:45:25] by lvh
- Distributed Eventually Consistent Computations [00:49:37] by Christopher Meiklejohn
- Jepsen IV: Hope Springs Eternal [00:54:33] by Kyle Kingsbury
- Coordination-Free Computations [00:46:15] by Cristopher Meiklejohn (really fast talker)
- K things I know about building Resilient Reactive Systems [01:00:02] by Joe Armstrong
####Logic Programming
- Challenges for Logic Programming [00:40:45] by Steve Miner
- Constraint Logic Propagation Conflict Spreadsheets [00:33:50] by William Taysom
- Web Testing with Logic Programming [00:39:10] by Daniel Gregoire
####Machine Learning
- Neural Nets for Newbies [00:30:57] by Melanie Warrick
- The Unreasonable Effectiveness of Deep Learning [01:07:24] by Yann LeCun
- Automatic Algorithm Invention with a GPU [01:02:04] by Wesley Faler
- From the Lab to the Factory: Building a Production Machine Learning Infrastructure [01:04:27] by Josh Wills
- The Unreasonable Effectiveness of Data [01:02:56] by Peter Norvig
- Machine learning is not the future [00:38:59] by Rajat Monga
####Theoretical Computer Science
- Church's Coincidences [01:03:41] by Philip Wadler
- Programming the Turing Machine [01:06:10] by Barbara Liskov
- Turing and the Riemann zeta function [01:06:54] by Andrew Odlyzko
- Lambda Calculus Then and Now [00:30:08] by Dana S. Scott
- Papers We Love: An Axiomatic Basis for Computer Programming [01:04:32] by Jean Yang
- Category Theory for the Working Hacker [00:50:51] by Philip Wadler
####DevOps
- Chef Style DevOps Kungfu [01:16:08] by Adam Jacob
- Salting things up in the sysadmin's world [00:37:21] by Juan Manuel Santos
- Demistifying SNMP [00:49:19] by Douglas Mauro
- Your infrastructure is not a unique snowflake, and that's ok! [00:37:39] by Jeremy Edberg
- I got 10 trillion problems, but logging ain't one [00:25:17] by John Graham-Cumming
####Hardware
- Let's Build a Computer! [00:29:03] by Ryan Davis
- The Future of Microprocessors [00:46:35] by Sophie Wilson
- A Crash Course in Modern Hardware [00:59:20] by Cliff Click
####Research
- How to Give a Great Research Talk [00:58:41] by Simon Peyton Jones
####Mathematics Those are not necessarily programming-related and possibly very advanced mathematics.
- Category Theory [01:36:54] by Tom LaGatta
- The Continuum Hypothesis and the search for Mathematical Infinity [00:55:18] by W. Hugh Woodin
- Field of Rationality and Category Theory [00:44:07] by Michał Heller
####Misc
- How To Shut Down Tolkien [00:42:41] by Brandon Rhodes
- DjangoCon EU 2013 Keynote [00:31:10] by Brandon Rhodes
- Clojure: Programming with Hand Tools [00:58:38] by Tim Ewald
- To the Moon! [00:52:43] by Russ Olsen
- States and Nomads: Handling Software Complexity [00:23:31] by Zach Tellman
- Software Development Lessons from the Apollo Program [00:29:59] by Julian Simioni
- Madam Sandi Tells Your Future [00:38:13] by Sandi Metz
- Juggling Patterns and Programs [00:48:50] by Steve Miner
- Kolmogorov music [00:42:05] by Cristopher Ford
Generally, a lot of talks are welcome on this list. The topic does not matter too much - it should be linked to Computer Science - but the format does. Talks are welcome if
- they were recorded at a conference or meetup (i.e. no screencasts or vlogging)
- they are awesome™!
I hope that is straightforward, understandable and makes sense.