Let's Get Into It
Let's Get Into It
  • 17
  • 7 881
Dynamic Programming to Win Beers (Coin Change Algorithm)
How many ways can a #football team score a certain number of points? I challenged people in a bar to a race to answer the fastest. Knowing the coin change #algorithm, I knew I would win. Find out how the algorithm works!
*Chapters*
0:00 Intro
1:07 Likely ways to get 9 points
1:29 Scoring rules
1:45 How many ways to get 9 points?
2:18 How many ways to get 14 points?
3:53 Thought process?
4:29 Let's race! - the Coin Change problem
6:10 Up the ante - the recursive algorithm
7:55 Why the intuition/recursive algorithm is slow
8:46 We'll win with dynamic programming
9:45 And they're off! How dynamic programming works
11:25 Why I finished faster
12:22 The results are in!
*Socials*
Website: letsgetintoit.media
Patreon: patreon.com/letsgetintoit
*Music featured in this video*
- Music of my own!
- Free-to-use music from the TH-cam audio library
- Interloper by Kevin MacLeod is licensed under a Creative Commons Attribution 4.0 license | creativecommons.org/licenses/by/4.0/ | Source: incompetech.com/music/royalty-free/index.html?isrc=USUAN1100401 | Artist: incompetech.com/
*Sound effects in this video*
freesound.org/people/pan14/sounds/334034/
freesound.org/people/casemundy/sounds/422109/
freesound.org/people/joepayne/sounds/413203/
freesound.org/people/Peacewaves/sounds/320828/
freesound.org/people/Lucish_/sounds/554841/
freesound.org/people/adriann/sounds/191718/
freesound.org/people/craigsmith/sounds/486244/
freesound.org/people/emilijoan/sounds/507855/
freesound.org/people/LincolnLog/sounds/35244/
freesound.org/people/soundbyter.com/sounds/110428/
freesound.org/people/kirkpatrick.live/sounds/495340/
freesound.org/people/5ro4/sounds/611112/
freesound.org/people/BranRainey/sounds/142348/
freesound.org/people/deleted_user_2104797/sounds/325261/
freesound.org/people/Mikes-MultiMedia/sounds/418509/
freesound.org/people/musicvision31/sounds/431780/
freesound.org/people/simkiott/sounds/43404/
freesound.org/people/noah0189/sounds/264499/
freesound.org/people/fxcv/sounds/645337/
freesound.org/people/nikitralala/sounds/239936/
freesound.org/people/Daphne_in_Wonderland/sounds/127149/
freesound.org/people/Robinhood76/sounds/269259/
#Football #Algorithm #SuperBowl #ComputerScience
มุมมอง: 930

วีดีโอ

Acceptable Dating Age | Conan Needs A Math Lesson | Inverse Functions
มุมมอง 8866 หลายเดือนก่อน
#TeamCoco struggles with #Math to figure out whether it would it be socially acceptable for Conan O'Brien to date his 37-year old fan. *Original video* th-cam.com/video/z-vjVhVVXJE/w-d-xo.htmlsi=w8QiVN3PJvxx5lkn&t=190 *Chapters* 0:00 Intro 0:38 Bungling the formula 1:48 Mathematical inverses 2:52 The correct answer *Socials* Website: letsgetintoit.media Patreon: patreon.com/letsgetintoit #Math ...
Mixing wine and milk to convert gas prices
มุมมอง 1657 หลายเดือนก่อน
A real life #UnitConversion using #DimensionalAnalysis to convert gas prices from #MetricSystem to Imperial units. Why do unit conversions work, and will you use them in real life? Of course! *Chapters* 0:00 Intro 0:42 The setup 1:07 The plan 1:57 Why unit conversions work 2:35 How many did it take? 3:18 The conversion 3:54 Were we even close? 4:52 The final answer *Socials* Website: letsgetint...
Immutability: handle with care • Episode 5 • Functional Programming in Typescript
มุมมอง 1097 หลายเดือนก่อน
I said Javascript/Typescript are a mix of pass-by-value and pass-by-reference. I sort of lied. This is the truth, and why it doesn't really matter. *Chapters* TO DO *Socials* Website: letsgetintoit.media Patreon: patreon.com/letsgetintoit *Music featured in this video* - Music of my own! #LetsGetIntoIt #SoftwareEngineering #FunctionalProgramming #Typescript #immutable #immutability #passby #Dat...
Immutability makes code BETTER! • Episode 4 • Functional Programming in Typescript
มุมมอง 2848 หลายเดือนก่อน
#Immutability often fixes many hard-to-find issues in your code, and often leads to better design. Let's understand what immutability *is* and see how we can improve some code using it. *Chapters* 0:00 Intro 0:18 Example: a cookie machine 2:40 We have a problem! 4:13 An immutability puzzle 6:10 Tracing code to understand immutability 9:26 Defining immutability and pass-by 11:09 Fixing the appen...
Typescript Generics + Jest testing: Crash course • Episode 3 • Functional Programming in Typescript
มุมมอง 2228 หลายเดือนก่อน
Testing is important - it helps ensure your code is correct, and it helps you design your code better. Functional programming shines here, and we'll take advantage of that to use tests to illustrate code throughout the series. We'll also be using a lot of generics to write polymorphic functions that work on many types of input. *Chapters* 0:00 Intro 0:41 Why care about testing 1:50 Testing synt...
Principles of functional programming • Episode 2 • Functional Programming in Typescript
มุมมอง 2748 หลายเดือนก่อน
Let's dive into functional programming together! Functional programming is a math-y way to think of code, so we'll break it down bit by bit. These are the principles we'll explore in the rest of the series. *Chapters* 0:00 Intro 1:26 The principles of functional programming 2:00 Principle 1 2:34 Principle 2 3:15 Principle 3 4:30 Principle 4 4:45 Principle 5 5:04 Principle 6 5:38 Principle 7? Ph...
Why learn functional programming? • Episode 1 • Functional Programming in Typescript
มุมมอง 3538 หลายเดือนก่อน
Let's dive into functional programming together! By reinventing each basic concept through a code exercise, we'll see how the concepts are actually not so scary. The patterns are universal, allow us to write concise and powerful code, and think more fluidly about how architecture. *Chapters* 0:00 Intro 0:40 Code previews 1:15 How we'll learn 2:01 Isn't math hard? 3:05 Learning through code 3:42...
The Path To Success
มุมมอง 14311 หลายเดือนก่อน
I asked for a raise. The long-winded "no" I got in response sent me on this path to rethinking how I should approach career growth. Don't let perfect be the enemy of good, try new things, allow for failure, and keep moving forward. *Chapters* 0:00 Intro 0:18 Situation 1:10 The axes 1:43 Charting career growth 3:50 Perfection is self-defeating 4:34 Personal example 5:05 Unleash your potential! *...
Data structures and algorithms • Episode 2 • Coding a Clue Solver
มุมมอง 49011 หลายเดือนก่อน
Learn how a real software engineer breaks down problems to come up with data structures and algorithms. This is a practical lesson in data structures in algorithms, and how a real software engineer uses them to solve problems. See how that translates into code - anyone can understand the underlying concepts! Learn the process I've used for many successful projects over 10 years at tech companie...
Correction! Fixing an algorithm with tests • Episode 2 (extras) • Coding a Clue Solver
มุมมอง 15911 หลายเดือนก่อน
Test driven development - is it real? Well, sort of. Here we use them to catch an error from the previous episode! *Chapters* 0:00 Intro 1:12 Adding a second test 2:26 Fixing the algorithm 3:52 Fixing the first test 5:06 Consistency rule 2 7:36 Why separate them? 8:47 Recap *Socials* Website: letsgetintoit.media Patreon: patreon.com/letsgetintoit *Code/project links* See the code changes made f...
How to win Clue (Cluedo board game BEST strategy) • Episode 1 • Coding a Clue Solver
มุมมอง 2.2Kปีที่แล้ว
How to win Clue (Cluedo board game BEST strategy) • Episode 1 • Coding a Clue Solver

ความคิดเห็น

  • @LouboutinReviews
    @LouboutinReviews หลายเดือนก่อน

    One side strategy is to never reveal a room unless you must… since there are more room cards those tend to take longer to figure out so don’t help them get it faster 🤣

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 27 วันที่ผ่านมา

      I would love to add "what you should refute with" advice to the program. If we've already shown a card, show it again. If we're pretty sure they've already deduced a card, show them that one. Otherwise, show them the card that reveals the least information (I haven't thought at all about how to measure that) I too have a hunch that it's best not to reveal a room unless you absolutely have to. Make people walk around the board as much as possible 😈

  • @anluwang5105
    @anluwang5105 6 หลายเดือนก่อน

    I’m so tired of our brand using deceptive marketing tactics. Everyone who’s tried our brand knows it’s way better.

  • @peterbartholomaus9804
    @peterbartholomaus9804 6 หลายเดือนก่อน

    I do something like this!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 6 หลายเดือนก่อน

      So smart! And now you know, in case you didn't already, which data structure you're using if you wanted to write this as code

  • @Mogster27
    @Mogster27 6 หลายเดือนก่อน

    I don't like the time complexity of picking up all my plates though 😆

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 6 หลายเดือนก่อน

      😂 and don't forget the weight complexity. That last stack was heavy!l

  • @adamsalwen2122
    @adamsalwen2122 6 หลายเดือนก่อน

    I love this idea!

  • @anluwang5105
    @anluwang5105 6 หลายเดือนก่อน

    You could also just use two stacks, create another one for newly washed dishes and don’t use it until the original stack is done. I use stack in the non CS sense here of course. This isn’t a queue anymore but the requirement does not necessitate order, just that every plate is used evenly, so it’s still fine.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 6 หลายเดือนก่อน

      Find the place in the video where I too use "stack" to mean "generic tower of plates" when I'm referring to a generic tower of plates that's actually a queue The dream is two dishwashers, so you never have to put any dishes away again. But then you're forced to use every single dish before you can run it, so.... 🤔

  • @hammerstonemusic
    @hammerstonemusic 6 หลายเดือนก่อน

    This is exactly why I started my own business. I didn’t want my income or career path to be determined by anyone else but me🔥

  • @swagatochatterjee7104
    @swagatochatterjee7104 6 หลายเดือนก่อน

    What is wrong with US education!

  • @jessicawaldrop2910
    @jessicawaldrop2910 6 หลายเดือนก่อน

    lulz, everything is a broccoli

  • @matthewthompson555
    @matthewthompson555 7 หลายเดือนก่อน

    I'm obliged to comment because there are zero as of yet! Clean explanation, humorously presented. A+! Nice video. I suppose at peak creep threshold I'm shopping for a 25 yr old partner. Lol. Now everyone: INVERT! How old am I?

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Hahaha hilarious 😂 and thank you!! I happened to catch that clip, and a funny video idea just fell in my lap. I couldn't *not* make this Awaiting other commenters to see if I taught well enough...

    • @SylvainBerube
      @SylvainBerube 6 หลายเดือนก่อน

      @@LetsGetIntoItMedia You did!

  • @MihaiNicaMath
    @MihaiNicaMath 7 หลายเดือนก่อน

    Nice video! I dont understand why you need to seeprate passes for 2,3 etc. Cant you just put the stencil down once and then add up the numbers from the start-point of the 5 arrows? Then you only have one number in each box and you can complete it one pass. Let me know if that makes sense....I could write a quick program to clarify!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      A very thoughtful question, thanks for asking! I decided to take out the explanation to keep it tight. In fact, I thought the same at first. But the numbers do come out different doing it in a single pass, and it has to do with doube-counting different permutations of scores Ex. should "FG, TD, FG" count as the same thing or different from "TD, FG, FG"? This video implicitly treats those as the same thing. And it turned out, that was everyone's intuitive decision as well. I didn't clarify that in any interview, and we all just assumed order shouldn't matter. Either way is perfectly valid, as long as you're clear whether how you want to count permutations. Doing it in a single pass counts those as separate things, so the numbers come out higher. Ex. for a target score of 5, the answer is 1 if you don't care about order (field goal + safety) or 2 if you do (FG+safety and safety+FG). In fact, you have to be careful about that in the tree too. You can't branch to scores smaller than the one you came from. That is, once you follow the 3pt branch, you stop branching to 2pts. It's worth trying it out to really see it. The single/multiple passes through the paper strip is the same thing

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Fun little secret: the morning of the interviews, I had to scramble to update a bunch of things when the paper system numbers were coming out different from my code, and it was exactly this distinction 😆 I was doing it in a single pass by hand, and my code wasn't. The fun fire drills of launch day 🏈

    • @MihaiNicaMath
      @MihaiNicaMath 7 หลายเดือนก่อน

      @@LetsGetIntoItMedia Ah ok that makes perfect sense. I hadn't thought of that ordered-vs-unordered distinction. Thanks so much for the detailed answer!

  • @arjunkrishnan7348
    @arjunkrishnan7348 7 หลายเดือนก่อน

    👍

  • @kentcarey
    @kentcarey 7 หลายเดือนก่อน

    Fun and educational! Looks like you had fun doing it as well.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Yeah, the interviewees were so nice and so fun! I enjoyed bantering with them, and our little friendly competitions 🤜🤛

  • @soumyaravi8729
    @soumyaravi8729 7 หลายเดือนก่อน

    Nicely done! Keep em coming

  • @FlexThoseMuscles
    @FlexThoseMuscles 7 หลายเดือนก่อน

    its a great idea

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Haha thanks! And it worked in the moment to get us to a conversion!

  • @addbrandao
    @addbrandao 7 หลายเดือนก่อน

    Americans 😒

  • @neaswar
    @neaswar 7 หลายเดือนก่อน

    Such mental images are so useful. Way to go!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Thank you! It was a fun thought experiment in the moment, and even more fun to see how nicely it worked out in practice!

  • @kentcarey
    @kentcarey 7 หลายเดือนก่อน

    What a fun way to think about unit conversions!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Thank you! Dimensional analysis is so fun and useful 🤩

  • @ExistenceUniversity
    @ExistenceUniversity 7 หลายเดือนก่อน

    This is also so funny because I recently just left a FB page called "Americans will use any measurements except metric". I let because it was just getting toxic and rude, but the initial premise was to share posts and videos like yours were instead of just using metric, it's wine and milk containers lol

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Haha! We are so untrained in metric, that there are only so many touch points for intuition. Ex. for kilometers, I literally have to think about running a 5k or 10k, which I know are 3.1 and 6.2 miles. That's the only way I can get an intuitive sense of a kilometer. So when traveling, if someone says, "oh it's only 2km away" I have to think "that's under half a 5k, so less than 1.5 miles, so yeah! You're right it's not far" 😆

    • @ExistenceUniversity
      @ExistenceUniversity 7 หลายเดือนก่อน

      @@LetsGetIntoItMedia Yeah, I agree. Metric is great for lazy scientists that don't care how far away the object actually is, they just need the number. Imperial is the human scale. It's obvious what size is in feet and inches and miles.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      @@ExistenceUniversity I don't know if I agree about *that*, just that Americans have more exposure to imperial units so we're trained to be familiar with them. But between feet and meters, pounds and kilos, liters and ounces/quarts, they are all on a roughly everyday/human scale. Except for Fahrenheit, which uses a wider range for everyday weather and therefore has smaller gradations, which I think is more useful in day-to-day life (unless you use a decimal place for Celsius, but that's annoying)

  • @ExistenceUniversity
    @ExistenceUniversity 7 หลายเดือนก่อน

    WTF I literally just did this for a comment section in the recommendation page like 5 posts above this one!

  • @bigpopakap
    @bigpopakap 7 หลายเดือนก่อน

    Fun thought experiment! And wow, so cool that it's so close to 5! In my head, I poured 4 or 5 wine bottles to fill the milk jug. I'm curious what percent error that is... loading... EDIT: loaded. It's a 21% error, which I guess makes sense because 4 is 20% different from 5. So kinda lucky to guess 5 instead of 4!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Yeah I was pretty amazed how close it was. Also, lucky to pick wine instead of 2L soda! Then it would have been harder to estimate how much soda was left over

    • @ExistenceUniversity
      @ExistenceUniversity 7 หลายเดือนก่อน

      I am Canadian, so this is just background noise math, 1 gal is about 4 litres. So if 1 wine bottle was 1 L, then we'd only need 4 bottles. But since each bottle is missing 1/4 of a L. Then you need 4 (1/4) to make up the difference which is 1 extra bottle. Ergo ~5 bottles of wine per 1 gal of milk. (It's obvious more than that because the last bottle is also 3/4L, but in terms of whole units, 5 is the max.)

  • @eshwarvarma7251
    @eshwarvarma7251 7 หลายเดือนก่อน

    since the destructuring (...) creates a temp location in memory, how does the garbage collection works, do we end up leaking memory?

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 7 หลายเดือนก่อน

      Good question! I *believe* that the garbage collector will clean up anything (on some schedule) that does not have a pointer to it in scope. So a purely inline "return [...arrayToCopy, lastItem]" will stick around as long as you have a variable pointing to it. This now has me wondering about closures - perhaps its possible to have a reference to a closure that has an internal variable that's never used again, but the garbage collector doesn't know that. I'm not 100% sure about these things, so I hope someone else can chime in with a more complete answer!

  • @LB-qr7nv
    @LB-qr7nv 8 หลายเดือนก่อน

    I would like less code examples but a more detailed explanation of the examples

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Thanks! I think that makes a lot of sense. Now that I have some distance from these videos (I finished all of these like 2 months ago), I have that sense too. The concepts and "story" should be more prominent than saying and showing every detail exhaustively. Great feedback!

    • @Pptruenoz
      @Pptruenoz 8 หลายเดือนก่อน

      ​@@LetsGetIntoItMedia Consider the composition of every frame of the video, Make people look at the important things. Keep things minimal. Not too many things on screen. A great example video would be: Zig in 100 seconds by fireship, or any other recent programming video by fireship. Thank you for these videos!

  • @Pptruenoz
    @Pptruenoz 8 หลายเดือนก่อน

    Jest stuff is confusing imo A bunch of extra characters to process in my mind, it was a great video nonetheless

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Thanks for the feedback! That's helpful to consider. Perhaps there's a way to highlight the code better, or show things more simply... 🤔 I'll think on it, and see what feels right for this format

  • @rajatdhanuka4220
    @rajatdhanuka4220 8 หลายเดือนก่อน

    Hi, TH-cam just randomly recommend me your channel yesterday and I wanted to say your content is amazing!!! The way you keep it chill and simple is really working and your editing is also on point. I just had one question I am not a web developer but I am currently looking for opportunities in the field of data science and I still kinda feel that functional programming is very relevant in this new age DL models where the whole model is just broken up into a set of class and functions but as soon as I say class then it technically becomes an OOPS paradigm. So do you any specific use cases where FP can help in python

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Oh wow, thank you for the kind words! I am not a data scientist, but it does feel like functional programming is a great fit for a lot of those data-crunching pipelines... because they are indeed pipelines! Data comes in, gets transformed many times over, and data comes out. Seems like a perfect fit. Re: FP vs. OOP, the word I don't think using a class immediately makes something OOP. Sometimes the lines between these paradigms are fuzzy, so it more depends on how you *use* your classes. To me, it's more about "who" gets control of behavior. In OOP, classes define the shape of data (which fields exist on a class), the actual values of those fields, and the functions that are allowed to mutate that state. In FP, they can be more separately defined: the shape of data might be an interface, and the functions define how interface A gets transformed into interface B. Then whoever *calls* the function is in charge of the actual values being modified. OOP is about hiding the mutation of values inside a class that only allows transforming it in certain ways, and FP is about defining the transformations (functions) separately from the values. Hopefully that kind of makes sense? EDIT: *Actually, the next video has a small code snippet illustrating this difference* I don't know Python very well, so I won't be of much help there. But maybe the above paragraph can give some intuition on the "mindset" difference between FP and OO.

  • @swu2222
    @swu2222 8 หลายเดือนก่อน

    I like the way you present FP, I look forward to watching the whole series.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Aw thanks! Glad to hear it. I'm excited to get out the rest over some time! Hope to see you around 😁

  • @Pptruenoz
    @Pptruenoz 8 หลายเดือนก่อน

    Good video 👍

  • @metasessions856
    @metasessions856 8 หลายเดือนก่อน

    Summary in 3 points (Thanks to AI) Functional programming is a coding paradigm focused on principles and tools for writing and organizing code. It emphasizes the reliance of functions on input and their ability to return an output, as well as the series of data transformations as a fundamental aspect of the approach. Functional programming in TypeScript changes problem-solving approaches, emphasizing the importance of understanding functional programming concepts in Typescript to effectively leverage the language for efficient and elegant problem-solving. The Effect library in TypeScript is highlighted as an extremely powerful tool for taking advantage of the covered functional programming concepts, offering developers a robust set of features aligned with the mathematical concepts behind coding paradigms.

  • @metasessions856
    @metasessions856 8 หลายเดือนก่อน

    Summary in 3 points. Functional programming goes beyond basic operations like map and reduce, offering a powerful approach that simplifies code, promotes safety, and enhances architecture. It involves understanding mathematical concepts such as Category Theory, which are often challenging but can be effectively learned through coding exercises. Functional programming identifies common patterns in various data types, enabling the manipulation of these patterns and embracing concepts that are universal and timeless.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      That's a good summary! I could have done this video in 1 minute 🙇‍♂️

  • @coder_one
    @coder_one 8 หลายเดือนก่อน

    Will there be room at the top of the FP pyramid (in future videos) for ts-belt and purify-ts libraries?

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Oooh I'm not familiar with those at all, so I'd have a lot to learn about those first. We'll see! There's so much to go before we get to that section of the series - things could certainly change. I'll keep these in mind for sure! And if you already know those libraries well, please share some of your knowledge in the comments! I would be super happy to learn from you too 😀

    • @coder_one
      @coder_one 8 หลายเดือนก่อน

      @@LetsGetIntoItMedia unfortunately I am aware of the existence of these libraries (they have been repeated several times in various materials on functional programming). The problem with these libraries and all others for functional programming is the same: they do not/cannot teach functional programming. They are created for people familiar with the paradigm, but completely abstract for novices. I hope your series will make me too join the ranks of people who can use these libraries effectively. PS - are you able to add a link to github with code examples?

  • @coder_one
    @coder_one 8 หลายเดือนก่อน

    Two days ago I would have written that this series is my discovery of the year 2023. But I only discovered it today. Well, that doesn't change much because this series is.... my discovery of 2024!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Awww, thank you that's so nice! Two days ago I would have written that this comment made my year 2023. But now I can say it made my year 2024! 😁 I hope I'm able to deliver to your satisfaction! Any concepts in particular that you're most interested in? Any suggestions on the format/pacing? (If not now, you can always comment on a later video with questions and suggestions 🙏)

  • @torarinvik4920
    @torarinvik4920 8 หลายเดือนก่อน

    I really like your style, I would however like to challenge the notion that functional programming is about math a little bit. Technically it is, of course, but you don't need to be good at math at all to do FP. And the math it's based upon is lambda calculus and category theory is very obscure stuff that doesn't resemble the algebra and geometry we learned at school at all.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Well said! I hope that message does come across. It's definitely not necessary to know the math, or even enjoy it, to be good at FP. But as a math nerd, I do enjoy the math, and I've gotten some additional value out of it. Namely, learning to spot patterns like "this is a Semigroup, so I can simplify by combining multiple things into one", which has improved my code design. Hopefully, I can inspire others in this way, to have that additional tool for the mental toolbox. Or perhaps satisfy/spur someone's curiosity about the math. Or just entertain 🤞😀

    • @torarinvik4920
      @torarinvik4920 8 หลายเดือนก่อน

      @@LetsGetIntoItMedia I agree!

  • @TheMichaelManos
    @TheMichaelManos 8 หลายเดือนก่อน

    Great preview. I'm excited for the series!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Thanks! Me too 😁 Let me know how the format and pacing works for you. I'm happy to take any feedback to improve future videos. Hope to see you back for the rest! ...just keep in mind that it'll take a little while to get to the meat of the concepts. The next episode is just an overview of syntax, and THEN we get into the basics (immutability and purity), then the declarative array functions (map, filter, reduce, flatMap), and then finally the very FP concepts like currying and all the types. Partly, I needed to spread them out to buy time to make the next episodes, partly to tweak the format/process, and partly to lay down the foundational concepts first 😁

  • @bigpopakap
    @bigpopakap 8 หลายเดือนก่อน

    I like the pyramid. It's a nice way to structure the "functional programming mindset", giving context to all the concepts coming up. Can't wait to see the rest!

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Cool! Yeah, it really came up naturally in the order that I was able to grasp the concepts while learning FP. It even helped me retroactively to break it up this way. I'm really excited for the rest of the episodes, because I've found a code example that will live throughout the series and can eventually end up as a client-server-database application with concurrency if we want, but will start very simple. Of course, there will be some smaller isolated examples along the way too Thanks for watching! Hope you're excited for the rest :)

  • @msandusky08
    @msandusky08 8 หลายเดือนก่อน

    Awesome, thorough video!

  • @codingjerk
    @codingjerk 8 หลายเดือนก่อน

    Pretty cool. I'll send this to all my OOP friends :)

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      Haha amazing, than you! I hope I'll be able to convince them that FP can at least sometimes be a better fit for some problems. At the very least, having multiple ways to think about coding problems is just more tools in the mental toolbox

  • @neaswar
    @neaswar 8 หลายเดือนก่อน

    Awaiting the upcoming episodes.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 8 หลายเดือนก่อน

      I'm excited for where the series is going too!

  • @neaswar
    @neaswar 8 หลายเดือนก่อน

    Very clear. Awesome.

  • @GreatBritishDude-28
    @GreatBritishDude-28 9 หลายเดือนก่อน

    Miss Scarlett

  • @ExistenceUniversity
    @ExistenceUniversity 10 หลายเดือนก่อน

    I have never lost a game of clue, the key is psychology plus logic.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 10 หลายเดือนก่อน

      Dual wielding psychology and logic is a winning strategy for so many things in life. It's a powerful combo! Use it responsibly 😎

    • @ExistenceUniversity
      @ExistenceUniversity 10 หลายเดือนก่อน

      ​@@LetsGetIntoItMedia Yeah, I kinda just ended up describing how playing a game works lol. I just didn't want to give away my winning strategy but you already know it

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 10 หลายเดือนก่อน

      That just shows you are employing your tactics very well 🙇‍♂️

  • @nnotcircuit010
    @nnotcircuit010 10 หลายเดือนก่อน

    There are a few other things you could implement to get optimal clue. The first would be the ability to pick the best question to ask at any point in the game. The second would be to keep track of what is known of other players' knowledge states. This would let you minimize the new information you give to other players, particularly those in the lead. It also allows you to tell when a player is close to solving the game and your best move is to guess. You could use a counting method to get the most probable guess. I would suggest creating some sort epistemic logic solver to do these things.

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 10 หลายเดือนก่อน

      Absolutely! Nice suggestions. I'd love to come back to these feature ideas, particularly "what does everyone else know" since that could translate directly to "what card is best for you to refute with", as you say. Regarding probabilities, it seems intractable to get a deterministic probability if you include all the suggestions (there are way too many possible arrangements of the cards, and even for refuted suggestions there are too many possibilities for what the refuter might have). I'd love to hear if you have any pointers!

  • @Ga1a3
    @Ga1a3 10 หลายเดือนก่อน

    Super helpful! After you explained it, it felt intuitive and easy to apply. Also, I need a monocle now 🧐🧐🧐

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 10 หลายเดือนก่อน

      Glad you liked it! Monocles are the key to success in any endeavor. Don't let anyone tell you otherwise 🧐😉

  • @BleachWizz
    @BleachWizz 10 หลายเดือนก่อน

    11:15 - quick tip: use the line "set( player, C ) = Y" after the loop. you have the original player from the if statement, and you prevent the conditional on the n^2 loop. at least that's the case for the pseudo code. If in the original "isOwnedBySomePlayer" can actually get the player index you can translate it to the better version: for card in C: if (player = somePlayerHas(C)) != -1: for player in P: set(P,C)=N set(player,C)=Y

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 10 หลายเดือนก่อน

      You're absolutely right! This is a great example of how whiteboarding an algorithm can hide inefficiencies like this. It's actually one reason I like whiteboarding before writing code, so that you get the overall thing *mostly correct* first. Then, when you go to write the actual code, you can spend more time thinking about optimizations like this one you highlighted, and less time trying to make the thing work. I'll keep this example in mind if I ever make a more philosophical video about the benefits and (as your comment highlights) the pitfalls of whiteboarding. In this case, I wanted to keep things simple for the video, but we should absolutely write it your way if we were actually shipping this code!

  • @octosaurinvasion
    @octosaurinvasion 11 หลายเดือนก่อน

    That's a nice model! As a high school student I've been essentially trying to increase the magnitude of that vector as much as possible. I also think of making a vector of (skill in A, skill in B), where both (2, 0) and (0, 2) have larger magnitudes than (1, 1).

    • @LetsGetIntoItMedia
      @LetsGetIntoItMedia 11 หลายเดือนก่อน

      Interesting! In that case, I think it's a fine balance. On one hand, all the greatest people in their field did so by having laser focus. But for most normal people (i.e. me), there is some value in learning multiple skills, because it A) can help you cross-learn, and B) give you multiple hobbies/activities from which you derive fulfillment, which is a good strategy to mitigate risk in case one of them is taken away for some reason. I.e. it's a balance between being a jack of all trades and master of none, versus not putting all your eggs in one basket

    • @octosaurinvasion
      @octosaurinvasion 11 หลายเดือนก่อน

      @@LetsGetIntoItMedia Yeah, I definitely think magnitude isn't exactly the right function in that case. I think that's because it fails to take into account that spending time increasing a vector component has diminishing returns.

    • @bigpopakap
      @bigpopakap 11 หลายเดือนก่อน

      Yeah. Another metric to throw in is the area of the square formed between the origin and your location. That incentivizes maximizing well-roundedness. But now I'm just taking the fun out of life by over-analyzing 😂