After a fair bit of trial and error I've discovered 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. An example of a Fizz-Buzz question is the following:
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".
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.
Der Artikel ist interessant und ihr könnt euch mal selbst testen. Wenn ihr in unter 10 Minuten was auf Papier bringt, was bei der Umsetzung lauffähig ist seid ihr kein vollhorst :)
Lösungen bitte mit dem Spoiler-Tag versehen!
15.07.2012, 15:12
Death~
AW: Why Can't Programmers.. Program?
Zitat:
10-15 minutes
Made my day :p
15.07.2012, 15:13
Bonkers
AW: Why Can't Programmers.. Program?
Code:
using System;
namespace FizzBuzz
{
class Program
{
static void Main(string[] args)
{
for (int i = 1; i < 101; i++)
{
if (i % 3 == 0) {
Console.Write("Fizz");
}
if (i % 5 == 0) {
Console.Write("Buzz");
}
if (i % 3 != 0 && i % 5 != 0) {
Console.Write(i);
}
Console.WriteLine("");
}
Console.Read();
}
}
}
Unschönes C#, hat dafür nur 1 Minute gedauert :)
15.07.2012, 15:14
enco
AW: Why Can't Programmers.. Program?
Du hast "FizzBuzz" vergessen, wenn durch 3 und 5 teilbar. So viel zu einer Minute ;)
Edit:\\ Leseschwäche :)
15.07.2012, 15:16
Bonkers
AW: Why Can't Programmers.. Program?
Zitat:
Zitat von enco
Du hast "FizzBuzz" vergessen, wenn durch 3 und 5 teilbar. So viel zu einer Minute ;)
Habe ich nicht. Bei 3 wird "Fizz" geprinted, bei 5 "Buzz" - Zusammen ergibt das "FizzBuzz" als Ausgabe.
15.07.2012, 15:18
Death~
AW: Why Can't Programmers.. Program?
Da fehlt noch ein Console.Writeline(i) vor oder nach den Bedingungen, damit auch die normalen Zahlen geschrieben werden.
Edit: != nicht gesehn, fail ^^
15.07.2012, 15:22
Bonkers
AW: Why Can't Programmers.. Program?
Könnt ihr alle nicht lesen? Mein Code funktioniert genau wie er soll. Normale Zahlen werden auch geschrieben, es gibt auch einen Zeilenumbruch. Erst lesen, dann Maul aufmachen.