7 Fancy Programming Words

Ғылым және технология

Learn the meaning of 7 fancy, yet important, programming terms before your next technical interview fireship.io
00:00 Intro
00:58 Idempotent
02:08 Ephemeral
03:16 Anonymous
04:13 Predicate
05:10 Memoization
05:59 Abstraction
07:06 Serialization
Install the quiz app 🤓
iOS itunes.apple.com/us/app/fires...
Android play.google.com/store/apps/de...
Upgrade to Fireship PRO at fireship.io/pro
Use code lORhwXd2 for 25% off your first payment.
My VS Code Theme
- Atom One Dark
- vscode-icons
- Fira Code Font

Пікірлер: 345

  • @grape2063
    @grape20633 жыл бұрын

    Jeff is not a coder, he's an Artist!

  • @nulled7888

    @nulled7888

    3 жыл бұрын

    In some way or another, code is an Art.

  • @grape2063

    @grape2063

    3 жыл бұрын

    @@nulled7888 it is indeed! changes how ur brain is wired

  • @nulled7888

    @nulled7888

    3 жыл бұрын

    @@grape2063 yea, i can relate. After years of coding, you get somehow used to logic, you experience the world in a mathematic shape.

  • @ZapOKill

    @ZapOKill

    3 жыл бұрын

    @@nulled7888 yeah I can relate. I call it PTSD.

  • @nulled7888

    @nulled7888

    3 жыл бұрын

    @@ZapOKill thats something way different lol

  • @gradientO
    @gradientO3 жыл бұрын

    *idempotent* - produces the same result multiple times *ephemeral* - may not persist, opposite of immutable *anonymous* - functions that don't have a name *predicate* - function that returns either TRUE or FALSE *memoization* - caching return value of a function *abstraction* - process of hiding implementation details from end user *serialisation* - process of taking data from one format into a more generic format *Turbo Encabulator* - a fictional machine whose technobabble description is an in-joke among engineers for decades. *technobabble* - technical jargon.

  • @LeoStaley

    @LeoStaley

    3 жыл бұрын

    7/10 score for the quiz. Points off for not defining turbo encabulator.

  • @mahmutjomaa6345

    @mahmutjomaa6345

    3 жыл бұрын

    Ephemeral is just a fancy word for non-persisting. Something can be ephemeral and immutable tho. Anything in-between is called partially persisting. Also memoization is caching the result value of (pure) functions for some specific inputs, e.g. the cache key are the input parameters.

  • @perrym8048

    @perrym8048

    3 жыл бұрын

    I find the ephemeral being defined as the opposite of immutable not really true. Immutable doesn't mean persisted, it just means it can't be changed. Ephemeral would simply be something that doesn't last for a very long time (or doesn't persist). I've never heard a javascript object be defined as ephemeral. In that case, anything in the call stack is ephemeral (which is true, but not particularly helpful to think about it that way).

  • @mahmutjomaa6345

    @mahmutjomaa6345

    3 жыл бұрын

    One oversimplified example for ephemeral + immutable: On application startup you check if the OS is Linux and set a readonly global boolean "IsLinux".

  • @RobertShaverOfAustin

    @RobertShaverOfAustin

    3 жыл бұрын

    @@perrym8048 Your objection is sustained.

  • @ObinnaWGMI
    @ObinnaWGMI3 жыл бұрын

    This man just explained what an abstract class is perfectly while talking about fish. I spent like 30+ minutes reading and not understanding it XD

  • @gamerzero6085

    @gamerzero6085

    2 жыл бұрын

    I'm not sure if that's a really good explanation in terms of typescript, I always thought that abstract classes should only contain methods that are not yet implemented, so they have to be overloaded in derived classes.

  • @MechMK1

    @MechMK1

    2 жыл бұрын

    @@gamerzero6085 There are multiple ways of looking at it. Both make sense. For one, an abstract class can be a base class of two different classes, which doesn't make sense to instantiate on its own. The other, as you said, is an abstract class, for which not all implementation details are known yet. Often, both occur simultaneously.

  • @gamerzero6085

    @gamerzero6085

    2 жыл бұрын

    @@MechMK1 Yes, now i actually understand the practice of using abstract modifier just as mark that this class doesn't have to be instantiated on its own, after working with C# for a while. Yet I think it worth to tell about virtual methods and overriding when talking abstract classes.

  • @tldoesntlikebread

    @tldoesntlikebread

    2 жыл бұрын

    I would think of abstract classes as making it not instantiate on its own Because it doesn't have all the implementation details, I feel like those go hand in hand, at least I can't imagine a scenario where that's not the case. and if it was only abstract methods I might just vouch for an interface.

  • @OatmealTheCrazy

    @OatmealTheCrazy

    Жыл бұрын

    Alternatively, you could take a lecture about Plato

  • @mattjohnstondev
    @mattjohnstondev3 жыл бұрын

    Best fireship video yet! It's this type of stuff that is really hardest to self-teach imo. It's in all documentation, but there's no documentation about it

  • @ijimmoore

    @ijimmoore

    Жыл бұрын

    A friend of mine says she uses a paperback dictionary

  • @alexpopov5971
    @alexpopov59712 жыл бұрын

    I love how you explained the pronunciation and origin of the words and how well you explained their meaning! Great job!

  • @FalseDev
    @FalseDev3 жыл бұрын

    I knew only half of them, great word from the sponsor 😂

  • @DavidKizivat1
    @DavidKizivat13 жыл бұрын

    I'm big about terminology in programming, especially when tutoring. I try to emphasize to my students that using the right words makes communication much more efficient and finding the correct terms deepens your understanding of the subject. However, I'm also a bit of an etymology nerd so I may go too far with it sometimes... most of the time...

  • @devstuff2576

    @devstuff2576

    2 жыл бұрын

    I would hate to be your student. Memorizing and using big words has absolutely nothing to do with learning or communicating..in fact, using simple terms is the essence of being a good communicator.

  • @DavidKizivat1

    @DavidKizivat1

    2 жыл бұрын

    @@devstuff2576 I agree that a good communicator need to be able to describe concepts in terms that are close to the target audience. However, I still believe that having good vocabulary and being able to compactly and precisely express ideas using "industry standard" terms in a professional setting among peers is advantageous. Also I don't think that building such vocabulary is a matter of memorization, but rather of exposure to the subject matter. E.g. I wouldn't require a student to know the difference between terms "anonymous function" and "arrow function" in Javascript right after they're introduced to the concepts, but rather after they're comfortable with it, but I would always make sure to use the terms correctly myself and gently correct any misuse of terminology.

  • @ijimmoore

    @ijimmoore

    Жыл бұрын

    Nothin beats being able to communicate effectively, and intelligently, with a little humor sprinkled in, as duz Fireship.

  • @andrewgora5446

    @andrewgora5446

    Жыл бұрын

    @@devstuff2576 He said using "correct" words, not "big" words. Missing that distinction is ironic.

  • @davidconneely5188

    @davidconneely5188

    Жыл бұрын

    Play

  • @BradenJohnYoung
    @BradenJohnYoung3 жыл бұрын

    Thank you! The more time I spend in the programming world, the more I wish we could all just have a glossary in front of us and completely agree on the meaning of words like these.

  • @sneckie
    @sneckie2 жыл бұрын

    I loved the way you presented and introduced each term. Very useful for me as a software developer and I'll definitely be sharing it with friends who need it. Please make more like this!

  • @3nertia
    @3nertia2 жыл бұрын

    Using food items for your examples is GENIUS for knowledge retention! You make some top notch content!

  • @Aaronmoreno
    @Aaronmoreno3 жыл бұрын

    amazing Jeff. This is great. I would love more of these!

  • @baluditor
    @baluditor3 жыл бұрын

    Awesome video with great details. I wish all of your videos/ tutorials would be detailed/indepth like this one. You'd be the best instructor out there imo.

  • @Alex-pd5xv
    @Alex-pd5xv3 жыл бұрын

    Amazing content, remember it took me years to learn these terms by picking the up over time. This is a great and accurate summary!

  • @Sid-xt3kt
    @Sid-xt3kt Жыл бұрын

    I recognize idempotent from my discrete math class. The idempotent law, which is basically saying if there a prepositional statement p (boolean) then p OR p is equivalent to p. P AND p is equivalent to p

  • @Spcbl-td9sx
    @Spcbl-td9sx3 жыл бұрын

    I’ve never been this early to a video Awesome video, too

  • @FalseDev

    @FalseDev

    3 жыл бұрын

    👀

  • @acollierr17
    @acollierr173 жыл бұрын

    Thank you for this video, Jeff! There was definitely a word or two (like idempotent and ephemeral) that I've heard before but didn't really understand.

  • @oluwatomisinbabatunde8426
    @oluwatomisinbabatunde84263 жыл бұрын

    This was one of the most useful videos ever i have added it to my significant playlist

  • @leojweda
    @leojweda3 жыл бұрын

    From Wikipedia: The term "memoization" was coined by Donald Michie in 1968 and is derived from the Latin word "memorandum" ("to be remembered"), usually truncated as "memo" in American English, and thus carries the meaning of "turning [the results of] a function into something to be remembered".

  • @parthkharwar69
    @parthkharwar693 жыл бұрын

    My brain! Watched each segment twice to ensure I fully understood. Thank you for the great videos!

  • @hanzhiyin5239
    @hanzhiyin52393 жыл бұрын

    Brilliant! I like you explaining the etymology of these terms.

  • @cbaxtermusic
    @cbaxtermusic3 жыл бұрын

    I loved the intro and outro lol I always tell folks when getting into coding the first hard part is learning the terms.

  • @Michael-ri8sg
    @Michael-ri8sg3 жыл бұрын

    Please do more of these! Loved it

  • @FilipeOliveira94
    @FilipeOliveira943 жыл бұрын

    Great vídeo! Thanks for that. Anxious for the sequel! :)

  • @BitwiseMobile
    @BitwiseMobile3 жыл бұрын

    I would say that it's more accurate that while learning software engineering you have to learn some new concepts. These new concepts have words we are unfamiliar with, so for some reason we attribute them as "fancy". Many of the concepts are intuitive though, so it's just a matter of learning the vernacular.

  • @ijimmoore

    @ijimmoore

    Жыл бұрын

    ... or, just read more, generally.

  • @salifouaffoh9626
    @salifouaffoh96263 жыл бұрын

    Please make this a series. It is so helpful

  • @brunovalentim6736
    @brunovalentim6736 Жыл бұрын

    man, you Rock! This is a very beautiful work

  • @as-qh1qq
    @as-qh1qq Жыл бұрын

    Serialisation need not necessarily involve conversion to a language independent format (of which JSON would be an example) for interop. It can also mean dumping object state to file, within a language itself for resumability or streaming.

  • @AmexL

    @AmexL

    Жыл бұрын

    And it prevents side fumbling.

  • @sy-hungdoan4859
    @sy-hungdoan48593 жыл бұрын

    I am now in absolute awe !!!

  • @DanielEliasKana
    @DanielEliasKana3 жыл бұрын

    Guy, your videos are just gold!

  • @AlexSpieslechner
    @AlexSpieslechner3 жыл бұрын

    i appreciate your content so much. any time i think you've peaked, you surprise me again.

  • @KImtOs
    @KImtOs3 жыл бұрын

    one of the best videos, so far

  • @it.a.01.maheshaaraj88
    @it.a.01.maheshaaraj883 жыл бұрын

    When your video came I left all the other things I was doing and clicked on notification 😂 and got some more knowledge ❤️ Great work 👍

  • @darshangowda309
    @darshangowda3093 жыл бұрын

    Yep! Can you provide the link for signing up to ANONYMOUS? :P

  • @Fireship

    @Fireship

    3 жыл бұрын

    You're in!

  • @manu.g91

    @manu.g91

    3 жыл бұрын

    Yes please !!

  • @okie9025

    @okie9025

    3 жыл бұрын

    kzread.info/dash/bejne/p5ZslLqbYaaen9Y.html

  • @tochimclaren

    @tochimclaren

    3 жыл бұрын

    Lots a peps getting Rick rolled. Lol

  • @eyesgotshowyo7800

    @eyesgotshowyo7800

    3 жыл бұрын

    Sign up for raid shodow legends

  • @troika_473h
    @troika_473h3 жыл бұрын

    This channel is just so amazing.

  • @aminzarei1557
    @aminzarei15572 жыл бұрын

    Although my mind stuck in those fish icons and couldn't map them into X,Y , but still useful :)

  • @fire_boat
    @fire_boat3 жыл бұрын

    if fireship ever has a real sponsor everyone will think its a joke

  • @abhinav.sharma
    @abhinav.sharma3 жыл бұрын

    This video was profusely exquisite 👌 Jeff rocks 🔥

  • @mvgiacomello
    @mvgiacomello Жыл бұрын

    VERY nice video. Thanks!

  • @shk8089
    @shk80893 жыл бұрын

    Wow, much simple, so understand

  • @victorpinasarnault9135
    @victorpinasarnault91353 жыл бұрын

    This is a kind of video to watch over and over.

  • @printTest
    @printTest3 жыл бұрын

    need more of this

  • @ridl27
    @ridl273 жыл бұрын

    lol such an easy & clear explanations. especially the one with abstraction. ty.

  • @exodproduction
    @exodproduction3 жыл бұрын

    love the outro!

  • @manishgautam2424
    @manishgautam2424 Жыл бұрын

    Superb , need more such

  • @abdelrhmanhashem3256
    @abdelrhmanhashem3256 Жыл бұрын

    thank you bro, that was informative.

  • @motabarjavaid5482
    @motabarjavaid54823 жыл бұрын

    Dude you help a lot more than most

  • @MrBlazzerBoy
    @MrBlazzerBoy Жыл бұрын

    This video prevented a lot of my side fumbling.

  • @erikbustos2187
    @erikbustos21872 жыл бұрын

    Awesome content as always

  • @RawPeds
    @RawPeds3 жыл бұрын

    Didn't know about idempotent. Thanks!

  • @AkshayKumar-es7pc
    @AkshayKumar-es7pc3 жыл бұрын

    Awesome content 💯

  • @minuspi8372
    @minuspi83722 жыл бұрын

    I prefer to think of idempotency as only having an effect once. Pressing the crosswalk button multiple times has the same effect as pressing it once, but that first press has a different effect than not pressing it at all.

  • @pharoah327

    @pharoah327

    Жыл бұрын

    I agree. Saying it has the same effect can be misleading. It has the same power but not same effect. For example the absolute value function. The first time it is used can have a different effect than using it again and again on the same value. But all times after the first will result in the same value returned. Essentially the power is in the first time it is used.

  • @gabrielcoelho1623
    @gabrielcoelho16233 жыл бұрын

    I've never been this early! Great content

  • @justintime802
    @justintime802 Жыл бұрын

    Nice work! 😃

  • @minitheatre2712
    @minitheatre27123 жыл бұрын

    PHP - The Scope Resolution Operator (also called Paamayim Nekudotayim) or in simpler terms, the double colon, is a token that allows access to static, constant, and overridden properties or methods of a class.

  • @lucio8794
    @lucio87943 жыл бұрын

    Great video, very useful and well explained, I'm just waiting for one where you explain technospeak

  • @richardkirigaya8254
    @richardkirigaya82543 жыл бұрын

    This is pure gold...

  • @gokseningngr
    @gokseningngr3 жыл бұрын

    The humor in this video... He must have so much fun editing that :D

  • @MarkEichin
    @MarkEichin Жыл бұрын

    Rockwell Automation is still around; among other things they sell maintenance and support for robot arms, which adds an entirely new layer of inscrutable jargon ("inverse kinematics", "homogeneous coordinate transform", "palletizing") in their day-to-day business :-)

  • @devstuff2576
    @devstuff25762 жыл бұрын

    THANK YOU

  • @adnanbadshah3425
    @adnanbadshah34253 жыл бұрын

    THA BEST VIDEO EVA!!!

  • @marcombo01
    @marcombo013 жыл бұрын

    this is gold!

  • @pup4301
    @pup43013 жыл бұрын

    The serialization of code has just blown my mind.

  • @ArchonLicht

    @ArchonLicht

    3 жыл бұрын

    Serialization is not for code - it is for state/data. This video is a bit wrong when explaining it.

  • @SophieExMachina

    @SophieExMachina

    3 жыл бұрын

    @@ArchonLicht Yeah this video isn't as great as people think lol His definition of abstraction is also not perfect. He described inheritance, not abstraction. Abstraction is for example if you have a data structure with a .sort() method. You just call .sort() on it and you expect a certain outcome (a sorted collection), and you don't care how it sorts itself. Meanwhile the data structure can have a way it gets its output (for example quicksort or something), but then the developer of the library decides to switch out the sort for a faster sorting implementation. You keep using .sort() on it and it keeps giving the same result of a sorted collection, but it does it entirely differently than before and you don't even notice. This is abstraction. Creating an API (API as a term can be used for web APIs but also code libraries) where you hide useless implementation details but give out what the function takes and what it will output. This should always remain consistent but the implementation can then be done in a million different ways and the consumer (user of the API) never has to care or know.

  • @exortions3079
    @exortions30792 жыл бұрын

    love the office space clip!

  • @cenacr007
    @cenacr0073 жыл бұрын

    added to watch later , just before my interview 😂

  • @GregBressler
    @GregBressler Жыл бұрын

    You had me at Turboencabulator!😄

  • @mightytechno
    @mightytechno3 жыл бұрын

    Damn cool as always.

  • @Jackson_Zheng
    @Jackson_Zheng4 ай бұрын

    I learned the word idempotent from Tom Scott's video "The Two Generals Problem". Just wanted to put that out there.

  • @Jesse_Carl
    @Jesse_Carl Жыл бұрын

    Very nice... Now let's see you try to do Contravariant, Monad, and Endofunctor

  • @SmartWizzard
    @SmartWizzard3 жыл бұрын

    Awesome video

  • @danieljayne8623
    @danieljayne86233 жыл бұрын

    Thanks for making memoization less scary!

  • @manu.g91
    @manu.g913 жыл бұрын

    Can you make a video on all the customisation you have made on VSCode. Your vs looks great!!!

  • @rondamon4408
    @rondamon44083 жыл бұрын

    Very ephemeral. Good to see your idempotence.

  • @AlvinGreat
    @AlvinGreat3 жыл бұрын

    How do you make the code pop up chunk by chunk in VS Code? Is there some trick or extension to it or is it just working with ctrl + z? Love your videos btw!

  • @teodorchirileanu
    @teodorchirileanu2 жыл бұрын

    I was expecting more!

  • @add1989
    @add19893 жыл бұрын

    I've never heard someone say "idem-po-tent" before. In the UK this is pronounced "i-dempotent" - where the "o" in potent is not emphasised.

  • @goisenate
    @goisenate Жыл бұрын

    Thanks for sharing this content. A few remarks, though: A good example of predicates is the function you pass as the argument of the filter function on arrays. Your example with isCat, however, is a misunderstanding of OO and polymorphism. Both Cat and Dog should have a function makeSound() and their implementing classes then yield the respective result. No if needed. Your example means that for each additional animal you need to add 1 more is... function and you need to add it to the union type and you need one more if block in makeSound. This violates the Open Closed Principle and it is measurably more complex (check the CCN). Secondly, you are right that abstraction means to hide implementation details. Declaring a class "abstract" is not the answer here. Many abstractions exist without OO concepts like inheritence. Your code achieves DRY but not abstraction per se.

  • @TheJobCompany
    @TheJobCompany3 жыл бұрын

    "Java doesn't know how to understand PHP code" ~ I mean, who does?

  • @arafatzahan2082

    @arafatzahan2082

    3 жыл бұрын

    hhvm?

  • @GuRuGeorge03

    @GuRuGeorge03

    3 жыл бұрын

    ? the latest versions of Java and php actually are pretty damn similar if you use the type hinting in php.

  • @JohnNecirRebellion
    @JohnNecirRebellion3 жыл бұрын

    "Coding is more an Art than Science." Which to me, coding is not explaining but rather expressing.

  • @tg5127

    @tg5127

    3 жыл бұрын

    True

  • @MJ46.91
    @MJ46.912 жыл бұрын

    I love you man ❤

  • @freddyfozzyfilms2688
    @freddyfozzyfilms2688 Жыл бұрын

    that predicate definition would make any type theorist furious

  • @FRONTRUS
    @FRONTRUS3 жыл бұрын

    Amazing video

  • @TheBenjaminsky
    @TheBenjaminsky2 жыл бұрын

    I'd mention that the terms marshaling and unmarshaling are basically synonyms for serialize and deserialize in languages like Go and C.

  • @h.hristov
    @h.hristov3 жыл бұрын

    You should do part 2!

  • @RobertShaverOfAustin
    @RobertShaverOfAustin3 жыл бұрын

    Good vocabulary lesson. It is good that you eschew obfuscation. Oh and where did you get those wild B-roll clips of the guy explaining ... nothing? Is it stock footage somewhere?

  • @gibsonhan1323
    @gibsonhan13233 жыл бұрын

    What do you use for the graphic animation? also do you write a script for each of your video?

  • @blackopraiden
    @blackopraiden3 жыл бұрын

    So good

  • @Andrii87
    @Andrii873 жыл бұрын

    Nice :)

  • @sssrigoku
    @sssrigoku3 жыл бұрын

    Not a single video from Fireship is a waste of time.... 👌✌️🔥🔥🔥

  • @anweshandev
    @anweshandev2 жыл бұрын

    Fun fact: We were made to learn a language called Prolog. It did have *predicates* all over

  • @BlockCylinder
    @BlockCylinder Жыл бұрын

    Did you ever watch Patriot on Amazon? Lots of good jargon there. Skip the second season.

  • @cheaterman49
    @cheaterman493 жыл бұрын

    5:14 Well, it's the same "memo" in both cases, haha! Given the etymological focus you had going on earlier in the video, I'm surprised you didn't put it to use there :-)

  • @Its_Pritam_
    @Its_Pritam_3 жыл бұрын

    For first 15 seconds I questioned my whole existence!

  • @horatiuudrea
    @horatiuudrea3 жыл бұрын

    Awesome videoo

  • @sdstorm
    @sdstorm Жыл бұрын

    This is all well and good, but where is the link to the turboencabulator talk? That's what I really want to learn about.

  • @MikeM8891
    @MikeM8891 Жыл бұрын

    Programming is like an onion, it has layers and the deeper you go the more it makes you cry.

  • @boulderdennis
    @boulderdennis3 жыл бұрын

    One of your best. Now I forgot what it said. Darn.

  • @wateenafzal2963
    @wateenafzal29633 жыл бұрын

    1:43 what vscode theme do you use? for the green dots in the windows gutter??

  • @harshilparmar9076
    @harshilparmar90763 жыл бұрын

    Awesome

  • @adamd0ggg2
    @adamd0ggg23 жыл бұрын

    at 4:44 I might be wrong but I think TS is not strongly typed because you can coerce values into other types because ultimately it is JS. It does have optional static typing. But I am not an authority on the matter I think it would be cool if you had a video showing off a comparison of Static vs Dynamic and Strong vs Weak to show how those are two different things and not mutually exclusive

  • @migueldomingos4570

    @migueldomingos4570

    3 жыл бұрын

    It depends on your tsconfig. You can make it pretty strongly typed if you want.

  • @adamd0ggg2

    @adamd0ggg2

    3 жыл бұрын

    ​@@migueldomingos4570 Good point. You could also store two different types in the same variable and check it at runtime. let c: string | number = func() .

  • @migueldomingos4570

    @migueldomingos4570

    3 жыл бұрын

    @@adamd0ggg2 exacly. For checking at runtime you can use type guards which gives amazing intelisences

  • @talkingmango8658
    @talkingmango86583 жыл бұрын

    This is amazing but if you wrapped around and went over your original statement in the beginning it’d be even better!

Келесі