FizzBuzz - You Suck at Coding [0]
Ғылым және технология
FizzBuzz, the classic interview question no one probably asks anymore but I'll show you how to solve it anyway with vim and haskell.
#fizzbuzz #vim #haskell
----
Checkout my side projects:
If you're into cooking: www.mysaffronapp.com/
----
Join the Discord: / discord
----
Patreon: / benawad
----
Follow Me Online Here:
Twitter: / benawad
Twitch: / benawad
Medium: / benawad
GitHub: github.com/benawad
Facebook: / benawad97
LinkedIn: / benawad
Instagram: / benawad97
TikTok: / benawad
----
Follow me online: voidpet.com/benawad
#benawad
Пікірлер: 1 100
Imagine an absolute beginner seeing this video
@DanielJStahl
3 жыл бұрын
That's me.
@adnankazi8845
3 жыл бұрын
I have some questions....... actually a lot of questions.......😐
@adnankazi8845
3 жыл бұрын
Did this guy just wrote ans printed everthing instead of using loops and of condition......what the hell....am i stupid or this went over my head
@nnchnl111
3 жыл бұрын
@@adnankazi8845 That was just a VIM flex guide
@adnankazi8845
3 жыл бұрын
@@nnchnl111 ohh thanks man ❣️
I think the interviewer is taking his socks off to make a noose.
@tannerbarcelos6880
3 жыл бұрын
Lmfaoooo.
@stormz2385
3 жыл бұрын
Hahahahaha
@gnack420
3 жыл бұрын
Hahaha so true
@billybonregularjin
3 жыл бұрын
those are some really stretchy socks
@stacklysm
3 жыл бұрын
LMAO
I can't believe I've watched this madman's video until the end.
@dahaj1367
3 жыл бұрын
I wanted to like your comment but then I saw you have 666 like and it's beautiful!
@adminomhfoz1908
2 жыл бұрын
he is class
@avneet12284
2 жыл бұрын
is he really the madman if you watched it till the end? ;) :D
@VHSRarities
2 жыл бұрын
I can't believe his view count dropped ! that only happens when you pay for views! so therefore, he's a scam literally. what a joke !
When the interviewer gets mad you're using macros, just let them know automation is the future and they'll quickly change their minds
@BicheTordue
3 жыл бұрын
Does that append often ? i didn’t think dev would be against macros
@scylk
3 жыл бұрын
@@BicheTordue there's a lot of dev out there against anything they don't know
@mettaursp309
3 жыл бұрын
@@BicheTordue Depends on the language, because the way each language handles them is likely going to be different. In a language like C++, especially modern C++, it's going to be heavily frowned upon for a few reasons: - Macros don't respect namespaces, which means they can overwrite things that you might not want them to. A common counter practice is using uncommon, often ugly naming conventions to reduce chances of name clashes. - Macros do dumb search + replace, which can introduce hidden side effects depending on the structure of the macro. Such side effects include rapid ballooning of code size (think min/max macros), hidden esoteric syntax use that breaks in some situations, doesn't tell you when name clashes happen unless it breaks syntax conformity. - Macros don't restrict the types of syntax use they can hide, so in order to figure out what a certain complex macro can do you often have to substitute it into the code by hand. - Editors like Visual Studio don't handle macros very well. The macro definitions don't get syntax highlighting or intellisense because there is no sensible way to do it. Visual Studio also fails to report errors in the correct places for more complex interconnected macro structures. - Most of the things you can do with macros can also be done with newer modern C++ features. These new features may often be esoteric or ugly, but they don't have any of the draw backs listed above because they have first class support and have been carefully and meticulously combed over and ironed out by a committee. Some of the few remaining things you cannot do with standard C++ syntax to my knowledge are: stringification of code, implicitly capturing types of values up the stack without explicitly initializing it by hand. Here's an example of how the previous macro technique can be used for something like reflection: making a lambda with a macro in a member function and capturing the type of the parent class with 'decltype(*this)', useful for computing member offsets and storing statically #define Bind_Member(member) #member, [] () -> int { decltype(this) base = nullptr; return int(&base->member); } MemberRegistry { Bind_Member(memberName) }; // makes a 'MemberRegistry' instance with initialization list '{ "memberName", memberName offset computing lambda }' In an ideal world standard C++ syntax would be able to do everything that preprocessor macros can. Edit: looking through the comment section more I'm realizing that people are talking more about editor macros. I'd say the first two points still apply a lot depending on how you can twist them. Before you make large, sweeping changes to a code base with automation you should really make sure that you know 100% exactly what it is that you are doing, and everything that can go wrong. It's super easy to nuke a code base by not being careful with automation tools.
@vanjazed7021
3 жыл бұрын
@@mettaursp309 not that kind of macros
@mettaursp309
3 жыл бұрын
@@vanjazed7021 Yep, I threw an edit on my post a while ago that clarified that mistake.
How do I install vim on whiteboard? plz help
@DivjotSingh
3 жыл бұрын
Look for colon e behind the whiteboard.
@tannerbarcelos6880
3 жыл бұрын
npm install vim-whiteboard
3 жыл бұрын
You just write down your keypresses and the internal Vim editor built into the interviewer's head will parse it and create the solution in his head.
@markhaus
3 жыл бұрын
How do I exit the vim whiteboard? I’m trapped
@xlMrJonaIx
3 жыл бұрын
@@markhaus you have to write EscEscEscEsc:q and then the witheboard should dissapear
That prayer should be added to official Haskell liturgy. Well done.
@chizuru1999
3 жыл бұрын
I am assuming liturgy in simple words is docs
@isaackay5887
3 жыл бұрын
I second this motion
@amicloud_yt
3 жыл бұрын
@@chizuru1999 actually it's a religious thing and a lot more complicated...
@KabeloMoiloa
Жыл бұрын
ackshually one pays respect to the computational trinity by saying "in the name of Sigma (1.) , Pi (2.) and Lambda (3.) homoousion amen. " 1. being, Father 2. universal quantification, Son 3. computation, movement, Holy Spirit
"I'm going to write fizzbuzz in haskell" *writers Fizzbuzz in vim.
@dupersuper1000
3 жыл бұрын
Story Feet to be fair he did define a real Haskell function
@BichaelStevens
3 жыл бұрын
@sundaran 1122 He is a sane person and not a virgin* FTFY
@BichaelStevens
3 жыл бұрын
@sundaran 1122 does it freeze and shit itself like vim does especially when in ssh?
@BichaelStevens
3 жыл бұрын
@sundaran 1122 oh yes, my computer, my laptop, company computer, etc. TIL: Vim is more demanding than Battlefront 2 and BF5
@BichaelStevens
3 жыл бұрын
@sundaran 1122 ssh into fresh ubuntu install on digitalocean :) And in my past experiences on a local machine, a computer that can run the latest and greatest and render heavy loads and host several VMs can't run freshly installed Vim. It's almost as if Vim is a heaping pile of trash. And also you'll find that the #1 question about Vim, far far more popular than other questions, is "how do I exit vim?". I pity Vim users like I pity Atom IDE users. Atomheads try to sell me the idea that their bloated pile of dog vomit is efficient and cool. Mmm who doesn't love microstutters every second and minute long executions of code mm. But hey, if it works for you, cool, just don't be religious about it.
since Haskell is such a high level language, it actually compiles your O(n) algorithm to O(1)
@DanCojocaru2000
3 жыл бұрын
Honestly, that makes sense and it's a logical optimization. All the strings in the list are constant, the separator is constant, and the base case for the join function is just one of its parameters. Therefore, there's nothing that can go wrong with evaluating that at compile time. Damn.
@andrewlalis
3 жыл бұрын
@@DanCojocaru2000 but a lot goes wrong before you even get to compile
@igorshauro7633
3 жыл бұрын
It’s just lazy
He really done memorized that prayer 😂
I think the complexity is actually O(human) which is often quite slow, which can be seen in this video.
@oscwavcommentaccount
3 жыл бұрын
Yeah, but when you run the code on a computer the complexity is O(1)
@blasttrash
3 жыл бұрын
@@oscwavcommentaccount but before that human has to write that code :P
@benjaminrood1648
3 жыл бұрын
@@blasttrash The human always has to write the code.
@blasttrash
3 жыл бұрын
@@benjaminrood1648 the human time is negligible. the sorting algorithm that you write might be used by your team. if you package it as npm or gradle or maven etc then it will be used by millions. the puny 1 month of time that you spent is negligible compared to that. Not to mention, there are spiders, crawlers, bots that might visit your website and run your code etc. that adds time up very quickly
@benjaminrood1648
3 жыл бұрын
@@blasttrash lol you cannot be taking this video or my reply seriously
I see that Ben is trying to farm some karma on r/programminghorror.
@Kairos26
3 жыл бұрын
i read that as r/programminghumor
@quintencabo
3 жыл бұрын
@@Kairos26 Me too!
@69bruh
3 жыл бұрын
@@Kairos26 my god i didnt realise it wasnt that till u said it
@game_changer1761
2 жыл бұрын
@@Kairos26 same thing
@VHSRarities
2 жыл бұрын
more like he's farming views from bots. cause I just watched the view count drop. unsubscribed. what a shame. I thought the dude was alright til I noticed he paid for all these views LOL
Not gonna lie, i would be kinda impressed by that in a coding interview
@insertoyouroemail
3 жыл бұрын
Me too. The program contains very little complexity and is easy to adjust with special cases.
@gnack420
3 жыл бұрын
If you're looking for someone who is able to run macros, with repeated mistakes and crashes, then yeah I guess this is the perfect demonstration of that skill.
@LongBoy.0
3 жыл бұрын
Except for all the times he forgets to end the macro. -100 points for that nonsense
@quintencabo
3 жыл бұрын
@@LongBoy.0 He needed to make the video longer then 10 minutes
@anond2015
3 жыл бұрын
@@insertoyouroemail That program is the opposite of "easy to adjust." Want to adjust actual FizzBuzz? Change the argument. Want to change this version? Manually add all the new lines. Reusable code is good code. This is just a goof.
I have nothing else to lose might as well try this for my next interview.
@pocnit
2 жыл бұрын
"Losing all hope was freedom."
@Yas-gs8cm
Жыл бұрын
Did you land a job? xD With this approach? Did you actually try it?
Dan won't notice if we call it "that one framework"
@theenigma1109
3 жыл бұрын
I ❤️ Ng
@tryhardingwithraghu
3 жыл бұрын
Angular. There. I said it
@DoinkertonGreeble
3 жыл бұрын
The framework that must not be named
@PandemicGameplay
3 жыл бұрын
It's amazing how these "software engineers" are so self-biased and arrogant in their views they have to preach to others on how to enjoy humor. Twitter really is a giant echo chamber. Maybe they should spend more time actually writing code than preaching.
@alexmercerind
3 жыл бұрын
Yeah bois
I lost it when he spotlight 100 divided by 5 🤣🤣
My trap card doing too much damage to the interviewer is exactly why I’ve failed all my interviews
@ոakedsquirtle
3 жыл бұрын
totally...
this is at the same level as a guy with a good typing speed just typing the first 100 fizz buzz
Remember... If your array elements touch the side it causes friction which slows down the code and, in the worst cases, can cause the elements to heat up. Most expert coders only ever use the even numbered indices as this prevents the elements from rubbing.
@batatanna
7 ай бұрын
If your array elements touch the side it's gay
Haskell is so high level it doesn't like your array to touch the side here I went into tears XD
For a moment I thought this was going to be a serious video. So I solved the problem myself before watching just to return to this masterpiece.
@SilverishKitten
2 жыл бұрын
That is honestly adorable xD
This kid's hilarious, why are people downvoting him.
@cervixcrusader85
3 жыл бұрын
Because they're probably Angular sheep
@okie9025
3 жыл бұрын
@@cervixcrusader85 says the react sheep 😂
@deusprogrammer_thekingofspace
3 жыл бұрын
The people downvoting him are probably the interviewers.
@deusprogrammer_thekingofspace
3 жыл бұрын
Also, I would use React over Angular any day. And I have used both, and Vue for that matter.
@rubenheymans1988
3 жыл бұрын
because he is using vim? why woul anyone do this. I mean he knows the macro's/shortkeys and he is still slower than using a regular editor
makes a haskell prayer and then goes along using it for printing strings in vim macros
"I'm doing 1000 calculations in my head per second and they're ALL WRONG!"
Did he just say "Bulbasaur" when listing languages? Lol
@IdoWeinst
3 жыл бұрын
Probably referring to this joke: www.reddit.com/r/ProgrammerHumor/comments/6llocd/my_linkedin_profile/
This is that one video that demotivates you so much, you start questioning your career choices. I don't think I will have this level of mastery with 25+ more years experience.
@cholobok
Ай бұрын
Just learn vim for like 1 week and you’re good
The programming hype and meme digs go deep in this one Ben. As a fan of FP and a vim user, you got me good, real good. Salute!
Can we get the story behind your sister being called Fizz Buzz?
@jawad9757
3 жыл бұрын
Please
@lonnybulldozer8426
3 жыл бұрын
It's the sound made while her many lovers pork her simultaneously.
@portlyoldman
3 жыл бұрын
Lonny Bulldozer - I REALLY shouldn’t be laughing this much 🤣
@Instr
Жыл бұрын
"everyone does her as part of a standard coding interview"
"Haskell is so high level that they" insert anything
I wasn't expecting this XD I laughed my socks off
I can’t believe how entertaining and informative that was. Well done!
If I were an interviewer I'd be impressed with those vim skills.
@xarcaz
3 жыл бұрын
I wouldn't call them skills...
@rubixtheslime
3 жыл бұрын
As a heavy vim user, I'd say it was okay at best. A lot of things would've been much simpler if he had just used a :s command. Eg `:13,s/.*/\\&\\\ /` would add all of the backslashes and newline characters he needed
@TheMonk72
3 жыл бұрын
If I was interviewing this guy I would have kicked him out for trying to be cute but a) screwing it up and b) having to use a calculator to divide 100 by 5. And for bonus points, thinking than VIM is impressive. Want to succeed at interviews? Don't be a dick.
@TwskiTV
3 жыл бұрын
@@TheMonk72 and I would kick you out because I can't understand your first sentence
@SaHaRaSquad
3 жыл бұрын
He used 0C instead of cc. And didn't know he can cancel the 322 input with Escape. But then again you just can't know all the Vim features.
I love how you've combined 2 of my favorite things: coding, and You Suck At Cooking. Well done sir
Your interview question videos kill me everytime. I feel like joking about them actually makes them easier to learn.
i just searched for this video 2 years later because it still lives in my nightmares
I love this so much, the purest form of the menacing Vim + Haskell energy I can only hope I'll one day achieve
Oh dude really enjoyed this
„and there’s a lot of good one’s out there, there’s PHP”
@SkylearJ
3 жыл бұрын
PHP is beautiful....... If it had better Windows supp for dev and if it was faster
@devnekoboi7812
3 жыл бұрын
@@vwnb php also has such wonderful features as: - unintuitive function names - parse_str() instead of something along the lines of parse_query(), parse_query_str(), or even just parse_qstr() - inconsistent names among related functions - gettype() vs get_class(), htmlentities() vs html_entity_encode(), etc - ...non-transitive equality (yikes) (a = b and b = c does not always mean that a = c) - ...circular comparison????? (*yikes*) (it is possible for a - and as a side effect of circular comparison, there's the lovely feature that sorting a list with sort() will in some cases, not actually return a sorted list. isn't that fun! _and more_ type safety and decent performance, a good language do not make. php is a trainwreck.
@devnekoboi7812
3 жыл бұрын
@@SkylearJ see my other comment
I was given the fizzbuzz question during an interview for a placement, I think it's a good indication of the person's understanding of programming principles because there's many ways you can complete the challenge
This was very helpful. Thanks for this video!
“Like Wacka Flocka Flame, we are doing this with no hands” 😂😂
This is a video I watch in bed and then accidentally drop the phone onto my face, but I just leave it there. God bless
Great video, educating and entertaining, and more than that, it's in Haskell, would love to see more of Haskell
We learned vim macros are hard
Might hit you hard, but it's still 0(1) 😉your length is always 100. Your algorithm has no inputs. Hence it's still O(1)
@championofwits4621
3 жыл бұрын
Technically it's still 0(n)
@h7x4
3 жыл бұрын
@@championofwits4621 It can't be O(n) when there is no n ¯\_(ツ)_/¯
@mskiptr
3 жыл бұрын
BTW Haskell is SUCH *POWERFUL* programming language that it rewrites the second version to be the first one for you
@championofwits4621
3 жыл бұрын
@@h7x4 behold my power to solve TSP in 0(1) . 1) step one go on chrome find answer for problem 2) step 2 copy 3) step 3 print ()
@mskiptr
3 жыл бұрын
@@scottguest2240 Nah, if the algorith was to traverse s list of 100 elements 100 times it would still be O(1). It is in the very definition of O(f) notation - a class of all functions bounded from above by k*f for some number k, from a certain point to the infinity. If the algorith runs in a constant time (because it's defined with constant input) you can bounded it by e.g. f(t)=1year and no matter the input, it won't exceed this limit.
"...In the name of filter, map, and reduce-Amen" I have laugh out loud in a while, subbed.
Love your humor! ❤️ Keep it up
"...is to show off how smart you are" Haskell couldn't NOT come up 🤣
10 out of 10 highly recommend
This was just a really hard vim flex, LOL. Hilarious.
This was hilarious and you are a legend. Keep up the great work my dude.
Okay this is officially the best video this year, that prayer was gold 🥇
I literally watched the whole thing
😂Bro' this was sooooo funny!! I laughed my ass off! 😂 Awesome video!
thank you for making this video i was having a hella mood swing so I couldn't watch any videos on youtube that would make me too sad and emotional and this was perfect
this is one of my new favorite videos
That One JavaScript Framework. Voldemort of JS Frameworks.
@dpr6516
3 жыл бұрын
? Haskell is not a js framework
The running joke on angular is just too good 😂😂😂
I was expecting to be blown away by some legit amazing code but instead i got a good laugh out of it. Good shit yo.
You got new subscriber with just Vim magic love that part
that prayer was spot on 😂😂
Haven't understood a thing happened here. But still like it 🌟
I decided to do FizzBuzz myself without ever seeing a solution or doing it before, after a couple days of learning C# and I was able to implement it successfully within 15 minutes on my first ever attempt/execution of code. Definitely helped me feel good about my future with software engineering (soon to be student).
This has got to be your greatest video yet
1:18 extremely disappointed you did a Christian cross and not a >>=
Extremely disappointing that you didn't use the list monad instance for join, and wrote a function which would clash if you imported Control.Monad. Unbased :(
@fr3fou
3 жыл бұрын
also could've used $ instead of paren 😔
@welltypedwitch
3 жыл бұрын
Also, he should have really used Text instead of String.
I love this video, good job man.
Your delivery is so good
One more tip is to bring a spare pair of socks and offer them to the interviewer. I like to get custom ones printed with a QR code to my Linked In page.
@eloisezeng
3 жыл бұрын
😂😂😂
coding with macros in the interview will pull your interviewer socks off.
not what I expected, it is much better thank you for making me know how to do those amazing macros in vim now I am starting to know why many love vim
While I acknowledge the wisdom of the vim gods, me being a mortal in VSCode I'd do it like: 1. Ctrl+Shift+End to select to bottom 2. Alt+Shift+i to split cursor into multiline 3. Home to go to start of line and write the character you want \ or " or whatever 4. End to go to end then write the characters you want for example \ or " or , 5. Press esc to go back to normal cursor
@tevoj
3 жыл бұрын
I would open google spread sheet hahahaha generate the numbers and paste to vscode. STONKS
I foresee the interviewer will start to put on their socks right about the time you crash your editor... 😂
This is the most extra thing I have seen in a while.
Haha, thank you for the video, made my day!
"This cursed programing tutorial will trigger you"
memes aside, I appreciate the fact that Ben has actually memorized the Haskell Prayer
0:44 I felt his breathing in my ears on my headphones
I was waiting for the usual Angular roast, but it didn't come. Great video anyways :D
Didn't know Spotlight Search auto-performs math in Calc app. Thx.
@shadowpenguin3482
3 жыл бұрын
I think spotlight can also do it, but he is using Alfred
Ben, why in the world is your sister called FizzBuzz?
@theenigma1109
3 жыл бұрын
😂😂
@worldwide_wes
3 жыл бұрын
She’s divisible by 15
@mindsauce3
2 жыл бұрын
Because she’s easy
You got me at, "Haskell's such a high level language that you.."
😂😂 Okay! You've won 2021! This is brilliant!
This is what engineering means 😁
All of your brackets were unnecessary, the pair in join literally does nothing, and the pair in main should rather be a dollar sign
We need a whole channel dedicated to explain Ben's videos
This is the content that I crave
Wow I never thought anyone would do a Fizz Buzz without logic... until NOW!!! 🤯🔥🎆
THIS is why all devs should learn Vim. Look at how much time Ben saved using vim!
you can use the "unlines" function in the standard library to join an array of strings by newlines btw
This really surprised me and I found it absolutely hilarious 😂 Great job figuring all of that out and lmao O(god)
This is mesmerising
This was incredibly enjoyable.
i just want to say, in vscode you can use alt+ctrl+up/down arrow to select multiple lines. then to add a / in the beginning you click home and the cursor goes to the beginning of the line and add /. then you do the same with end key.
Oh no, Ben has descended into madness from doing too much haskell
@isfland
3 жыл бұрын
No, this is not madness. THIS IS HASKELL 🦵
I subscribed immediately it got to the Haskell prayer. This is gold
This was so LEGENDARY!
Walk into the interview with your flash drive. Upload your collection of programs and utilities that you had previously written. Load them into the appropriate IDE fixing any necessary project settings. For example, let's say you're using C++ and you wrote different versions of FizzBuzz one of them in the form of Meta template programming where it will calculate everything for you at compile-time via templates, the other version was written in terms of Lambdas without using any branching where when this is compiled and depending on your compiler of choice, it optimizes most of the code to give you the smallest assembly footprint in which you can show them by adding that code to Compiler Explorer. This shows them that you were well prepared for the interview and that you know how to use existing codebases and libraries to perform specific and required tasks. If you want to get really creative, try doing it in either Excel, Powerpoint, or both!
Thanks Ben that was great, we'll email you about the job status later in the week.
Came here for FizzBuzz, ended up learning Vim. This deserves an Awa'r'd.
Python FTW: for i in range(1, 100): div_3 = i % 3 == 0 div_5 = i % 5 == 0 if div_3 and div_5: print('FizzBuzz') elif div_3: print('Fizz') elif div_5: print('Buzz') else: print(i)