<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>FizzBuzz on kenji.blog</title><link>http://kenji.blog/en/tags/fizzbuzz/</link><description>Recent content in FizzBuzz on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 18 Apr 2025 00:58:11 +0900</lastBuildDate><atom:link href="http://kenji.blog/en/tags/fizzbuzz/index.xml" rel="self" type="application/rss+xml"/><item><title>FizzBuzz</title><link>http://kenji.blog/en/p/fizzbuzz/</link><pubDate>Fri, 18 Apr 2025 00:58:11 +0900</pubDate><guid>http://kenji.blog/en/p/fizzbuzz/</guid><description>&lt;img src="http://kenji.blog/p/fizzbuzz/img.png" alt="Featured image of post FizzBuzz" />&lt;h2 id="what-exactly-is-fizzbuzz-anyway">What exactly is FizzBuzz, anyway?
&lt;/h2>&lt;p>Hello!&lt;/p>
&lt;p>Today, I&amp;rsquo;d like to write about &amp;ldquo;FizzBuzz&amp;rdquo;.&lt;/p>
&lt;p>Whether you&amp;rsquo;re thinking, &amp;ldquo;Ah, I know that one!&amp;rdquo; or &amp;ldquo;I&amp;rsquo;ve heard of it, but don&amp;rsquo;t really get it,&amp;rdquo; please stick with me for a bit. It takes just a few minutes to read, and you might just have an &amp;ldquo;aha&amp;rdquo; moment.&lt;/p>
&lt;hr>
&lt;h3 id="is-it-true-that-youre-disqualified-as-a-programmer-if-you-cant-write-fizzbuzz">Is it true that &amp;ldquo;you&amp;rsquo;re disqualified as a programmer if you can&amp;rsquo;t write FizzBuzz&amp;rdquo;?
&lt;/h3>&lt;p>Roughly speaking, FizzBuzz looks like this.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;span class="lnt">8
&lt;/span>&lt;span class="lnt">9
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">101&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">15&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;FizzBuzz&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Fizz&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">5&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Buzz&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Yes, this is the famous &amp;ldquo;FizzBuzz problem.&amp;rdquo;&lt;/p>
&lt;p>You go through the numbers from 1 to 100 in order,&lt;br>
if it&amp;rsquo;s a multiple of 3, print &amp;ldquo;Fizz&amp;rdquo;, if it&amp;rsquo;s a multiple of 5, print &amp;ldquo;Buzz&amp;rdquo;,&lt;br>
and if it&amp;rsquo;s a multiple of both, print &amp;ldquo;FizzBuzz.&amp;rdquo; It&amp;rsquo;s extremely simple.&lt;/p>
&lt;p>And yet, for some reason, it&amp;rsquo;s often treated like a &amp;ldquo;minimum test for programmers.&amp;rdquo; It comes up in interviews, and on social media you&amp;rsquo;ll occasionally see people flexing with comments like, &amp;ldquo;If you can&amp;rsquo;t even write FizzBuzz&amp;hellip;&amp;rdquo;&lt;/p>
&lt;p>But wait a minute.&lt;/p>
&lt;p>Can we really definitively say, &amp;ldquo;Couldn&amp;rsquo;t write FizzBuzz = can&amp;rsquo;t program&amp;rdquo;?&lt;/p>
&lt;hr>
&lt;h3 id="its-not-about-whether-you-can-do-it-but-whether-youre-in-a-state-to-do-it">It&amp;rsquo;s not about whether you can do it, but whether you&amp;rsquo;re in a &amp;ldquo;state&amp;rdquo; to do it
&lt;/h3>&lt;p>It&amp;rsquo;s true that FizzBuzz requires an understanding of syntax and basic logical thinking. So it makes sense that it&amp;rsquo;s used to &amp;ldquo;check the basics.&amp;rdquo;&lt;/p>
&lt;p>But, hear me out.&lt;/p>
&lt;p>If the environment is different, the results will be different.&lt;/p>
&lt;p>For example,&lt;/p>
&lt;ul>
&lt;li>When you&amp;rsquo;re nervous in front of an interviewer you&amp;rsquo;ve just met&lt;/li>
&lt;li>When you&amp;rsquo;re suddenly handed a whiteboard and don&amp;rsquo;t have an editor at hand&lt;/li>
&lt;li>When you suddenly draw a blank and think, &amp;ldquo;Wait, what&amp;rsquo;s modulo again?&amp;rdquo;&lt;/li>
&lt;/ul>
&lt;p>&amp;hellip;Doesn&amp;rsquo;t that happen? We&amp;rsquo;re human, after all. I think it does.&lt;/p>
&lt;p>Therefore, rather than &amp;ldquo;whether you can write FizzBuzz,&amp;rdquo; I think what&amp;rsquo;s actually more important is &amp;ldquo;whether you can get yourself into a state where you can write FizzBuzz.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h3 id="the-pitfall-of-the-common-advice-to-just-train-and-youll-be-fine">The pitfall of the common advice to &amp;ldquo;just train and you&amp;rsquo;ll be fine&amp;rdquo;
&lt;/h3>&lt;p>When this topic comes up, the advice &amp;ldquo;so practice every day!&amp;rdquo; tends to appear.&lt;/p>
&lt;p>It&amp;rsquo;s true that repeated practice will enable you to write it smoothly, and that in itself is a good thing. But if you stand on the premise that &amp;ldquo;you&amp;rsquo;re disqualified if you can&amp;rsquo;t write FizzBuzz,&amp;rdquo; it can turn into pure fear.&lt;/p>
&lt;p>In other words, it tends to create a structure where you feel, &amp;ldquo;I made a mistake = I&amp;rsquo;m useless.&amp;rdquo;&lt;/p>
&lt;p>For example, on days when you oversleep, don&amp;rsquo;t you tend to think, &amp;ldquo;I&amp;rsquo;m lazy&amp;hellip;&amp;rdquo;? But it might just be that your body was accidentally tired.&lt;/p>
&lt;p>The same goes for FizzBuzz.&lt;/p>
&lt;hr>
&lt;h3 id="that-being-said-fizzbuzz-is-still-a-good-question">That being said, FizzBuzz is still a good question
&lt;/h3>&lt;p>That being said, there&amp;rsquo;s nothing wrong with FizzBuzz.&lt;/p>
&lt;p>Rather, I think it&amp;rsquo;s a very well-made question. The rules are simple, and it&amp;rsquo;s easy to expand. For example, if you change it like this, it deepens your thinking even more.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">101&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">output&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">3&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">output&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;Fizz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">5&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">output&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;Buzz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">output&lt;/span> &lt;span class="ow">or&lt;/span> &lt;span class="n">i&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>This is an example showing that &amp;ldquo;you don&amp;rsquo;t have to use if-elif-else to write it.&amp;rdquo; It&amp;rsquo;s a bit smart, isn&amp;rsquo;t it?&lt;/p>
&lt;p>In other words, FizzBuzz doesn&amp;rsquo;t just show &amp;ldquo;whether you could do it,&amp;rdquo; but also serves as an entry point to see &amp;ldquo;how you write it&amp;rdquo; and &amp;ldquo;how deeply you understand it.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;h3 id="in-conclusion">In conclusion
&lt;/h3>&lt;p>I don&amp;rsquo;t think you need to attach excessive meaning to whether you can do FizzBuzz or not.&lt;/p>
&lt;p>Even if you couldn&amp;rsquo;t write it, it might simply mean &amp;ldquo;you were just a little off your game,&amp;rdquo; and often you can do it if you think about it carefully later.&lt;/p>
&lt;p>Let&amp;rsquo;s not rush and proceed slowly.&lt;/p>
&lt;p>Code is written by humans. Because we&amp;rsquo;re human, there are times when we forget things or get nervous. I think it&amp;rsquo;s enough if we can accept that and move forward little by little.&lt;/p>
&lt;p>Well then, let&amp;rsquo;s take it easy and write some code today too.&lt;/p></description></item></channel></rss>