Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

fizzbuzz

Name: Anonymous 2009-12-04 0:39

On occasion you meet a developer who seems like a solid programmer. They know their theory, they know their language. They can have a reasonable conversation about programming. But once it comes down to actually producing code they just don’t seem to be able to do it well.

You would probably think they’re a good developer if you’ld never seen them code. This is why you have to ask people to write code for you if you really want to see how good they are. It doesn’t matter if their CV looks great or they talk a great talk. If they can’t write code well you probably don’t want them on your team.

After a fair bit of trial and error I’ve come to discover that people who struggle to code don’t just struggle on big problems, or even smallish problems (i.e. write a implementation of a linked list). They struggle with tiny problems.

So I set out to develop questions that can identify this kind of developer and came up with a class of questions I call “FizzBuzz Questions” named after a game children often play (or are made to play) in schools in the UK.

In this game a group of children sit around in a group and say each number in sequence, except if the number is a multiple of three (in which case they say “Fizz”) or five (when they say “Buzz”). If a number is a multiple of both three and five they have to say “Fizz-Buzz”.

An example of a Fizz-Buzz question is the following:

[quote]Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”.[/quote]

Most good programmers should be able to write out on paper a program which does this in a under a couple of minutes.

Want to know something scary ? – the majority of comp sci graduates can’t. I’ve also seen self-proclaimed senior programmers take more than 10-15 minutes to write a solution.

I’m not saying these people can’t write good code, but to do so they’ll take a lot longer to ship it. And in a business environment that’s exactly what you don’t want.

This sort of question won’t identify great programmers, but it will identify the weak ones. And that’s definitely a step in the right direction.

Name: Anonymous 2010-01-04 23:16

>>160
You should only include headers, not source files.

Name: Anonymous 2010-01-04 23:46

>>161
Bollocks. Tons of great reasons to use #include to include source files.

Name: Anonymous 2010-01-05 0:25

>>162
your an idiot hes right

Name: Anonymous 2010-01-05 0:26

>>162
Such as:

- templates

That's it. It's at best a workaround for limitations in C++. So many fucking hacks for backwards compatibility with C...

Name: Anonymous 2010-01-05 10:17

>>164
Come to think of it, do you guys believe that if it wasn't Stroustrup's intention to keep backward compatibility with C, would the C++ be any good?

Name: Anonymous 2010-01-05 10:18

>>165
What would C++ be then? Wasn't it created from the start with such intentions?

Name: Anonymous 2010-01-05 11:02

>>165
Of course not. The reason Sepples failed isn't because of backward compatibility. It's because Bjornie Stripstrap is a moron.

Name: Anonymous 2010-01-05 11:10

>>167
Sepples failed
*sigh*

Name: Anonymous 2010-01-05 12:01

>>168
THAT WHAT PRETENTIOUS TEENAGERS ACTUALLY BELIEVE!

Name: Anonymous 2010-01-05 12:31

>>167

The reason Sepples failed isn't because of backward compatibility.
But of course! Actually, that's the reason it's used at all.

And so, history repeats itself.

Name: dasuraga !8GgBtN/zr. 2010-01-05 14:08

what's with people and hating c++? It's syntaxically pretty ugly, but not at all unusable(at least I enjoy using it more than it's "safer" C-likes)

Name: Anonymous 2010-01-05 14:24

>>171
That's because you're either retarded or know no other languages. That's related to the discussion; it's my way of saying, "Have you read your FQA today?"

Name: Anonymous 2010-01-05 14:30

>>172
Yeah let's get back to hating proper /prauge/ style. Hate on FOIC and retarded ass Lispers and Haskallers

Name: Anonymous 2010-01-05 15:13

>>173
dont forget the enterprise

Name: Anonymous 2010-01-05 15:13

Any one of those, even FIOC, is better than Sepples.

Name: Anonymous 2010-01-05 15:15

>>174
dude, startrek is okay

Name: Anonymous 2010-01-05 23:11

fizzBuzz x | mod x 15 == 0 = "FizzBuzz " | mod x 5  == 0 = "Fizz " | mod x 3  == 0 = "Buzz " | otherwise = show x ++ " "
main = print [x | x <- [1..100], x <- fizzBuzz x]

Name: Anonymous 2010-01-06 0:15

EVERYONE, STEP THE FUCK BACK

#include <iostream>
int main()
{
std::cout << 1 << endl;
std::cout << 2 << endl;
std::cout << "Fizz" << endl;
std::cout << 4 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 7 << endl;
std::cout << 8 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
std::cout << 11 << endl;
std::cout << "Fizz" << endl;
std::cout << 13 << endl;
std::cout << 14 << endl;
std::cout << "FizzBuzz";
std::cout << 16 << endl;
std::cout << 17 << endl;
std::cout << "Fizz" << endl;
std::cout << 19 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 22 << endl;
std::cout << 23 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
std::cout << 26 << endl;
std::cout << "Fizz" << endl;
std::cout << 28 << endl;
std::cout << 29 << endl;
std::cout << "FizzBuzz" << endl;
std::cout << 31 << endl;
std::cout << 32 << endl;
std::cout << "Fizz" << endl;
std::cout << 34 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 37 << endl;
std::cout << 38 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
std::cout << 41 << endl;
std::cout << "Fizz" << endl;
std::cout << 43 << endl;
std::cout << 44 << endl;
std::cout << "FizzBuzz" << endl;
std::cout << 46 << endl;
std::cout << 47 << endl;
std::cout << "Fizz" << endl;
std::cout << 49 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 52 << endl;
std::cout << 53 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
std::cout << 56 << endl;
std::cout << "Fizz" << endl;
std::cout << 58 << endl;
std::cout << 59 << endl;
std::cout << "FizzBuzz" << endl;
std::cout << 61 << endl;
std::cout << 62 << endl;
std::cout << "Fizz" << endl;
std::cout << 64 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 67 << endl;
std::cout << 68 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
std::cout << 71 << endl;
std::cout << "Fizz" << endl;
std::cout << 73 << endl;
std::cout << 74 << endl;
std::cout << "FizzBuzz" << endl;
std::cout << 76 << endl;
std::cout << 77 << endl;
std::cout << "Fizz" << endl;
std::cout << 79 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 82 << endl;
std::cout << 83 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
std::cout << 86 << endl;
std::cout << "Fizz" << endl;
std::cout << 88 << endl;
std::cout << 89 << endl;
std::cout << "FizzBuzz" << endl;
std::cout << 91 << endl;
std::cout << 92 << endl;
std::cout << "Fizz" << endl;
std::cout << 94 << endl;
std::cout << "Buzz" << endl;
std::cout << "Fizz" << endl;
std::cout << 97 << endl;
std::cout << 98 << endl;
std::cout << "Fizz" << endl;
std::cout << "Buzz" << endl;
return 0;
}

Name: Anonymous 2010-01-06 0:27

>>177,178
[code] tags, please.

Name: Anonymous 2010-01-06 0:53

#include <iostream>
using std::cout;
using std::endl;

const int max = 100;

template <int val = 1>
struct Buzzer {
  Buzzer() {
    if (val % 15 == 0)
      cout << "fizzbuzz";
    else if (val % 3 == 0)
      cout << "fizz";
    else if (val % 5 == 0)
      cout << "buzz";
    else
      cout << val;
    cout << endl;
    if (val < max)
      Buzzer<val + 1>();
  }
};

template <>
struct Buzzer<max + 1> {};

int main() {
  Buzzer<>();
}


Did you know regular (non-class) functions can't have default template arguments? I didn't. I was also surprised to find that GCC's default template depth is 500.

I fucking hate sepples

Name: Anonymous 2010-01-06 1:06

Whoops, I left in that bogus line if (val < max) which doesn't actually do anything. Doesn't break it though.

Name: Anonymous 2010-01-06 3:06

>>177
What language is that anyway?

Name: Anonymous 2010-01-06 4:09

>>182
haxall

Name: Anonymous 2010-01-06 4:47

>>183
HAX ALL MY ANII

Name: Anonymous 2010-01-06 12:37

>>178

~ % g++ ">>178.cpp"
>>178.cpp: In function ‘int main()’:
>>178.cpp:4: error: ‘endl’ was not declared in this scope

Name: Anonymous 2010-01-06 18:40

This is currently the highest rated thread on Reddit, and the top 2 posts also have over 1000 upvotes each

http://www.reddit.com/r/funny/comments/alwm7/my_9_year_old_cousin_and_i_are_playing_a_game_of/

* Hilarity ensues!

Name: Anonymous 2010-01-06 21:31

>>185
FFFFFUUUUU-
my bad, forgot std::endl on each endl thing. using namespace std is such a bad habit =[


feels bad man

Name: Anonymous 2010-01-06 21:49

>>187
Something wrong with using std::endl;?

Name: Anonymous 2010-01-06 22:45

only a fool would dare give their function a name that conflicts with the standard fucking library

Name: Anonymous 2010-01-07 1:13

>>186
Reddit is down for maintenance.

Name: Anonymous 2010-01-07 1:16

>>190
Occasionally sites will tempporarily go down so the admins can perform kernel updates, moving databases, updating caches, etcetera. The best thing to do is spend time with family and friends.

Name: Anonymous 2010-01-07 1:20

>>191
Hi, been a long time lurker on this board.. but I feel I have to speak out at this moment.
 
Never on The 4Chan Programming board have I seen someone be so horrible and with no provocation, utterly appalling.
 
That was uncalled for and just plain rude.

Name: Anonymous 2010-01-07 14:03

>>190
And nothing of value was lost.

Name: Anonymous 2010-01-07 15:00

>>191
The best thing to do is spend time with family and friends.
spend time with family and friends.

you dont spend much time on /prog/, eh?
the proper answer would have been: programming.

Name: Anonymous 2010-01-08 2:12

>>194
you dont spend much time on /prog/, eh?
the proper answer would have been: anus haxing.

Name: Anonymous 2010-02-22 16:57

>>154
Bump to see if someone can get it in less characters.

Name: Anonymous 2010-02-22 17:06

fizz get

Name: Anonymous 2010-02-22 17:31

buzz set

Name: Anonymous 2010-02-22 17:31

fizzbuzz GET

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List