Thursday, May 03, 2012

At Codeslingers last night, someone pulled out some coding Katas. For those who don’t know, a Kata is a coding exercise that is designed to practice your programming skills, rather than to solve a particular business problem. I was handed the classic “FizzBuzz” problem. The assignment:

Create a function that will print the integers from 1 to 100 with the following exceptions:

  • If a number is divisible by 3, print the word “Fizz” in place of that number.
  • If a number is divisible by 5, print the word “Buzz” in place of that number.
  • If a number is divisible by both 3 and 5, print the word “FizzBuzz” in place of that number.

The output should look something like the following:


I started with a C# console application because that is the language with which I am most familiar. It was able to finish the following in under 2 minutes. It took me 5 minutes to write the unit tests.

class Program
    static void Main(string[] args)
        for (int i = 1; i < 100; i++)
            var p = FizzBuzz(i);

    protected static string FizzBuzz(int i)
        if (i % 15 == 0)
            return "FizzBuzz";
        if (i % 3 == 0)
            return "Fizz";
        if (i % 5 == 0)
            return "Buzz";
        return i.ToString();

I only occasionally code in JavaScript, so I tackled that language next. Someone recommended using
as an online IDE for writing and sharing JavaScript, so I tried it and liked it. Of course, JavaScript is a dynamic language and one of my big challenges was spelling things correctly without all the help Visual Studio provides when writing in a statically-typed language. In my case, I misspelled the id of a div, which cost me at least 15 minutes. I created the following boilerplate HTML:

        <div id="fizzbuzz"></div>

Then, I used the following JavaScript (plus a bit of jQuery) to output the FizzBuzz results:

for (i = 1; i <= 100; i++) {
    $("#fizzbuzz").append(function() {
        var newLine = i;
        if (i % 3 === 0) {
            newLine = "Fizz";
        if (i % 5 === 0) {
            newLine = "Buzz";
        if (i % 15 === 0) {
            newLine = "FizzBuzz";
        var newDiv = $("<div>").text(newLine);
        return newDiv;

A simple program like this provides a fun way to practice an old language and to learn a new language. Next up, I’ll try this program with F# and Ruby, since I have very little experience with these languages.

Saturday, July 14, 2012 2:46:16 AM (Eastern Standard Time, UTC-05:00)
RobI am not a big fan of behavioral quntisoes unless the person will be in a lead or manager role. For developers, if they do not appear to be arrogant or impersonal at all in the interview, you have a really good chance that behavior will not be an issue.It is surprising how few companies still do not look at existing code from a potential employee. I like the idea of having a code project with a specific deadline, like 2 days from receipt. That gives you an idea of what their code can look like without giving them tons of time to find a decent solution online.
Sunday, July 15, 2012 5:07:15 PM (Eastern Standard Time, UTC-05:00)
y7xVXK , [url=]aokdlgkyxuje[/url], [link=]bvzssnouhbrx[/link],
Monday, July 16, 2012 8:40:11 AM (Eastern Standard Time, UTC-05:00)
FnSZd3 , [url=]fzkxjxefhsls[/url], [link=]finzqwgumcav[/link],
Home page

Comment (Some html is allowed: a@href@title, b, i, strike, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview