Тёмный

7 Fancy Programming Words 

Fireship
Подписаться 3,3 млн
Просмотров 312 тыс.
50% 1

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 344   
@gradientO
@gradientO 3 года назад
*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.
@mattjohnstondev
@mattjohnstondev 3 года назад
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 2 года назад
A friend of mine says she uses a paperback dictionary
@grape2063
@grape2063 3 года назад
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
@alexpopov5971
@alexpopov5971 2 года назад
I love how you explained the pronunciation and origin of the words and how well you explained their meaning! Great job!
@ObinnaWGMI
@ObinnaWGMI 3 года назад
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 2 года назад
Alternatively, you could take a lecture about Plato
@david.kizivat
@david.kizivat 3 года назад
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...
@david.kizivat
@david.kizivat 2 года назад
@dev stuff 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 2 года назад
Nothin beats being able to communicate effectively, and intelligently, with a little humor sprinkled in, as duz Fireship.
@andrewgora5446
@andrewgora5446 Год назад
@dev stuff He said using "correct" words, not "big" words. Missing that distinction is ironic.
@davidconneely5188
@davidconneely5188 Год назад
Play
@BradenJohnYoung
@BradenJohnYoung 3 года назад
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.
@FalseDev
@FalseDev 3 года назад
I knew only half of them, great word from the sponsor 😂
@BitwiseMobile
@BitwiseMobile 3 года назад
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 2 года назад
... or, just read more, generally.
@Sid-xt3kt
@Sid-xt3kt 2 года назад
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
@leojweda
@leojweda 3 года назад
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".
@as-qh1qq
@as-qh1qq 2 года назад
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.
@Spcbl-td9sx
@Spcbl-td9sx 3 года назад
I’ve never been this early to a video Awesome video, too
@FalseDev
@FalseDev 3 года назад
👀
@acollierr17
@acollierr17 3 года назад
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.
@fire_boat
@fire_boat 3 года назад
if fireship ever has a real sponsor everyone will think its a joke
@pup4301
@pup4301 3 года назад
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.
@minitheatre2712
@minitheatre2712 3 года назад
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.
@salifouaffoh9626
@salifouaffoh9626 3 года назад
Please make this a series. It is so helpful
@MarkEichin
@MarkEichin 2 года назад
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 :-)
@cbaxtermusic
@cbaxtermusic 3 года назад
I loved the intro and outro lol I always tell folks when getting into coding the first hard part is learning the terms.
@MrBlazzerBoy
@MrBlazzerBoy 2 года назад
This video prevented a lot of my side fumbling.
@Alex-pd5xv
@Alex-pd5xv 3 года назад
Amazing content, remember it took me years to learn these terms by picking the up over time. This is a great and accurate summary!
@Jackson_Zheng
@Jackson_Zheng 7 месяцев назад
I learned the word idempotent from Tom Scott's video "The Two Generals Problem". Just wanted to put that out there.
@it.a.01.maheshaaraj88
@it.a.01.maheshaaraj88 3 года назад
When your video came I left all the other things I was doing and clicked on notification 😂 and got some more knowledge ❤️ Great work 👍
@Jesse_Carl
@Jesse_Carl 2 года назад
Very nice... Now let's see you try to do Contravariant, Monad, and Endofunctor
@victorpinasarnault9135
@victorpinasarnault9135 3 года назад
This is a kind of video to watch over and over.
@adamd0ggg2
@adamd0ggg2 3 года назад
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
@hanzhiyin5239
@hanzhiyin5239 3 года назад
Brilliant! I like you explaining the etymology of these terms.
@BlockCylinder
@BlockCylinder Год назад
Did you ever watch Patriot on Amazon? Lots of good jargon there. Skip the second season.
@GregBressler
@GregBressler 2 года назад
You had me at Turboencabulator!😄
@goisenate
@goisenate 2 года назад
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.
@printTest
@printTest 3 года назад
need more of this
@talkingmango8658
@talkingmango8658 3 года назад
This is amazing but if you wrapped around and went over your original statement in the beginning it’d be even better!
@RawPeds
@RawPeds 3 года назад
Didn't know about idempotent. Thanks!
@devnol
@devnol 3 года назад
Anonymous doesn't originate from the hacktivist group. It too comes from the Greek word ανώνυμος (anonymos) meaning nameless
@nicholasmaniccia1005
@nicholasmaniccia1005 3 года назад
He be joking homie.
@exactzero
@exactzero 3 года назад
Someone's new
@shk8089
@shk8089 3 года назад
Wow, much simple, so understand
@cenacr007
@cenacr007 3 года назад
added to watch later , just before my interview 😂
@gokseningngr
@gokseningngr 3 года назад
The humor in this video... He must have so much fun editing that :D
@talhaibnemahmud
@talhaibnemahmud 3 года назад
I really really like the interface and the theme of your IDE. Which one is it? Adobe Brackets? What Theme is it. Please make one video about it. We'll deeply appreciate it. ❤️
@DendrocnideMoroides
@DendrocnideMoroides 2 года назад
I do not know about the theme but the IDE is definitely VS Code (and yes the VS Code is a very good IDE)
@h.hristov
@h.hristov 3 года назад
You should do part 2!
@danieljayne8623
@danieljayne8623 3 года назад
Thanks for making memoization less scary!
@tilakmadichettitheappdeveloper
@tilakmadichettitheappdeveloper 3 года назад
5:56 Just wanted to point out that you can optimise it even more from linear to log(n) by using Matrix exponentiation. f = 1 s = 1 new_f = 0 * f + 1 * s new_s = 1 * f + 1 * s f, s = new_f, new_s => Multiplier matrix = [0 1] [1 1] raise it power N using binary exponentiation to get the n-th Fibonacci number. There is NO need to memoize anything - So we can even save some space complexity to constant space; (assuming your binary exponentiation function is iterative and not recursive) Best solo: Time = O(log n), Space = O(1) Thanks for reading !
@kebien6020
@kebien6020 2 года назад
If we are going the math way, might as well go all the way and use the formula Fib(n) = (phi^n - (-phi)^-n) / sqrt(5) Where phi = (sqrt(5) + 1) / 2 For time and space both O(1)
@tilakmadichettitheappdeveloper
@tilakmadichettitheappdeveloper 2 года назад
@@kebien6020 wow, thanks for sharing
@proohit99
@proohit99 3 года назад
By the way, the last example of serialization, there is an error in the json inside the python example. Attributes and string values have to be declared inside double quotes :P
@RobertShaverOfAustin
@RobertShaverOfAustin 3 года назад
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?
@anweshandev
@anweshandev 2 года назад
Fun fact: We were made to learn a language called Prolog. It did have *predicates* all over
@FilipeOliveira94
@FilipeOliveira94 3 года назад
Great vídeo! Thanks for that. Anxious for the sequel! :)
@alphaturtle4839
@alphaturtle4839 Год назад
I often use big words I don't understand to make my self sound more photosynthesis.
@sy-hungdoan4859
@sy-hungdoan4859 3 года назад
I am now in absolute awe !!!
@Brunoenribeiro
@Brunoenribeiro 3 года назад
Now I'm ready to use a turboencabulator
@troika_473h
@troika_473h 3 года назад
This channel is just so amazing.
@DodaGarcia
@DodaGarcia 10 месяцев назад
God I finally understand what memoization means, thank you!
@iSuperGeek
@iSuperGeek 3 года назад
My favorite is the missile guidance system, as described by the US Air Force - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-bZe5J8SVCYQ.html "The missile knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the missile from a position where it is to a position where it isn't, arriving at a position where it wasn't; it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't. In the event that the position that it is in is not the position that it wasn't, the system has acquired a variation, the variation being the difference between where the missile is, and where it wasn't. If variation is considered to be a significant factor, it too may be corrected by the GEA; however the missile must also know where it was. The missile guidance computer scenario works as follows: because a variation has modified some of the information the missile has obtained, it is not sure just where it is; however it is sure where it isn't, within reason, and it knows where it was. It now subtracts where it should be from where it wasn't, or vice-versa, and by differentiating this from the algebraic sum of where it shouldn't be and where it was, it is able to obtain the deviation and its variation, which is called error."
@jamesmorrison9893
@jamesmorrison9893 2 года назад
This is a great video, very helpful
@palyanytsia
@palyanytsia 3 года назад
requesting Fancy Words series
@AlexSpieslechner
@AlexSpieslechner 3 года назад
i appreciate your content so much. any time i think you've peaked, you surprise me again.
@AlvinGreat
@AlvinGreat 3 года назад
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!
@Tiddle_s
@Tiddle_s 2 года назад
They could both from the same latin root but I couldn't trace memo further than memorare memor -> memorial -> memorie -> memory momorare -> memorandum -> (memo)
@adnanbadshah3425
@adnanbadshah3425 3 года назад
THA BEST VIDEO EVA!!!
@abdelrhmanhashem3256
@abdelrhmanhashem3256 2 года назад
thank you bro, that was informative.
@innovationscode9909
@innovationscode9909 3 года назад
In C#, Abstract Class doesn't hide implementation details but define, specify and mandate what must be implemented. I would have expected just defining a function, then calling it as an example of abstraction. In Js land, For example, importing a module, and calling it's function is an example of abstraction, as it has hidden all the implementation details...hence functional abstraction.
@KImtOs
@KImtOs 3 года назад
one of the best videos, so far
@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.
@richardkirigaya8254
@richardkirigaya8254 3 года назад
This is pure gold...
@rondamon4408
@rondamon4408 3 года назад
Very ephemeral. Good to see your idempotence.
@cheaterman49
@cheaterman49 3 года назад
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 :-)
@menjolno
@menjolno 2 года назад
Ephemeral being used in programming seems like jargon
@matteogheza
@matteogheza 3 года назад
Nobody: Programmers in Sci-FI films: 0:00
@manu.g91
@manu.g91 3 года назад
Can you make a video on all the customisation you have made on VSCode. Your vs looks great!!!
@sssrigoku
@sssrigoku 3 года назад
Not a single video from Fireship is a waste of time.... 👌✌️🔥🔥🔥
@piotrszewczyk9749
@piotrszewczyk9749 3 года назад
//so to summarize: (topic: any) => { myBrain.memo( Jeff.serialize(topic, fancyFishAbstraction), { idempotent: true }) return !isEphermal(topic) } // console.log(true)
@Fizzfaldt
@Fizzfaldt 2 года назад
Wish you (at least in the description) mentioned which of the buzzwords in the intro were fake (at time of recording to best of your knowledge). When you recognize most of them as actual terms... and at least one of them from the mindbogglingly amazing deadpan joke jargon video... you wonder if the ones you don't recognize are real ... also from the joke video.. or from elsewhere
@lucio8794
@lucio8794 3 года назад
Great video, very useful and well explained, I'm just waiting for one where you explain technospeak
@gabrielcoelho1623
@gabrielcoelho1623 3 года назад
I've never been this early! Great content
@dadestor
@dadestor 3 года назад
hello in your python example of json should use quotes and you cannot use single quotes with json
@JamesFreeman
@JamesFreeman Год назад
Functionality hidden deeply in the inheritance chain is a major weakness of c# I'm sad it is now dead simple to do this in js
@krtirtho
@krtirtho 3 года назад
There should be a """"dedicated keyboard shortcut for LIKE Button in Fireship YT channel"""". I'm tired liking each of the video of Fireship with a mouse and its so frustrating.
@arkie87
@arkie87 Год назад
the missile knows where it is at all times. it knows where it is because it knows where it isnt.
@SkamanSamTyler
@SkamanSamTyler 3 года назад
Memo, the short message, is short for memorandum.
@MidniteSon
@MidniteSon 2 года назад
Should add "Parse" to this list
@Exilum
@Exilum 2 года назад
I didn't know anonymous functions meant the same thing than lambda functions. Turns out than as usual, the hardest part is actually knowing the right terms to use.
@AlexanderSuraphel
@AlexanderSuraphel 2 года назад
Who else would love to see Jeff explain Monads?
@boxy3087
@boxy3087 2 года назад
Do part 2
@alexmozeak838
@alexmozeak838 3 года назад
Please put "yak shaving" in the next one!
@nholanl1952
@nholanl1952 2 года назад
If these things actually were ask in an interview, without using simple language, your better off in a different company anyways. These all are not hard concepts which can be easily explained without using cryptic words (Especially ephemeral and Idempotent).
@SmartWizzard
@SmartWizzard 3 года назад
Awesome video
@lorem2057
@lorem2057 3 года назад
8:00, The variable "dataFromJS" is assigned to a string containing a JavaScript object not Json data? idk if you meant that
@mashbrown8622
@mashbrown8622 3 года назад
Intro guy reminds me of John Lakeman from Amazon's Patriot
@Tvde1
@Tvde1 2 года назад
why should PUTs be idempotent? Don't you usually save the last modified date?
@gosnooky
@gosnooky 3 года назад
Where can I get a flooglecrank? I need one to replace the plubis on my plumbus.
@caseykawamura8718
@caseykawamura8718 Год назад
omg I've been wondering why we have to serialize json for so long...
@robertbuliga2248
@robertbuliga2248 3 года назад
I know is a newbie question but can you explain, please, what ' : animal is Cat' in isCat function declaration means??? I didn't knew that you can type something else there besides the returned TYPE of that function...
@marcombo01
@marcombo01 3 года назад
this is gold!
@julianari8768
@julianari8768 3 года назад
Jeff, where did you learn design?
@hualiang2182
@hualiang2182 3 года назад
if put is Idempotent, why adding value into array is not?
@ElectericSpace
@ElectericSpace 3 года назад
5:50 you just explained dynamic programming in 3 seconds
@princesharzeel8237
@princesharzeel8237 3 года назад
What's the best thing in fireship videos after content? Graphics and BGM
@Nikhil-eg9zc
@Nikhil-eg9zc 3 года назад
cant wait to brag on the interviewer, that will be the first time the interviewee kept the interviewer in confusion and not vice versa
@mightytechno
@mightytechno 3 года назад
Damn cool as always.
@clamhammer2463
@clamhammer2463 2 года назад
I'm surprised you skipped over obfuscation.
@Christobanistan
@Christobanistan Год назад
Canonical - hellp!
Далее
7 Database Paradigms
9:53
Просмотров 1,6 млн
Meni yerga urdingda
00:20
Просмотров 360 тыс.
"Когти льва" Анатолий МАЛЕЦ
53:01
100+ Web Development Things you Should Know
13:18
Просмотров 1,5 млн
Why You Should AVOID Linked Lists
14:12
Просмотров 277 тыс.
The JavaScript Survival Guide
14:47
Просмотров 728 тыс.
I tried 10 code editors
10:28
Просмотров 3 млн
10 regrets of experienced programmers
8:16
Просмотров 1,4 млн
Meet Jeff Delaney: The Mastermind Behind @Fireship
16:02
I built 10 web apps... with 10 different languages
14:23
10 weird algorithms
9:06
Просмотров 1,2 млн