Coder Social home page Coder Social logo

programming-talks's Introduction

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 language 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.

[A] after a talk name denotes a talk that someone thought could be listened to as audio, without needing the video. This may not reflect your experience with the talk, but you can make a pull request to change it.

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.
  • Zach Tellman (Clojure, Theory): Another person in the Clojure landscape with interesting, important insights that do not only apply to Clojure. His talks on theory should inspire you to think more deeply about what you are doing, which is probably the most important thing to take away from anything ever.

Contents

On Programming Languages

Alpaca

APL

Assembly

Bash

C

Clojure







C++







Crystal

CSS

(yeah, I know, stylesheets are not traditionally programming)

D

Elixir





Elm

Erlang





F#

Factor

Frege

Go






Hackett

Haskell





Idris

Java & Android




JavaScript

(There is a good list of talks about JS to be found here)





Julia




Lisp

Objective C

OCaml

Prolog

PureScript

Python

(There is a good list of talks about Python to be found here)








Racket

Ruby






Rust




Scala



Scheme

Smalltalk

Swift

Unison

VimL

Wolfram Language

Zig

On theory

Compilers/Interpreters

Computer Graphics and Vision

Creative Technology

Databases

Data Science

Data Structures & Algorithms

Debugging

DevOps

Distributed Systems

Entrepreneurship

Functional Programming

Game Development

Hardware

Logic Programming

Machine Learning

Mathematics

Those are not necessarily programming-related and possibly very advanced mathematics.

On Languages

On the Industry/Community

Operating Systems

Performance Engineering

Programming Language Design

Program Synthesis

Research

Robotics

Security

Software Development

System Architecture

Testing

Theoretical Computer Science

Type Theory

UX/UI

Web Development

Miscellaneous

Contributing

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.

When adding a new section/subsection or entry, please try to ensure it's sorted accordingly:

  • The two top-level sections (Languages and Theory) have their subsection headings organised alphabetically (APL > VimL).

  • The Languages subsections are sorted ascending by year (last field), then alphabetically by title. For example, an entry with (2012) should be below one with (2017) regardless of title; entries from the same year are then alphabetised within each year-group.

    • Groups of years are separated from one another by <br>\n (<br> followed by an empty line), except if a group would contain only a few (<= 3) talks and it is near another small group, in which case small adjacent year-groups are consolidated. An entry or two might also be included in an adjacent larger year-group iff the entries have different years.
  • The Theory subsections are sorted only ascendingly by year, with no attention to title, and no grouping by year.

    • It doesn't matter where in a group of same-year-talks a specific (added) talk goes.

programming-talks's People

Contributors

0xflotus avatar alexbrbr avatar alexnm avatar amitech avatar amosaidoo avatar arctice avatar atiabbz avatar bobmcn avatar brackendev avatar catb0t avatar ccharles avatar cerisier avatar codesteak avatar dcmoore avatar fiv0 avatar fullchee avatar gee2k avatar guillego avatar hellerve avatar jacekschae avatar jackawatt avatar janczer avatar jmesyou avatar kdheepak avatar palerdot avatar pepasflo avatar perdian avatar pufface avatar ramblurr avatar thalmann avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

programming-talks's Issues

Thank you!

Not actually an issue, I just wanted to say I am so happy to check in on this list ~6 months later and find that it is still being updated! What an incredible resource!

Under which section should this talk go?

I'm really enjoying (and still watching...) Breaking The x86 Instruction Set by Christoper Domas (https://www.youtube.com/watch?v=KrksBdWcZgQ). It was presented at Black Hat USA 2017, and it's 44:28 long.

It's about hacking and messing with Intel's 8086 instruction set architecture (ISA) so it goes under hardware, but it's also about security, debugging, system architecture, etc.

Which section do you think fits it best?

Durations on links

It would be nice to have the durations of the videos right beside the link

Two talk suggestions

Hello again @hellerve ! I hope I haven't been trolling your repos too much lately :-) Here are two talks I've watched recently that I really enjoyed, and I think you would appreciate:

  1. Performance Matters [00:42:14] by Emery Berger (2019)
    • This talk was from this year's Strangeloop and was about how our current approach to performance optimizations don't mean much. Not sure how to categorize this one, maybe under Performance Engineering?
  2. On the Expressive Power of Programming Languages [00:59:03] by Shriram Krishnamurthi (2019)
    • This talk was from this year's PWLConf and was about how we can formalize programming language "expressiveness". The speaker is very engaging! Probably categorize this under Programming Language Theory.

Mike Acton and other "Data-Oriented" talks

A lot of the thought in the Clojure circles can be considered "Data-oriented", but that's usually from a very high-level perspective. Mike Acton gives a talk where explores similar ideas, but at the opposite extreme -- e.g. considering "how many bytes of this L1 cache read were actually useful?", etc. Really interesting!

https://www.youtube.com/watch?v=rX0ItVEVjHc

I then found an entire list of "Data-oriented" talks. Do you also include links to other "talks" lists?

https://github.com/dbartolini/data-oriented-design

License?

Hey, awesome list, can I shamelessly steal it's contents? Working on an app for rating/labeling/previewing talks, this would be a nice seed.

OPLSS Talks

I am making this an issue because I am not sure if it fits the format.

The Oregon Programming Languages Summer School is a known summer school about programming language design, especially it's theoretical underpinnings.

The talks are all online:
https://www.cs.uoregon.edu/research/summerschool/summer16/curriculum.php
https://www.cs.uoregon.edu/research/summerschool/summer15/curriculum.html
https://www.cs.uoregon.edu/research/summerschool/summer14/curriculum.html
https://www.cs.uoregon.edu/research/summerschool/summer13/curriculum.html

Etc..

Dead links: Dependently typed functional programming in Idris

Here are the exercises / slides from David Christiansen but the same links are dead links. https://github.com/david-christiansen/IdrisAtGalois2015

I think Galois' entire Vimeo channel was removed or made private, as it seems to no longer exist (or has only 5 videos on it, compared to dozens of talks they've hosted).

It's very unfortunate and I wish I could keep a copy of all the videos on the list, but I haven't got the disk space.

We could replace it with (mirrored) versions of Edwin Brady's 3 lectures on the same topic with a similar title, https://vimeo.com/61576198 (although I do like Christiansen)

They are uploaded on his account and listed on the Idris website, https://www.idris-lang.org/dependently-typed-functional-programming-with-idris-course-videos-and-slides/

So maybe they are less susceptible to disappearing.

Any ideas?

Report broken link

Concurrency Is Not Parallelism [00:31:22] by Rob Pike (2013) talk in Go language programming section is no longer accessible via the link provided in this repo. It would be best to update the link or remove the entry from list

Denotational Design

I suggest including the following three videos:

Lambda Jam 2015 - Conal Elliott - The Essence and Origins of Functional Reactive Programming
https://www.youtube.com/watch?v=j3Q32brCUAI

Lambda Jam 2015 - Conal Elliott - A More Elegant Specification for FRP
https://www.youtube.com/watch?v=teRC_Lf61Gw

Lambda Jam 2015 - Conal Elliott - Denotational Design: From Meanings To Programs
https://www.youtube.com/watch?v=bmKYiUOEo2A

The reason being, Conal mentions how "functional" programming is very ill defined and the essence of fp may be better understood as denotative.

Date on videos

I could go through the videos and get the date for each of them.
It usually helps to know how old a video/topic discussed is.

The addition of new links should have a requirement of having the date in the title

Github Markdown doesn't render extra newlines as <br>

I never bothered to check that my simplistic method of breaking up the groups of talks actually rendered correctly in Github. It looks right in my editor's GH Markdown renderer though.

The solution is quite ugly, along the lines of

* [-Os matters](https://www.youtube.com/watch?v=vGV5u1nxqd8) [00:44:12] by **Mark Zeren** (2018)

<br/>

* [10 Core Guidelines You Need to Start Using Now](https://www.youtube.com/watch?v=XkDEzfpdcSg) [01:02:32] by **Kate Gregory** (2017)

I'm still testing the semantics but I'll make a pull to fix it, because currently the extra newlines make every bullet have too much spacing.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.