Ask HN: What's your favorite tech talk?

848 points by mngutterman ↗ HN
Simply put, what are your favorite talks or trainings? It could by a one-off lecture about a specific concept or a series of talks about a language. Maybe it's a TED talk or a session from a con. Either way, what's that one talk that changed the way you think and you feel everyone needs to see?

265 comments

[ 3.5 ms ] story [ 252 ms ] thread
Big fan of Rich Hickey. I found most of his talks really great, and applicable beyond the Clojure universe. My favorites: "Are we there yet?" and "Simple made Easy".
+1 this comment. I do not recall in which of his talks he defines "complexity" but his definition is excellent.
> I do not recall in which of his talks he defines "complexity"

that'd be "Simple Made Easy"

Agree this one is a must watch
> what's that one talk that changed the way you think and you feel everyone needs to see?

Growing a Language by Guy Steele.

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

Thanks for posting this; it's my favourite talk too :)

BTW, does somebody know of (or have) a better quality version of this talk? The one on YouTube has some annoying audio cuts. There used to be a copy on Google Video[1], which i don't remember having the same issues.

[1] https://news.ycombinator.com/item?id=2359174

This is a great talk, but what he was advocating never came to pass. He wanted to add 3 things to Java:

    - operator overloading
    - small value types on the stack (for vectors, rationals, etc.)
    - generic types
Generic types are the only feature that made it (not without some controversy).

C++ has all three features. I suppose there is some success in games and graphics using overloaded operators on vector types. But otherwise it doesn't seem like a huge win, or something that is critical for the design of a language.

Python has operator overloading. I never really use it, but I guess it did allow NumPy and Pandas to exist. And TensorFlow uses it.

Perhaps it boils down to the fact that Java is more of a business language, and C++ and Python have more mathematical applications, which require richer algebraic expressions of many types. But I suppose if Java had gotten operator overloading, it may have been used more for scientific computing.

Perl 6 and Racket seem to be the languages that really allow creating your own language. But actually I heard Larry Wall say that they want to provide so many little languages within Perl 6 that users don't need to invent their own. Because this often makes it harder for others to read your program.

After lots of talks I started going to the library and found out it's a lot more effective to grow knowledge. Maybe I'm too ADHD-able when watching videos.
I can read way, way faster than I can listen to a video. Also, reading usually comes with charts and code I can cut and paste. Books are way more effective than videos for me.
I used to believe this. But reading and deep understanding aren't that correlated, so speed is secondary to me. Videos have just less content than books and don't bring a lot compared to textual encodings of ideas. Maybe the context help with a book, you're by yourself, trying to imagine ideas rather than hearing it from someone else (which could cause more "acceptance" rather than understanding).
> But reading and deep understanding aren't that correlated, so speed is secondary to me

With a book, it's easy to speed up and slow down as needs be.

Talks are a great way to discover interesting ideas, technologies, concepts etc. And if the talk inspired, one can then later invest in reading a book.
Fair point, that said, don't forget libraries, they're full of gems.
But brief summary type articles are an even faster way of discovering interesting ideas, technologies, concepts, etc... You can skim them and jump around and generally expose yourself to more ideas in the same amount of time.
The good thing is you can do both. Sometimes I like watching or speeding through a talk and then looking for books about it. I'm not necessarily looking to get enlightened or become an expert from a talk but rather I'm seeing a quick pitch for an idea or technology I can later research at length.
I also like that I can skim text, and on a computer: C(tl|md)+f for stuff

Learning to skim text quickly for what I need is probably the single most important skill I possess.

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

This was the first time I watched pg give a talk. It was the talk that brought about the biggest change in the way I think about the world, my ambitions. The talk was the beginning, reading more about pg, I came across his essays and then HN.

Bret Victor - Inventing on Principle https://vimeo.com/36579366

We can argue on some of the points he makes but we can all agree that the demos are very impressive.

By far my favorite talk is and has been for a very long time Bret Victor's inventing on principle, for me, nothing comes close, except for some of his other work I suppose.

https://vimeo.com/36579366

Agreed.

Was gonna post this if it wasn't up already.

After this, The Birth and Death of Javascript: https://www.destroyallsoftware.com/talks/the-birth-and-death...

He could've taken the concept further tho. I think there are real hardware simplifications you could do if the OS is a jitting VM - no memory mapping unit and take out the expensive fully-associative TLBs.

This is great. I love that he goes into the future. :)
this is quite outdated
I always have trouble when telling people in person to go watch this - how should I pronounce the "J" in Javascript?

* SPOILER ALERT, and seriously go watch it first *

If I pronounce "J" I do him an unjustice, and if I pronounce "Y" I ruin a great surprise that comes quite a few minutes into the talk.

I always go with the "J" pronunciation. It maintains the expectation that the talk makes a joke out of by breaking. I would rather give everyone that first time experience of hearing the "Y" pronunciation than do Gary an injustice.
What's especially neat about that talk is the fact that it's from CUSEC: a student-run conference out of Montreal. So many great talks I've seen online were from that conference.

Never went to it as a student (it was only 3 hours away, how did I miss this?) but lots of my friends did, one even ran the thing for a year I think.

Best talk open ever: "Unlike the previous session, I don't have any prizes to give out. I'm just going to tell you how to live your life"
Thanks for posting this, very much appreciated.

Are there any tools available which allow you to live code in such a way?

I did a quick search and found this - http://stackoverflow.com/questions/9448215/tools-to-support-...

It seems quite out of date though.

Y Not - Adventures in Functional Programming by Jim Weirich https://www.youtube.com/watch?v=FITJMJjASUs

The Coming Civil War over General Purpose Computing by Cory Doctorow http://boingboing.net/2012/08/23/civilwar.html

Cybersecurity as Realpolitik by Dan Geer https://www.youtube.com/watch?v=nT-TGvYOBpI http://geer.tinho.net/geer.blackhat.6viii14.txt

I'll second "Y Not" by Jim Weirich. It's just such a charming talk. My programming teacher in high school was like that, and I think it's such an excellent way to teach. From the careful way he meanders to the solution to the fact it was a live coding session really grounds the explanation of how the Y combinator works.
To Dissect a Mockingbird is even better, though...
https://www.youtube.com/watch?v=hoDSv5KpEJk

InfoSec talk. Best lines from talk..

"Basic lessons are not learned such as know thy network"

"You have to learn your network, you have to have skin in the game"

"Defense is hard, breaking stuff is easy"

"If you serve the God's of compliance you will fail"

"Compliance is not security"

"Perfect solution fallacy"

"People are falling over themselves not to change, shooting great ideas down."

"Perfect attacker fallacy, they don't exist, they are a myth!"

"Attackers are not that good because they don't need to be that good."

Speaker is Eric Conrad

Alan Kay is my favorite tech curmudgeon.

1) Alan Kay: Is it really "Complex"? Or did we just make it "Complicated" https://www.youtube.com/watch?v=ubaX1Smg6pY

Take note that he is not giving the talk using Window & PowerPoint, or even Linux & OpenOffice. 100% of the software on his laptop are original products of his group. Including the productivity suite, the OS, the compilers and the languages being compiled.

2) Bret Victor: The Future of Programming https://www.youtube.com/watch?v=IGMiCo2Ntsc

I already see a bunch of people posting and upvoting Bret Victor's "Inventing on Principle", but I think his "Media for Thinking the Unthinkable" is better.

https://vimeo.com/67076984

Raymond Hettinger's talk about good code reviews -- https://www.youtube.com/watch?v=wf-BqAjZb8M

Carmack's talk about functional programming and Haskell -- https://www.youtube.com/watch?v=1PhArSujR_A

Jack Diederich's "Stop Writing Classes" -- https://www.youtube.com/watch?v=o9pEzgHorH0

All with a good sense of humor.

Yes, RH's Beyond PEP8 is great, even if you don't do Python. Will put the others in my queue.

I'm reminded of Crockford's "Good Parts" of Javascript, I believe where he introduced me to the "Mother of all Demos."

Everything I've seen by Crockford is great!
Came here to add "Stop Writing Classes", a fantastic talk to show how to refactor away from dogmatic OOP.
Linus Torvalds on Git. It's funny, and it really does tell you a lot about why Git is the way it is.

Bryan Cantrill's 2011(?) Lightning talk on ta(1). It's fascinating, but it also shows you just long-lived software can be.

Randall Munroe's Talk on the JoCo cruise. Because it's effing hilarious, and teaches everybody the important art of building a ball pit inside your house.

Finally, an honorable mention to three papers that don't qualify, but which I think you should read anyway.

Reflections on Trusting Trust: This is required reading for... Everybody. It describes a particularly insidious hack, and discusses its ramifications for security.

In the Beginning Was The Command Line: If you want get into interface design, programming, or ever work with computers, this is required. It's a snapshot of the 90's, a discussion of operating systems, corporations, and society as we know it. But more importantly, it's a crash course in abstractions. Before you can contribute to the infinite stack of turtles we programmers work with, you should probably understand why it's there, and what it is.

Finally, The Lambda Papers. If you've ever wondered how abstractions work, and how they're modeled... This won't really tell you, not totally, but they'll give you something cool to think about, and give you the start of an answer.

> "Finally, an honorable mention to three papers that don't qualify, but which I think you should read anyway."

If we're going for papers, then I'm guessing books are allowed too. If so, for anyone interested in giving themselves a grounding in the fundamentals, it's worth checking out Code by Charles Petzold. I've been going through it, it's excellently written, and has helped me fill in gaps in my understanding of how computers work.

https://www.amazon.co.uk/Code-Language-Computer-Hardware-Sof...

SICP, Land of Lisp, Exploding the Phone, and The Cuckoo's Egg, while I haven't finished all of them, were all instrumental in making me who I am today.