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?
For an opinion on the Sun to Oracle transition, there is "Fork Yeah! The Rise and Development of illumos" by Bryan M. Cantrill, Joyent. His Larry Ellison rant makes me smile:
https://youtu.be/-zRN7XLCRhc?t=33m00s
Oh god yes. And from the Manta talk, to paraphrase:
I believe that if you talk about Oracle without going into Nazi allegory, than some understanding has been left on the table. In fact, I firmly believe that if you were talking to someone who hadn't heard of WWII but was an Oracle customer, that you would explain the Nazis to them in Oracle allegory:
Wow. Really?
Yes, it's true: Larry Ellison owned a whole country
Oh god! The humanity! Just imagine the licences on that thing
I know, it was terrible dude, just ask Poland
Also, for another excellent talk by Bernhardt, this time about the differences in philosophy between Python and Ruby, which gives a very fair critique of them both: https://vimeo.com/9471538.
I worked for Oracle Social as a software engineer for some Facebook Pages WYSIWYG application, and this is their business model - as explained to me - when I asked, "Who is going to be buying our product?"
My manager: "Oh, so we have all of these enterprise customers that purchase software from us. Basically, they are presented with a list of all of our various enterprise applications [FYI, there's a TON of them] with check boxes next to each one. Our application licenses are sold using a subscription model. Most companies don't bother reading the list and just pay for everything, which will include ours."
WTF? I wrote some of the Ruby on Rails code for the application my team was working on. Also, this was in 2012; Facebook Pages had just been released, and no one even understood why a "Page" was the name given to a concept in which businesses could establish Facebook accounts in order to promote their brand and products, but a "Page" contained multiple "web pages" of content within the larger "Page" object.
In short, our product sucked at every level and even I, a member of the development team, didn't know how to use it. But because it was on the almighty "Product List", it added millions of dollars to Oracle's net income, despite the fact that I'm guessing hardly any customer knew what it was, let alone knew how to use it.
I resigned shortly after the first release, so I have no idea what happened to the product or how long it remained an official Oracle enterprise software application, appearing on the "Product List".
While it was nice being 26 years old and making a $70,000 salary, receiving a nearly-guaranteed $10,000 annual bonus, having a 401k package with company-matched contributions, getting full healthcare benefits which included a FSA, and being able to order all of the free snacks and beverages that one could think of simply by telling the secretary to add them to the supply list . . .
I just couldn't work at a place where innovation didn't matter, the customer didn't matter, and even the product didn't matter. Not to mention that, after having worked there, with 100 other people, for 3 months, maybe 10 people knew my name (and my product team consisted of 8 people - I'm only including 5 of them in the 10). I happened to discover one day that I was the youngest employee there, and I'm pretty sure that people didn't like me based on that fact alone.
Oh well, I applied for a similar job at a digital marketing agency down the street the next week, and soon thereafter, began working again, now earning a salary which was $10,000 greater than what I made at Oracle (and which included all of the same benefits).
As a univerity senior, thank you for this. Oracle was already low on my list of companies to apply to for a full-time job, and this put the nail in that coffin.
If you're in the Seattle area, you still might want to consider Oracle Cloud (I don't work there). They've poached a shit-ton of senior AWS engineering talent, and from what I hear they're developing a kickass product.
/s/Oracle/Intel as a software green badge and this sounds spookily identical to my life right around then too, right down to the salary and people not liking me because I was the youngest employee.
As people usually point out when he comes up, just about any Bryan Cantrill talk is at least entertaining, and usually contains a good amount of technical, historical and personal information in various amounts.
Bryan Cantrill is funny, but I take some of that talk with a dose of salt. See Danese Cooper's youtube comment "I know its fun to re-write history to suit your current politics."
"The Last Lecture", by Randy Pausch. While it's by a well-known CS professor (who was dying of cancer at the time), it's not a technical talk, but about life and work, and how to make the most of it. One of the most inspiring things I've ever seen.
o u said steve jobs: really his announcement of the ipod was an incredible speech .. it ties together tech+art+music+apple and his vision appears pretty fresh.
And I upvoted you for explaining why you downvoted it. No point downvoting you. Comparing the end results of both, we only have a higher chance of a net benefit by upvoting you, regardless of whether I agree with you or not. I hope the rest of the HN community also takes this approach before voting.
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.
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.
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.
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.
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.
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.
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.
I see a couple of Bret Victor videos here, but the one I loved the most was "The Future of Programming":
https://vimeo.com/71278954
Really set me on a path of re-examining older ideas (and research papers), for applications that are much more contemporary. Absolute stunner of a talk (and the whole 70's gag was really great).
"What would be really sad is if in 40 years we were still writing code in procedures in text files" :(
I really liked the message of each generation of programming considers the next "not real programming". It makes me reconsider the pushback against node-esque micro-packages: http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how.... Maybe this is just the next logical evolution of programming.
Came here to give the same answer. Between "Future of Programming" and the Mother of All Demos (https://www.youtube.com/watch?v=yJDv-zdhzMY) I find it mindbogglingly depressing that it feels so much like the entire programming field has stagnated for the last 40+ years, re-implementing the same [flawed? limiting? incorrect?] ideas over and over.
David finds himself in a dark vault, stuck for months sifting through deliberately obfuscated pile of old code and manuals. All seems lost, but then he finds Python on a vanilla Windows box.
Fork Yeah! The Rise and Development of Illumos (Bryan Cantrill)
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.
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.
Agree. I've watched a ton of talks over the years on a variety of topics/technologies, and Simple made Easy just feels like a classic, and is timelessly relevant.
I think it is so easy for us to discuss the impact of big data and quickly get into the weeds, but I think in this talk Norvig does an especially great job in making you truly appreciate the seismic impact that the availability of massive quantities of data can have on your way to think about problems. This is one of the first things I ever saw of him, and I've been in love ever since.
I love everything about this talk. It walks you through building a lexer from scratch in a simple and elegant way, through a very interesting use of coroutines. I appreciate the bits of humor in the talk as well.
Rob Pike is far more pleasant than his acolytes (for lack of a better word). Pike makes me want to clap: cat-v makes me want to vomit. It's the DJB people with none of the charm.
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.
Excellent talk on the hardware side of security, goes into some really cool theoretical hard disk defense stuff, incredibly insightful and introduces a hardware security tech toy so fun you'll want to go out and order it the moment you're done watching. The speaker is entertaining as all heck to boot.
Interesting talk on the theoretical limits of code size and engineering versus tinkering. Also talks a lot about Alan Kay's philosophy of computer science which analogizes systems to biological systems, which are the systems with the largest proven scaling on the planet.
This talk is so prescient you won't believe your eyes. Given in 1968, Douglas demonstrates just about every major computing concept in use today on a modern machine, along with some ones that are still experimental or unevenly distributed such as smooth remote desktop and collaborative editing.
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".
Right now it's Boundaries, by Gary Bernhardt. He details the importance of separating out pure business logic from the plumbing code that brings it input and directs its output ("functional core, imperative shell").
I think Gary was way ahead of the industry when he did this talk in 2012. Today it's common to look at Erlang, Haskell and other good but previously unpopular languages and retrofit their ideas to your language of choice (or build something like Elixir/Kotlin/Swift).
But back then Ruby/Python/Java/etc devs would usually not look at anything else because functional programming was only something you might have heard in university and OOP was clearly the only way to build practical software.
For me this talk was especially great as he only explains the problems, possible solutions and their trade-offs and leaves the (clear?) conclusion to the audience instead of shoving "you should really use X because it's awesome" down their throat.
> I think Gary was way ahead of the industry when he did this talk in 2012. Today it's common to look at Erlang, Haskell and other good but previously unpopular languages and retrofit their ideas to your language of choice (or build something like Elixir/Kotlin/Swift). But back then Ruby/Python/Java/etc devs would usually not look at anything else because functional programming was only something you might have heard in university and OOP was clearly the only way to build practical software.
Ruby and Python were incorporating things from FP long before 2012; the idea that Ruby and Python were pure-OOP and not following inspiration from languages with other primary paradigms before that is simply historically inaccurate, Ruby and Python were never dominated by OOP-is-the-one-true-way philosophy.
I'm not talking about superficial syntax like map/filter for collections.
The notion of keeping the majority of your code side-effect-free with immutability, built-in concurrency and message-passing as idiomatic parts of the language/ecosystem is to this day uncommon and partially impossible in Python/Ruby.
I had the pleasure of working with Samy back at Fonality (my first job!) He's such a cool, smart, and just all around amazing dude. Anything he does is always fun, interesting, and hacker-ish.
I think this can really really change how we look at everyday programming tasks everywhere from the type of tooling we choose to how we approach problems.
I'd mention Bret Victor's work before (maybe Drawing Dynamic Visualizations?), but Bret cheats by writing a lot of amazing code for each of his talks, and most of the awesome comes from the code, not his (great nonetheless) ability as a speaker.
Then you have John Carmack's QuakeCon keynotes, which are just hours and hours of him talking about things that interest him in random order, and it still beats most well prepared talks because of how good he is at what he does. HN will probably like best the one where he talks about his experiments in VR, a bit before he joined Oculus (stuff like when he tried shining a laser into his eyes to project an image, against the recommendations of... well, everyone): https://www.youtube.com/watch?v=wt-iVFxgFWk
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.
I especially like the part in the middle where he tells the story of how a an awful GNOME applet was killing a Sun Ray server, and how he tracked down the culprit with DTrace.
I don't really have a favorite, but recently I really enjoyed "8 Bit & '8 Bitish' Graphics-Outside the Box"[1]. The name didn't catch my eye, but then I learned that it was a lecture by the very same Mark Ferrari who made these[2] unbelievably beautiful color-cycling pixel art animations. Master of his art — definitely worth listening to!
Detailed discussion of how to get the most out of your memory cache and memory bandwidth, focusing on games development. It's full of examples of how understanding both the problem and the hardware, and working in a straightforward way, can give you huge performance gains over using poorly suited abstractions. It shows how low level thinking is still important even with modern compilers. I recommend people interested in performance optimization watch it.
First, the "Mother of all Demos" by Doug Engelbart: https://youtu.be/yJDv-zdhzMY
This was in 1968, at a time when most people thought about computers as being machines for solving computation problems, like processing payrolls or calculating rocket trajectories. Engelbart and his students had the radical idea that computers could be used for human "knowledge worker" productivity. In one 90 minute presentation, he introduces everything from the idea of a GUI, to the mouse, to word processing, hypertext, computer graphics, and (simulated) videoconferencing. You have to be able to put yourself in the shoes of the audience that has never seen this stuff before, and it'll blow you away.
Something more recent:
Martin Fowler's great introduction to NoSQL: https://youtu.be/qI_g07C_Q5I
Not so technical, this is a great overview of the reasons why (and when) NoSQL is valuable. He crams a lot into a short speech, so it's one of the rare videos I've required students in my database classes to watch.
Now, really getting away from the technical, I have to recommend watching the IDEO shopping cart video: https://youtu.be/taJOV-YCieI
This is the classic introduction of Design Thinking to the world, in 1999. If you're using the Lean Startup or an Agile method, but have never heard of IDEO's shopping cart, you may be able to get along fine at work, but you should be kind of embarrassed like a physicist who's never read Newton.
Aside from the typical, I watched Damian Conway "Standing on the shoulders of giants" from YAPC 2016 last week and found it interesting. Always fun to see a modern feature full language collide with history and algorithms.
Too many great talks to mention, but if I had to pick one it would be Ted Nelson's few minutes of demonstration of Xanadu. Demonstration is lacking, but what he said about the concept/idea is what stuck with me. Deep and referential(?) content. https://www.youtube.com/watch?v=En_2T7KH6RA
1
Martin Thompson busting myths about hardware and explaining why it's important to know. Mechanical sympathy makes you better, because you know how the code actually runs on the machine and interacts with different layers of memory
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).
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.
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.
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.
How To Design A Good API and Why it Matters [0]
The Principles of Clean Architecture [1]
The State of the Art in Microservices by Adrian Cockcroft [2]
"The Mess We're In" by Joe Armstrong [3]
Watching that talk brought me over to the "a picture or a few words per slide" style of presentation, rather than the "wall of bullet points" style. It also helped me move from "stop talking, change slides, start talking again", to smooth transitions while talking.
I'm waiting for more people to discover the next level - the "no slides at all" style of presentation. Cory Doctorow did a nice keynote at 28C3 completely without slides, and it worked very well ("The coming war on general computation", https://www.youtube.com/watch?v=yYqkU1y0AYc). Not suitable for every type of talk, of course, but certainly there are many where the slides are a useless crutch or slides-for-the-sake-of-slides. If you're a good enough speaker you can hold people's attention without pointing at large words behind you.
(See Edward Tufte's "The Cognitive Style of Powerpoint" for good arguments about why slides are a bad idea most of the time)
I find Simon Peyton Jones to be an excellent educator. He talks mostly about Haskell and the GHC compiler, but his talks are very accessible to a wide audience of programmers.
Indistinguishable From Magic: Manufacturing Modern Computer Chips.
Explains a lot of recent mass-market innovations that keep the semiconductor manufacturing industry rolling, and goes into detail about the many tricks used to ensure scaling down to the 22nm node.
It's not publicly available, but it was an internal AWS talk and very-deep-dive on the design & implementation of S3. A real eye opener for what it meant to build at global scale.
It's worth joining a global-scale tech company (AWS, Google, Azure, Facebook) just to have your mind blown by some of the internal materials.
I like how this talk cuts through a lot of the BS in security. One of his points is that the US and other rich Western countries have a lot more to lose from a possible "cyber war" than our potential adversaries do.
Another key point is that we'll never make much progress unless we can somehow start building better systems in the first place, with fewer vulnerabilities for an adversary to exploit.
I think the second point has become a lot more widely accepted in recent years since McGraw started giving this talk. Unfortunately it sounds like a lot of government folks still haven't got the memo on point #1.
Moxie Marlinspike at Blackhat 2010 on how we lost the war for privacy in spite of winning the Crypto Wars of the 1990's-early 2000's: https://www.youtube.com/watch?v=unZZCykRa5w
I like it because it is the intersection of so many things. He starts slow, is very intimidated by the audience. The audience, obviously super skeptical of the clown from that 70s show giving any useful information, they could learn from. He finds his footing with a great morivational story (albeit laden with a few cliches) about a forgotten entrepreneur and how he built some lasting value.
For me, this is a great talk. The story is extremely motivational and has some interesting bits of history & entrepreneurial genius-- but the entire experience is extremely educational. About bias, drive & success.
Douglass Crockford's series of 8 videos, "Crockford on JavaScript" really helped me gain a understanding of the language and a better understanding of programming in general. If you don't like or understand JavaScript, this will definitely change that. He's an excellent speaker and the talks are quite enjoyable. Here is the first video: https://www.youtube.com/watch?v=AoB2r1QxIAY. If you like it, the other 7 are available in the suggested section.
One in particular comes to mind that really changed the way I think about the larger problem of security in computer science and what a mess our current state of affairs seems to be in:
"The Science of Insecurity" by Meredith L. Patterson and Sergey Gordeychik (2011)
In addition to Linus's git talk, I really enjoyed Jeff Dean's EE380 retrospective on Building Systems at Google (http://m.youtube.com/watch?v=modXC5IWTJI). Many people have mentioned Jeff's basic premise elsewhere ("Design a system for 10x your current need, but not 100x, rewrite it before then") but this talk gave several useful examples where tipping points occurred (at least with Search).
I love Kevlin Henney's talks, he's very entertaining and informative at the same time, here's one called "Seven Ineffective Coding Habits of Many Java Programmers", very useful even if you don't use Java - https://vimeo.com/101084305
The talk is about how Damien quit his job to hack on open source software. It shows his struggle and doubt while embarking on the project and then finally invented CouchDB. It's a passionate and human account of the process of creating something significant. I recommend every hacker watch this.
Any of Jason Scott's talks given at various hacker cons are usually historically informative and always a lot of laughs (but they're decidedly not "technical").
It completely changed the way I approach front-end development (Not that talk in particular though. I saw an earlier, similar talk on Youtube but this one has much higher quality).
Not at all high-brow, but I revisit the in-the-trenches case study of "Scaling Pinterest" on Infoq from time to time because I find their fighting through the pain inspirational for my own scaling troubles.
"Pwned by the Owner" (https://www.youtube.com/watch?v=U4oB28ksiIo), a DefCon 18 talk about a stolen Mac that one day popped back up on the owners DynDNS service, he was able to connect to it and had some fun afterward.
Cal Henderson "Why I Hate Django" DjangoCon 2008 Keynote - https://www.youtube.com/watch?v=i6Fr65PFqfk. Not that it is the most educational talk, but it's really funny (edit: added youtube link).
Well. There's enough quality content in this thread to start a dedicated cable television channel, a la Viceland ;)
Not sure if it's my favorite. And the subject is more technology than "tech". But the talk that keeps haunting me is Michael Dearing's lecture from the Reid Hoffman "Blitzscaling" class at Stanford:
Dearing draws upon an obscure letter by Daniel McCallum, superintendant of the New York and Erie Railroad, written to his bosses in the 1850s. In the report, McCallum bemoans the stress and frustration of operating a railroad system spanning thousands of miles. All of the joy and magic he used to revel in whilst running a fifty mile stretch back in his home town has long since dissipated. Furthermore, the unit cost per mile seems to be exploding rather counter-intuitively!
Dearing goes on to elucidate the absolute necessity of the railroads ("the thing to know about the railroads is: they were startups once") themselves. As guarantors of civilization and progress. Beacons bringing light and reason to the dark swamps of ignorance and inhumanity. And not just in the physical transport of goods, people and ideas across the continent. But as the wealth created from that creative destruction remains the best cure for all of our other inimical maladies: poverty, injustice, disease and stagnation.
So, no pressure. But civilization depends upon you!
Links to References in the Talk:
Estimates of World GDP: From One Million BC to the Present
For "laughing at ourselves" and oddities of computer languages, there is "Wat" by Gary Bernhardt: https://www.destroyallsoftware.com/talks/wat
For an opinion on the Sun to Oracle transition, there is "Fork Yeah! The Rise and Development of illumos" by Bryan M. Cantrill, Joyent. His Larry Ellison rant makes me smile: https://youtu.be/-zRN7XLCRhc?t=33m00s