I came for Rust, but stayed for everything else, which is pretty much 95% of the take. Basically the talk should be titled "Learing the wrong way, with some Rust along the way". Thanks a lot to Mr. Waage for this refreshingly out of topic talk! I enjoyed every minute of it!
Started smiling ear to ear when it dawned on me what he was doing with the constant interruptions to jump into another little topic. Great stuff. Well done sir, well done.
I've taken college-level education classes with zero self-awareness, teaching that short blocks and regular breaks is optimal... In a 2 hour long class period with no breaks. Or a 10k word long, confusing to follow, textbook chapter arguing that it's best if you present in small, focused chunks. The ability to teach education best practices without using them was astounding. Anyway, this talk was the antidote, thank you so much!!
Same thing with some architecture classes, that tell you "human design requires windows for natural light and some connection to the outside world as well as ventilation", while teaching that class in a windowless isolated room with bad ventilation, lol
Sadly, this often is because the study program of the university dictates the format, so the lecturers have to hold it as a 2 hour lecture, even if they know this is a bad format. I had lecturers that openly said, they would use a different teaching format if the course wasn't specified as a lecture. (This is my experience from Germany, it might be different elsewhere.)
37:33 And most of the integration learning in the brain happens during REM sleep, so people perform usually much better the very next day, after a good night's sleep, according to Dr. Matthew Walker, in his book *Why We Sleep*.
Listing 46:00 where the video mentions that (at the time the conference was held) there are no rustling exercises for lifetimes, while I'm doing the rustlings quiz (branch named 5.6.1) exercising lifetimes. Which are number 65 - 67 from the total 96 exercises. Funny coincidence😀
I just realized that you are also the guy I watch when I'm procrastinating about my work ... I hadn't thought about it, but I think I would have guessed that you were a school teacher based on your other videos :D Jokes aside; this matches my own journey in Rust. I read through "The Book" twice but was unable to really grasp things before work threw me into a project where I had to build a REST API in Rust with an associated CLI client. The struggle that ensued was what finally made the language click.
I'd give this talk 2 thumbs up if UA-cam could. I like how the discussion is backed by research articles and also his own input as well. Very well done.
Cool presentation but I didn't get all the learning tactics. So what I have: - Mixing up a different style (readinng books, videos, code) - Waiting between studies - Don't cram - Consistent practice for long time - Ask questions and find answers
@@greywolf271 maybe for you, but there was a lot of interesting information personally 30:30 was so great it will greatly improve my future learning process !
I think the most important ideas here are about considering difficulty as en essential component of studying process and ask the questions while working with the topics. I like how Jordan Peterson gives advise to his students skip making notes during the lecture, and instead listen carefully then recall that new knowledge and ask themselves about what they have been learned. And I also like how Ólafur explains interleaving approach with specific studies. I mean I agree those result are appearing to be not that obvious I'd may expect.
Well watching this video off and on today I was solving a Windows update error. Took me about two total hours to find three different parts to the solution. And what had me think that I've learned anything in solving my windows issue is the documentation I created that would allow anyone to fully recreate the solution. I even tested it one extra time. That's when I feel I really learned. I enjoyed this talk very much.
At 14:25 a baseball change-up is an "off-speed" pitch where the pitcher uses the same wind-up and arm motion to deceive the hitter. The pitcher uses less or no minimal wrist and finger motion (e.g. put the ball in the palm instead of the fingers) and therefore it travels at a much slower velocity. However to the hitter, it appears from the motion that it should be the same speed as full speed pitches. Note that some curve balls are also off-speed pitches where the wrist and fingers impart more spin and less velocity but faster than a change-up.
Still one of my favorite Rust presentation. Or just presentations in general. Really helped me be less critical of myself and enjoy my failures to better learn from them.
Illusion of fluency really hit hard. Definitely found this to be true with video tutorials. Not saying you can't learn from them, but you do have to go and try to take the concept that is explained in a video and apply it. Will change up my practice to challenge myself to do something with my own noggin and press myself to push pass the difficulty as opposed to reaching out for the easy answer.
Great talk, Ólafur. I've been learning Rust for about a month and it's kicking my butt. But as you said, that's good. I share my progress on my UA-cam channel and I've been doing the things you mentioned: spacing, variation, interleaving, etc. I often try to include the activities I do between Rust sessions in my videos, too.
The differences between spaced and massed learning make sense to me. At least, having been told the punchline I can retrofit a compatible set-up. When you're learning to classify objects into sets (e.g. paintings by artist), what you want to learn is not just the common elements within each set, but also the elements which discriminate between two sets. Not just the middle of each set, but also its boundaries with its neighbors. It also makes sense that you learn the most from difficult tasks. If the task was easy you had already mastered it, thus you didn't have a lot of room for improvement. It makes sense if this applies only (or mostly) when you're _successful_ at the difficult task: if you're successful and you know what you did, you can do the same thing again. Success becomes repeatable, and your brain can store the recipe for success.
I'm a bit confused as to why it is 'counter intuitive' for spaced to be better than massed. Spaced obviously allows for identifying meaningful differences between styles, something that is important for the task of distinguishing those items
People generally like to focus on one thing when learning, mixing one new thing with another other new thing can make people feel like they are overloaded with new information. The research showed that people prefer focusing on one item or topic. It of course depends on the person and the subject but this is the general feeling.
If you would design some CS classes with the goal to introduce the students to three different programming languages: One interpreted, procedural language, one compiled OO language and one functional language (I'm just too lazy to think which ones I would choose). Would you design in a way that students learn every week new things from all three languages or would you start with one language, then have a block for the second language and finally a block for the last language? I guess most people would (intuitively) go for the approach with the three blocks. Edit: When I studied the first semester was Pascal (yes, it's long ago), the second semester started with C, switching later to C++ ... it was a blocked approach.
@@brdrnda3805 My paradigms class had two different instructors, one on Tuesdays, one on Thursdays, one teaching OOP (Java), the other teaching functional (lisp) and logic (prolog). I don't see how they could've done it differently with two instructors.
This jives perfectly with the story about Kobe Bryant (RIP), who was asked to be interviewed while doing his daily routine. So the interview/routine begins and the reporter notices Bryant, already a huge star, is spending an hour practicing the most basic maneuvers, and he questions Bryant on this. Bryant's answer? To become legendary you have to have a solid grasp of the basics! What a loss to basketball. But also, it seems this non-college educated dude knew more about life, learning, and being excellent, than many academics.
I have always learned a new language by building a significant project. The first one is not as good as the 10th, but it forces me to learn how that language solves real problems.
Very interesting talk. And it scares me because the learning methods in school are going more and more in the "wrong direction". It is made easier and easier for the children.
24:57, it doesn't work, but it actually should work. The presenter frames it as Rust caught some potential bug, but in reality a perfect Rust compiler should have accepted this code as correct. See the Polonius borrow checker for more details. You are borrowing from two separate memory regions, there is no basis to restrict simultaneous references.
This example right there is one key reason why Rust is unsuitable for me. Much of what I write is math; I can't stand on so much ceremony when the straightforward C++ version is perfectly functional, clear, and correct.
Like everyone else on the planet that likes computers I'm training toy neural networks for fun. Definitely didn't think this would be incredibly on point for that side of things. Great talk.
35:20 I‘d really like to see the study showing that cramming has no point compared to not studying at all. While I cannot remember any of it, I‘ve successfully written soo many tests where I would not have any knowledge about the topic at all if I hadn‘t crammed the night beforehand.
I mean in the long run. Yes you can pass a test but if you actually really want to learn and remember something, cramming is not good for you. You can look into "Forgetting as the friend of learning: implications for teaching and self-regulated learning" and "Optimising Learning Using Flashcards: Spacing Is More Effective Than Cramming"
Programming video conferences aren't about learning programming, they're about learning the culture and thought processes of other people. Variation is key here too, where you want a broad span of viewpoints in order to hit the target, which is ability to communicate effectively and mesh with other peoples' thought processes. I learned programming prior to any talks because I didn't want to have to unlearn anything they might have suggested, but more importantly, I wanted to be able to ignore the programming itself and focus on the motivations and thought processes that led someone to that moment. Training on the job is far better than training in a university in basically all cases because you have to jump around, take breaks, run into issues, etc. Watching an expert attempt to solve a problem they don't understand, and maybe even failing, is the absolute best possible learning experience because you see the chain of events necessary to make the process function and the priority the expert places on each part.
Can someone explain why the Pokemon code at 22:31 doesn't compile? The error says you cannot borrow self.pokemons as mutable and immutable at the same time. This is fine. But we want to borrow two different objects in the vector and not the entire vector. Is there some sort of a workaround or a way to tell the compiler the objects we want to reference are different?
In this case we don't need the objects at all. As the speaker said ( 26:08 ) the programming was correct. Its the Rust compiler is telling us to reconsider implementation. So the proper thing would be to only work with the mutable behaviour instead of the entire object.
This is just a limitation of the rust compiler, a perfect rust compiler would be able to detect that the borrows don't overlap and allow the code to compile. There are some workarounds involving slices, but this will eventually be fixed by a compiler update.
@@typecasto yup. I did a bit of reasearch after watching this video and there is a function which splits the array (or vec) at a given index, and the compiler lets you reference 2 values from each slice, because they never overlap
@@2teaspoon yes but it forces you to write code in a different way even though your solution was correct and safe. That's what i felt when i tried rust for the first time. You end up fighting the borrow checker until you learn how to write code "the rust way"
You can literally watch this video on 2x speed and right arrow skip through it and read the captions, finishing the whole video in 5 minutes and get the same comprehension of all the content said
Been dealing with a bunch of that in C#. Couldn't take it, I just gave up. In C++ or Rust it would probably be fine but in a verbose-ass language like C# it's torture.
I was confused by "borrowing into" I think the author means "lending"? (ps, I know borrowing is the technical term `borrow checker` but in this case speaking from the caller (main) POV it would be lending)
Forget structured learning. Don't cram learn if you can (i.e. Reading weeks worth of knowledge in a single day) . Learn everything you can, and don"t selectively learn stuffs. Read, test, fail, and find out what doesn't stick An even shorter and incomplete summary could be "Learn the similarities and differences between the knowledge you learn"
Hee Olaf Ik vind al je videos heel leuk. Helaas maar waar... de uit-spraak van 'van Gogh' is het zelfde in Noors als in het Nederlands, maar niet op z'n Amerikaans. Tussen Takk
My first impression was that the beginning was a bit long before starting the talk. Then you had a pretty long preamble about meta points about the talk. Later I saw the point to the intro and taking that time was actually quite nice. The baseball section still felt long and I skipped forward a bit and still got the point fine when you got to the point. The conclusion was a bit vague in my opinion. Like do a little bit of everything over long time and hope it works. The idea of encountering the various pieces of the language semi randomly is probably sound, granting that the studies generalize to the situation which I’ll grant. And that its fine if it feels hard because you might still learn. But I imagine there are plenty of situation where your training data, maybe the tasks you get at work, or the way you happened to pick problems to work on might not automatically cover a broad range of language features or might not cover them in a semi randomized manner. So you might actually need to plan to get that kind of distribution. Those are just some thoughts. I like the talk in general, though it could have hade more rust in there =)
Basically this stuff is written up in a review article: Teaching the science of learning, 2018 (Yana Weinstein, Christopher Madan, Megan Sumeracki). And also in a book callled Make it Stick.
Intelligence is based on discrimination, no confusion. Of course you can't learn to discriminate between things by looking for similarities. For AI builders, all of this is quite obvious. (feel free to contact me for math models or philosophy about that)
Oh like some math models or philosophy about that! I've been learning cybernetics and I'm dying to see contemporary research on similar themes from an AI perspective, after having sunk my teeth into this university AI course.
@Weaver Marquez Well... if you accept that everything can be modeled in binary, then it's pretty obvious: you need at least two distinct states (usually written 0 and 1) to describe things. Three states are superfluous, because we can always express in base 2 the equivalent of numbers in base 3 or more. On the other hand, you can't do anything in base 1, because there is no distinction to work with between 0 and 0. In base 1, no matter how many identical symbols you write, it remains the same number, the same object. Unless we count the number of identical symbols we write, but then we need more than 1, so at least base 2. Distinction is the basis of intelligence, because it is essential for signaling, perception, discrimination, comparison, decision, classification, memorization, and therefore for identification as well... well, for everything to know. Even if you write a method that looks for similarities rather than differences, you end up implementing tests, and those tests make sense only because they can return either true or false, which are distinct things by definition. No matter what you call these things, no matter what symbols you choose, they must be distinct for your program to work. So all models and all knowledge depend on this difference, fundamentally. From my point of view, this is why people who seek the absolute unity of everything at all costs necessarily give up intelligence and end up very blind. We only perceive contrasts. We only think of differences. One thing alone without relation to anything else that is different, no one can conceive. Knowledge require structure, structure require relations, and relation require differences. This is also, I think, evidence that the universe cannot be perfectly described, unless the description is the universe itself, simply because there is only one universe by definition. Learners simply minimize a distance between their current state and another desired state in a vector space structured by differences. Thus, *unperfect* repetition is just an excuse to try many *different* things, to perform many *different* steps. If not, it's not learning, it goes nowhere, it never approaches the optimal state, it's stultifying. The only thing people can learn by perfect repetition is... repetition, without even a meaning.
This video is entirely about programming the programmer, and not at all about programming in rust. There is a tradeoff between what part of the effort lies in writing the program and what part lies in programming the programmer. Rust simply fails that tradeoff. Learning advanced concepts and newest experimental results in cognitive science should not be a prerequisite to learning a programming language. In the case of Rust, it apparently is. There's way too much effort required to program the programmer, and it's much closer to something like "a factor of 20 too much" than to something like "20% too much".
Best cross-over ever. Im learning rust and Norwegian and I've been watching this guy's humourous takes on Norwegian for the past six months. Thanks !
I was wondering if this was the same guy! I'm not great at recognising people, but his voice was tickling my brain.
I love that this applies to everything I want to learn, not just Rust.
I came for Rust, but stayed for everything else, which is pretty much 95% of the take. Basically the talk should be titled "Learing the wrong way, with some Rust along the way". Thanks a lot to Mr. Waage for this refreshingly out of topic talk! I enjoyed every minute of it!
Started smiling ear to ear when it dawned on me what he was doing with the constant interruptions to jump into another little topic. Great stuff. Well done sir, well done.
I've taken college-level education classes with zero self-awareness, teaching that short blocks and regular breaks is optimal... In a 2 hour long class period with no breaks. Or a 10k word long, confusing to follow, textbook chapter arguing that it's best if you present in small, focused chunks.
The ability to teach education best practices without using them was astounding.
Anyway, this talk was the antidote, thank you so much!!
lol
The jokes write themselves
Same thing with some architecture classes, that tell you "human design requires windows for natural light and some connection to the outside world as well as ventilation", while teaching that class in a windowless isolated room with bad ventilation, lol
Sadly, this often is because the study program of the university dictates the format, so the lecturers have to hold it as a 2 hour lecture, even if they know this is a bad format. I had lecturers that openly said, they would use a different teaching format if the course wasn't specified as a lecture.
(This is my experience from Germany, it might be different elsewhere.)
@@Niki1A_ that is unfortunate, especially given that you're in Germany and I'm in America and the problem is the same.
I was just looking to devour some Rust content, but this... This was one of the best conference talk I've ever seen!
I love how you not only discussed many principles behind effective learning but you also used many of the principles within the talk
This was an interesting talk, I almost wish there was nothing on Rust since the "how to learn" portion was by far the most useful part of the talk.
pokemon example was great example that I enjoyed so much seeing it as pixel battle. really nice talk.
The rust portions help space the learning portions, reinforcing your memory of both
sOiNsIgHtFuL
37:33 And most of the integration learning in the brain happens during REM sleep, so people perform usually much better the very next day, after a good night's sleep, according to Dr. Matthew Walker, in his book *Why We Sleep*.
Damn that's so true
Listing 46:00 where the video mentions that (at the time the conference was held) there are no rustling exercises for lifetimes, while I'm doing the rustlings quiz (branch named 5.6.1) exercising lifetimes. Which are number 65 - 67 from the total 96 exercises.
Funny coincidence😀
Wait a minute, it's the Iceland youtube shorts guy
I know right!? I was like wait I'm here for a Rust video what the heck?
Holy crap you're right.
I just realized that you are also the guy I watch when I'm procrastinating about my work ... I hadn't thought about it, but I think I would have guessed that you were a school teacher based on your other videos :D
Jokes aside; this matches my own journey in Rust. I read through "The Book" twice but was unable to really grasp things before work threw me into a project where I had to build a REST API in Rust with an associated CLI client. The struggle that ensued was what finally made the language click.
I'd give this talk 2 thumbs up if UA-cam could. I like how the discussion is backed by research articles and also his own input as well. Very well done.
note to self. Occupied right now. Watch later. Seems like a nice talk
did you watch it?
@jan_Mamu i did. i liked the painting study he brought up
Cool presentation but I didn't get all the learning tactics.
So what I have:
- Mixing up a different style (readinng books, videos, code)
- Waiting between studies
- Don't cram
- Consistent practice for long time
- Ask questions and find answers
Nothing new. I did'nt see any flashes of inspiration here.
@@greywolf271 maybe for you, but there was a lot of interesting information
personally 30:30 was so great it will greatly improve my future learning process !
I think the most important ideas here are about considering difficulty as en essential component of studying process and ask the questions while working with the topics. I like how Jordan Peterson gives advise to his students skip making notes during the lecture, and instead listen carefully then recall that new knowledge and ask themselves about what they have been learned.
And I also like how Ólafur explains interleaving approach with specific studies. I mean I agree those result are appearing to be not that obvious I'd may expect.
Well watching this video off and on today I was solving a Windows update error. Took me about two total hours to find three different parts to the solution. And what had me think that I've learned anything in solving my windows issue is the documentation I created that would allow anyone to fully recreate the solution. I even tested it one extra time. That's when I feel I really learned. I enjoyed this talk very much.
At 14:25 a baseball change-up is an "off-speed" pitch where the pitcher uses the same wind-up and arm motion to deceive the hitter. The pitcher uses less or no minimal wrist and finger motion (e.g. put the ball in the palm instead of the fingers) and therefore it travels at a much slower velocity. However to the hitter, it appears from the motion that it should be the same speed as full speed pitches. Note that some curve balls are also off-speed pitches where the wrist and fingers impart more spin and less velocity but faster than a change-up.
I was thinking the same thing. However, he is out of my league on RustLang
Thank you so much, wish we could hear the questions at the end though!
Still one of my favorite Rust presentation. Or just presentations in general. Really helped me be less critical of myself and enjoy my failures to better learn from them.
I'm so happy to hear!
Illusion of fluency really hit hard. Definitely found this to be true with video tutorials. Not saying you can't learn from them, but you do have to go and try to take the concept that is explained in a video and apply it. Will change up my practice to challenge myself to do something with my own noggin and press myself to push pass the difficulty as opposed to reaching out for the easy answer.
Great talk, Ólafur. I've been learning Rust for about a month and it's kicking my butt. But as you said, that's good. I share my progress on my UA-cam channel and I've been doing the things you mentioned: spacing, variation, interleaving, etc. I often try to include the activities I do between Rust sessions in my videos, too.
Thanks for a good presentation. I am currently learning rust, it is good to know that the approach is not wrong :)
"we are minmaxers" oh god, I will take this a key from this lecture :)
Im speechless, so many clever points
i always read the comments first before watching these and so glad i stayed and watched! great lecturer!
Best way is the hard way let's go 👍
The differences between spaced and massed learning make sense to me. At least, having been told the punchline I can retrofit a compatible set-up.
When you're learning to classify objects into sets (e.g. paintings by artist), what you want to learn is not just the common elements within each set, but also the elements which discriminate between two sets. Not just the middle of each set, but also its boundaries with its neighbors.
It also makes sense that you learn the most from difficult tasks. If the task was easy you had already mastered it, thus you didn't have a lot of room for improvement. It makes sense if this applies only (or mostly) when you're _successful_ at the difficult task: if you're successful and you know what you did, you can do the same thing again. Success becomes repeatable, and your brain can store the recipe for success.
I'm surprised to find him here. He makes such funny shorts about the Nordic countries. 😂
I'm a bit confused as to why it is 'counter intuitive' for spaced to be better than massed. Spaced obviously allows for identifying meaningful differences between styles, something that is important for the task of distinguishing those items
People generally like to focus on one thing when learning, mixing one new thing with another other new thing can make people feel like they are overloaded with new information. The research showed that people prefer focusing on one item or topic. It of course depends on the person and the subject but this is the general feeling.
If you would design some CS classes with the goal to introduce the students to three different programming languages: One interpreted, procedural language, one compiled OO language and one functional language (I'm just too lazy to think which ones I would choose). Would you design in a way that students learn every week new things from all three languages or would you start with one language, then have a block for the second language and finally a block for the last language? I guess most people would (intuitively) go for the approach with the three blocks.
Edit: When I studied the first semester was Pascal (yes, it's long ago), the second semester started with C, switching later to C++ ... it was a blocked approach.
@@brdrnda3805 My paradigms class had two different instructors, one on Tuesdays, one on Thursdays, one teaching OOP (Java), the other teaching functional (lisp) and logic (prolog). I don't see how they could've done it differently with two instructors.
This jives perfectly with the story about Kobe Bryant (RIP), who was asked to be interviewed while doing his daily routine.
So the interview/routine begins and the reporter notices Bryant, already a huge star, is spending an hour practicing the most basic maneuvers, and he questions Bryant on this.
Bryant's answer? To become legendary you have to have a solid grasp of the basics!
What a loss to basketball. But also, it seems this non-college educated dude knew more about life, learning, and being excellent, than many academics.
I benefited from this. Thank you.
This is an awesome presentation. Thank you.
Thank you for motivating me to continue my studies especially now that I’m finding it super hard
This was excellent :) Thanks !
Damned... i changed my mind halfway. First it looked like garbage going nowhere... then it works out nicely.
I have always learned a new language by building a significant project. The first one is not as good as the 10th, but it forces me to learn how that language solves real problems.
This is gold!
Thank you so much for this wonderful video it was super fun and really helpful cheers.😊
Very interesting talk. And it scares me because the learning methods in school are going more and more in the "wrong direction". It is made easier and easier for the children.
I checked multiple times to confirm if its really a rust talk, interesting perspective
I like these videos. thanks!
They are for non professionals
Funny how these professionals get offended when something is not appropriate for their understanding.
24:57, it doesn't work, but it actually should work. The presenter frames it as Rust caught some potential bug, but in reality a perfect Rust compiler should have accepted this code as correct. See the Polonius borrow checker for more details. You are borrowing from two separate memory regions, there is no basis to restrict simultaneous references.
You can do this with slice.split_at_mut(..) or with slice.iter_mut() to work aroudn this borrow checker limitation
This example right there is one key reason why Rust is unsuitable for me. Much of what I write is math; I can't stand on so much ceremony when the straightforward C++ version is perfectly functional, clear, and correct.
This was an amazing presentation!!
All the things he describes as counter intuitive or unexpected are the things that I found to be intuitive and expected :)
yes, we learn both by similarity and difference; and a lot goes on at subconscious level, we should not expect to control the learning process
I agree! I feel the best when comparing both similarities and differences.
came here for Rust, got an even better insight on life. Thanks!!!
Great talk, good insights about learning strategy in general 👍.
extraordinary talk
Like everyone else on the planet that likes computers I'm training toy neural networks for fun. Definitely didn't think this would be incredibly on point for that side of things. Great talk.
He must be a really good senior to be admired by a junior!
35:20 I‘d really like to see the study showing that cramming has no point compared to not studying at all. While I cannot remember any of it, I‘ve successfully written soo many tests where I would not have any knowledge about the topic at all if I hadn‘t crammed the night beforehand.
I mean in the long run. Yes you can pass a test but if you actually really want to learn and remember something, cramming is not good for you.
You can look into "Forgetting as the friend of learning: implications for teaching and self-regulated learning" and "Optimising Learning Using Flashcards: Spacing Is More Effective Than Cramming"
Great presentation. Thanks
Haven't learned much about Rust, but was still worth the time.
Great talk! The ideas presented are so valuable.
Programming video conferences aren't about learning programming, they're about learning the culture and thought processes of other people. Variation is key here too, where you want a broad span of viewpoints in order to hit the target, which is ability to communicate effectively and mesh with other peoples' thought processes.
I learned programming prior to any talks because I didn't want to have to unlearn anything they might have suggested, but more importantly, I wanted to be able to ignore the programming itself and focus on the motivations and thought processes that led someone to that moment.
Training on the job is far better than training in a university in basically all cases because you have to jump around, take breaks, run into issues, etc. Watching an expert attempt to solve a problem they don't understand, and maybe even failing, is the absolute best possible learning experience because you see the chain of events necessary to make the process function and the priority the expert places on each part.
Can someone explain why the Pokemon code at 22:31 doesn't compile? The error says you cannot borrow self.pokemons as mutable and immutable at the same time. This is fine. But we want to borrow two different objects in the vector and not the entire vector. Is there some sort of a workaround or a way to tell the compiler the objects we want to reference are different?
In this case we don't need the objects at all. As the speaker said ( 26:08 ) the programming was correct. Its the Rust compiler is telling us to reconsider implementation. So the proper thing would be to only work with the mutable behaviour instead of the entire object.
This is just a limitation of the rust compiler, a perfect rust compiler would be able to detect that the borrows don't overlap and allow the code to compile. There are some workarounds involving slices, but this will eventually be fixed by a compiler update.
@@typecasto yup. I did a bit of reasearch after watching this video and there is a function which splits the array (or vec) at a given index, and the compiler lets you reference 2 values from each slice, because they never overlap
@@2teaspoon yes but it forces you to write code in a different way even though your solution was correct and safe. That's what i felt when i tried rust for the first time. You end up fighting the borrow checker until you learn how to write code "the rust way"
Amazing talk!
After watching this hour long video, I am a Rust Expert now!
Isn't this guy very famous yt shorts doind comedic shorts?
Bravo! This is fantastic
Not the rust I was thinking about, but still very interesting.
Can someone share rust exercises link Olafur mentioned. Thanks
You can literally watch this video on 2x speed and right arrow skip through it and read the captions, finishing the whole video in 5 minutes and get the same comprehension of all the content said
Allman format, nice. I knew I wasn't crazy.
I like the box like look it creates, but I'm down with almost whatever. As long as it's consistent and is done automatically by a tool.
Been dealing with a bunch of that in C#. Couldn't take it, I just gave up. In C++ or Rust it would probably be fine but in a verbose-ass language like C# it's torture.
Nice research of mr Ólafur !
Really great talk.
Thank you so much
very very nice talk
Refreshing talk 🎉
I was confused by "borrowing into" I think the author means "lending"? (ps, I know borrowing is the technical term `borrow checker` but in this case speaking from the caller (main) POV it would be lending)
It is a great talk about studying in general with some hard evidence on human memory and practising. However, it has very little on Rust.
Can someone summarize it, honestly I'm not getting what is the way to do this
Forget structured learning. Don't cram learn if you can (i.e. Reading weeks worth of knowledge in a single day) .
Learn everything you can, and don"t selectively learn stuffs. Read, test, fail, and find out what doesn't stick
An even shorter and incomplete summary could be "Learn the similarities and differences between the knowledge you learn"
great talk!
Useful talk
I expected this guy to explain to me why it's easier to teach rust to a toddler than it is to teach it icelandic
This video helped me procrastinating harder xD
This talk goes hard.
I learned Rust while deep-sea diving.
As a Swede learning Rust, cool
Came for rust, stayed for the philosophy
Can’t even finish watching this bc there are SO many ads…
I thought returning constants (like `str`) in your function exposes you to lifetimes in a rather gentle way.
Hee Olaf
Ik vind al je videos heel leuk. Helaas maar waar... de uit-spraak van 'van Gogh' is het zelfde in Noors als in het Nederlands, maar niet op z'n Amerikaans. Tussen Takk
This validates my ADHD way of learning
"van go"
Someone should do a Dutch 'G' course. From below the rivers, I don't fancy listening to a chainsaw.
My first impression was that the beginning was a bit long before starting the talk.
Then you had a pretty long preamble about meta points about the talk.
Later I saw the point to the intro and taking that time was actually quite nice.
The baseball section still felt long and I skipped forward a bit and still got the point fine when you got to the point.
The conclusion was a bit vague in my opinion. Like do a little bit of everything over long time and hope it works. The idea of encountering the various pieces of the language semi randomly is probably sound, granting that the studies generalize to the situation which I’ll grant. And that its fine if it feels hard because you might still learn.
But I imagine there are plenty of situation where your training data, maybe the tasks you get at work, or the way you happened to pick problems to work on might not automatically cover a broad range of language features or might not cover them in a semi randomized manner.
So you might actually need to plan to get that kind of distribution.
Those are just some thoughts.
I like the talk in general, though it could have hade more rust in there =)
What excellent feedback. Thank you.
I'm doing the talk again later this year and I'll definitely take these to heart.
Basically this stuff is written up in a review article: Teaching the science of learning, 2018 (Yana Weinstein, Christopher Madan, Megan Sumeracki).
And also in a book callled Make it Stick.
35:37 I disagree: if I never crammed, I would have failed everything. It was often the first time I had seen the material.
hold up... THAT'S THE GUY FROM TIKTOK
Intelligence is based on discrimination, no confusion. Of course you can't learn to discriminate between things by looking for similarities. For AI builders, all of this is quite obvious.
(feel free to contact me for math models or philosophy about that)
Oh like some math models or philosophy about that! I've been learning cybernetics and I'm dying to see contemporary research on similar themes from an AI perspective, after having sunk my teeth into this university AI course.
@Weaver Marquez Well... if you accept that everything can be modeled in binary, then it's pretty obvious: you need at least two distinct states (usually written 0 and 1) to describe things. Three states are superfluous, because we can always express in base 2 the equivalent of numbers in base 3 or more. On the other hand, you can't do anything in base 1, because there is no distinction to work with between 0 and 0. In base 1, no matter how many identical symbols you write, it remains the same number, the same object. Unless we count the number of identical symbols we write, but then we need more than 1, so at least base 2.
Distinction is the basis of intelligence, because it is essential for signaling, perception, discrimination, comparison, decision, classification, memorization, and therefore for identification as well... well, for everything to know.
Even if you write a method that looks for similarities rather than differences, you end up implementing tests, and those tests make sense only because they can return either true or false, which are distinct things by definition. No matter what you call these things, no matter what symbols you choose, they must be distinct for your program to work. So all models and all knowledge depend on this difference, fundamentally.
From my point of view, this is why people who seek the absolute unity of everything at all costs necessarily give up intelligence and end up very blind. We only perceive contrasts. We only think of differences. One thing alone without relation to anything else that is different, no one can conceive. Knowledge require structure, structure require relations, and relation require differences. This is also, I think, evidence that the universe cannot be perfectly described, unless the description is the universe itself, simply because there is only one universe by definition.
Learners simply minimize a distance between their current state and another desired state in a vector space structured by differences.
Thus, *unperfect* repetition is just an excuse to try many *different* things, to perform many *different* steps. If not, it's not learning, it goes nowhere, it never approaches the optimal state, it's stultifying. The only thing people can learn by perfect repetition is... repetition, without even a meaning.
man this was an adhd fueled talk
Never see it in other places.
A programming language drove it's learners to learn about learning. That's really weird
I use GPTs
Oh, those Nordics...
welcome to my life ... I like to make things difficult for myself xD
❤️
"Rust is focused on productivity ..." 🤣
omg thats the tiktok guy
so
i thought this was about the game lol
This video is entirely about programming the programmer, and not at all about programming in rust. There is a tradeoff between what part of the effort lies in writing the program and what part lies in programming the programmer. Rust simply fails that tradeoff. Learning advanced concepts and newest experimental results in cognitive science should not be a prerequisite to learning a programming language. In the case of Rust, it apparently is. There's way too much effort required to program the programmer, and it's much closer to something like "a factor of 20 too much" than to something like "20% too much".
Impasto? Sounds sus.
Whenever a programming language advocate starts talking of "hubris", the language is summarily disqualified for that reason alone.