Bjarne Stroustrup: Learn More than One Programming Language
Skills:
Algorithm Basics70%
Key Takeaways
Bjarne Stroustrup emphasizes the importance of learning multiple programming languages for a career in software development
Full Transcript
you've you've said that it's good for any professional programmer to know at least five languages speaking about a variety of languages that you've taken inspiration from and you've listed the yours as being at least at the time C++ obviously Java Python Ruby and JavaScript can you first of all update that list modify it you don't have to be constrained to just five but can you describe what you picked up also from each of these languages how you see them as inspirations for even you're working with C++ this is a very hard question to answer so about languages you should know languages I I reckon I knew about 25 or thereabouts when I did C++ it was easy in those days because the languages were smaller and you didn't have to learn a whole programming environment and such to do it you you could learn the language quite easily and it's good to learn so many languages and I imagine just like with natural language for communication there's different paradigms that emerge in all of them yeah but there's commonalities and so on so I picked five out of ahead big five out of a hat obviously the important thing that the number is not one that's right it's like I don't like I mean if you're mono clot you are likely to think that your own cultures the only ones pair is everybody else's a good learning of a foreign language and a foreign culture is important it helps you think and be a better person with programming languages you become a better programmer better designer with the second language now once you've got to the weight of five is not that long it's the second one that's most important and then when I had to pick five I sort of thinking what kinds of languages are there well there's a really low level stuff it's good it's actually good to know machine code movie very still sorry even today even today the C++ optimizer is right there a machine code than I do yes but I don't think I could appreciate them if I actually didn't understand machine code and machine architecture at least in in my position I have to understand a bit of it because you mess up the cache and you're off in performance by a factor of 100 right shouldn't be that if you are interested in higher performance or the size of the computer you have to deploy so so I would go as a simpler I used to mention C but these days going low-level is not actually what gives you the performance it is to express your ideas so cleanly that you can think about it and the optimizer can understand what you're up to my favourite way of optimizing these days is to throw out the clever bits and see if it's dawn runs fast and sometimes it runs faster so I need the abstraction mechanisms or something like C++ to write compact high-performance code there was a beautiful keynote by Jason Turner at the CPP Khan a couple of years ago where he decided he was going to program pong on Motorola 6800 I think it was and he says well this is relevant because it looks like a microcontroller it has specialized hardware it has not very much memory and it's relatively slow and so he shows in real time how he writes pong starting with fairly straightforward low-level stuff improving his abstractions and what he's doing he's writing C++ and it translate into in 286 assembler which you can do with playing and you can see it in real-time it's the compiler Explorer which you can use on the web and then he wrote a little program that translated 86 assembler into Motorola has simpler and so he types and you can see this thing in real time while you can see it in real time and even if you can't read the assembly code you can just see it his code gets better the code the assembler gets Kamala he increases the abstraction level uses C++ 11 as it were better this code gets clean that get easier maintain the code shrinks and it keeps shrinking and I could not in any reasonable amount of time write that a simpler as good as the compiler generated from really quite nice modern C++ and I'll go as far as to say the the thing that looked like C was significantly uglier and smaller when it becames and and larger when it became machine code so what the the abstractions that can be optimized important I would love to see that kind of visualization larger code bases yeah there might be blood a few can't show a larger code base in a one-hour talk and to have it fit on the screen right so that C is if you are so my two languages would be machine code and C++ and then I think you can learn a lot from the functional languages so pig has pralaya male I don't care which I think actually you you'll you'll learn the same lessons of expressing especially mathematical notions really clearly and having the type system that's really strict and then you should probably have a language for sort of quickly churning out something you could pick JavaScript you could be Pig Python you could pick Ruby you
Original Description
This is a clip from a conversation with Bjarne Stroustrup from Nov 2019. New full episodes are released once or twice a week and 1-2 new clips or a new non-podcast video is released on all other days. You can watch the full conversation here: https://www.youtube.com/watch?v=uTxRF5ag27A
(more links below)
Podcast full episodes playlist:
https://www.youtube.com/playlist?list=PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4
Podcasts clips playlist:
https://www.youtube.com/playlist?list=PLrAXtmErZgOeciFP3CBCIEElOJeitOr41
Podcast website:
https://lexfridman.com/ai
Podcast on Apple Podcasts (iTunes):
https://apple.co/2lwqZIr
Podcast on Spotify:
https://spoti.fi/2nEwCF8
Podcast RSS:
https://lexfridman.com/category/ai/feed/
Note: I select clips with insights from these much longer conversation with the hope of helping make these ideas more accessible and discoverable. Ultimately, this podcast is a small side hobby for me with the goal of sharing and discussing ideas. I did a poll and 92% of people either liked or loved the posting of daily clips, 2% were indifferent, and 6% hated it, some suggesting that I post them on a separate YouTube channel. I hear the 6% and partially agree, so am torn about the whole thing. I tried creating a separate clips channel but the YouTube algorithm makes it very difficult for that channel to grow. So for a little while, I'll keep posting clips on this channel. I ask for your patience and to see these clips as supporting the dissemination of knowledge contained in nuanced discussion. If you enjoy it, consider subscribing, sharing, and commenting.
Bjarne Stroustrup is the creator of C++, a programming language that after 34 years is still one of the most popular and powerful languages in the world. Its focus on fast, stable, robust code underlies many of the biggest systems in the world that we have come to rely on as a society. If you're watching this on YouTube, many of the critical back-end component of YouTube are written in C++. Same goes for G
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Lex Fridman · Lex Fridman · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Ido Portal: Movement
Lex Fridman
Ryan Hall: Moral Victory
Lex Fridman
Jimmy Pedro: Judo | Take It Uneasy Podcast
Lex Fridman
Foundations of Deep Learning (Hugo Larochelle, Twitter)
Lex Fridman
TensorFlow Tutorial (Sherry Moore, Google Brain)
Lex Fridman
Nuts and Bolts of Applying Deep Learning (Andrew Ng)
Lex Fridman
Sequence to Sequence Deep Learning (Quoc Le, Google)
Lex Fridman
Torch Tutorial (Alex Wiltschko, Twitter)
Lex Fridman
Theano Tutorial (Pascal Lamblin, MILA)
Lex Fridman
Deep Reinforcement Learning (John Schulman, OpenAI)
Lex Fridman
Deep Learning for Speech Recognition (Adam Coates, Baidu)
Lex Fridman
Deep Learning for Natural Language Processing (Richard Socher, Salesforce)
Lex Fridman
Foundations of Unsupervised Deep Learning (Ruslan Salakhutdinov, CMU)
Lex Fridman
Deep Learning for Computer Vision (Andrej Karpathy, OpenAI)
Lex Fridman
Foundations and Challenges of Deep Learning (Yoshua Bengio)
Lex Fridman
MIT 6.S094: Introduction to Deep Learning and Self-Driving Cars
Lex Fridman
MIT 6.S094: Deep Reinforcement Learning for Motion Planning
Lex Fridman
MIT 6.S094: Convolutional Neural Networks for End-to-End Learning of the Driving Task
Lex Fridman
MIT 6.S094: Recurrent Neural Networks for Steering Through Time
Lex Fridman
MIT 6.S094: Deep Learning for Human-Centered Semi-Autonomous Vehicles
Lex Fridman
Chris Gerdes (Stanford) on Technology, Policy and Vehicle Safety - MIT Self-Driving Cars
Lex Fridman
Sertac Karaman (MIT) on Motion Planning in a Complex World - MIT Self-Driving Cars
Lex Fridman
MIT Sloan: Intro to Machine Learning (in 360/VR)
Lex Fridman
MIT 6.S094: Deep Learning
Lex Fridman
MIT Self-Driving Cars (2018)
Lex Fridman
MIT 6.S094: Deep Reinforcement Learning
Lex Fridman
MIT 6.S094: Computer Vision
Lex Fridman
MIT 6.S094: Deep Learning for Human Sensing
Lex Fridman
MIT AGI: Artificial General Intelligence
Lex Fridman
MIT AGI: Building machines that see, learn, and think like people (Josh Tenenbaum)
Lex Fridman
Ray Kurzweil: Future of Intelligence | MIT 6.S099: Artificial General Intelligence (AGI)
Lex Fridman
Sacha Arnoud, Director of Engineering, Waymo - MIT Self-Driving Cars
Lex Fridman
Lisa Feldman Barrett: How the Brain Creates Emotions | MIT Artificial General Intelligence (AGI)
Lex Fridman
Stephen Wolfram: Computational Universe | MIT 6.S099: Artificial General Intelligence (AGI)
Lex Fridman
Emilio Frazzoli, CTO, nuTonomy - MIT Self-Driving Cars
Lex Fridman
Sterling Anderson, Co-Founder, Aurora - MIT Self-Driving Cars
Lex Fridman
MIT AGI: Cognitive Architecture (Nate Derbinsky)
Lex Fridman
MIT Advanced Vehicle Technology Study (MIT-AVT)
Lex Fridman
MIT-AVT: Data Collection Device (for Large-Scale Semi-Autonomous Driving)
Lex Fridman
Geoffrey Hinton: What are you excited about in deep learning?
Lex Fridman
Ilya Sutskever: OpenAI Meta-Learning and Self-Play | MIT Artificial General Intelligence (AGI)
Lex Fridman
Comfortably Numb Solo | Pink Floyd Cover by Lex Fridman
Lex Fridman
Yoshua Bengio: Deep Learning | Lex Fridman Podcast #4
Lex Fridman
Jeff Atwood: Stack Overflow and Coding Horror | Lex Fridman Podcast #7
Lex Fridman
Eric Schmidt: Google | Lex Fridman Podcast #8
Lex Fridman
Pieter Abbeel: Deep Reinforcement Learning | Lex Fridman Podcast #10
Lex Fridman
Deep Learning Basics: Introduction and Overview
Lex Fridman
Deep Learning State of the Art (2019)
Lex Fridman
MIT 6.S091: Introduction to Deep Reinforcement Learning (Deep RL)
Lex Fridman
Self-Driving Cars: State of the Art (2019)
Lex Fridman
Drago Anguelov (Waymo) - MIT Self-Driving Cars
Lex Fridman
Oliver Cameron (CEO, Voyage) - MIT Self-Driving Cars
Lex Fridman
Karl Iagnemma & Oscar Beijbom (Aptiv Autonomous Mobility) - MIT Self-Driving Cars
Lex Fridman
Leslie Kaelbling: Reinforcement Learning, Planning, and Robotics | Lex Fridman Podcast #15
Lex Fridman
Greg Brockman: OpenAI and AGI | Lex Fridman Podcast #17
Lex Fridman
Ian Goodfellow: Generative Adversarial Networks (GANs) | Lex Fridman Podcast #19
Lex Fridman
MIT 6.S093: Introduction to Human-Centered Artificial Intelligence (AI)
Lex Fridman
Chris Lattner: Compilers, LLVM, Swift, TPU, and ML Accelerators | Lex Fridman Podcast #21
Lex Fridman
Rajat Monga: TensorFlow | Lex Fridman Podcast #22
Lex Fridman
Gavin Miller: Adobe Research | Lex Fridman Podcast #23
Lex Fridman
More on: Algorithm Basics
View skill →Related Reads
🎓
Tutor Explanation
DeepCamp AI