<?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/de/tags/fizzbuzz/</link><description>Recent content in FizzBuzz on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 18 Apr 2025 00:58:11 +0900</lastBuildDate><atom:link href="http://kenji.blog/de/tags/fizzbuzz/index.xml" rel="self" type="application/rss+xml"/><item><title>FizzBuzz</title><link>http://kenji.blog/de/p/fizzbuzz/</link><pubDate>Fri, 18 Apr 2025 00:58:11 +0900</pubDate><guid>http://kenji.blog/de/p/fizzbuzz/</guid><description>&lt;img src="http://kenji.blog/p/fizzbuzz/img.png" alt="Featured image of post FizzBuzz" />&lt;h2 id="was-genau-ist-eigentlich-fizzbuzz">Was genau ist eigentlich FizzBuzz?
&lt;/h2>&lt;p>Hallo!&lt;/p>
&lt;p>Heute möchte ich über „FizzBuzz“ schreiben.&lt;/p>
&lt;p>Egal, ob du denkst „Ah, das kenne ich!“, oder ob du sagst „Ich habe davon gehört, es aber nicht wirklich verstanden“, bitte bleib einen Moment bei mir. Es dauert nur wenige Minuten, es zu lesen, und vielleicht denkst du danach: „Das ergibt Sinn.“&lt;/p>
&lt;hr>
&lt;h3 id="stimmt-es-dass-man-als-programmierer-versagt-hat-wenn-man-fizzbuzz-nicht-schreiben-kann">Stimmt es, dass man „als Programmierer versagt hat, wenn man FizzBuzz nicht schreiben kann“?
&lt;/h3>&lt;p>FizzBuzz ist kurz gesagt so etwas.&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>Ja, das ist das berühmte „FizzBuzz-Problem“.&lt;/p>
&lt;p>Man betrachtet nacheinander die Zahlen von 1 bis 100,&lt;br>
wenn es ein Vielfaches von 3 ist, gibt man „Fizz“ aus, wenn es ein Vielfaches von 5 ist, „Buzz“,&lt;br>
wenn es ein Vielfaches von beiden ist, gibt man „FizzBuzz“ aus – es ist wirklich sehr einfach.&lt;/p>
&lt;p>Und dennoch wird es aus irgendeinem Grund oft als „der minimale Test für einen Programmierer“ behandelt. Es taucht in Vorstellungsgesprächen auf, und in den sozialen Medien sieht man Kommentare wie „Jemand, der nicht einmal FizzBuzz schreiben kann&amp;hellip;“.&lt;/p>
&lt;p>Aber Moment mal.&lt;/p>
&lt;p>Können wir wirklich behaupten, dass „FizzBuzz nicht schreiben können = nicht programmieren können“ bedeutet?&lt;/p>
&lt;hr>
&lt;h3 id="es-geht-nicht-um-das-können-sondern-darum-ob-man-den-zustand-dafür-hat">Es geht nicht um das Können, sondern darum, ob man den „Zustand“ dafür hat
&lt;/h3>&lt;p>Es stimmt, dass FizzBuzz das Verständnis von Syntax und grundlegendem logischem Denken erfordert. Daher ist es nachvollziehbar, dass es zur „Überprüfung der Grundlagen“ verwendet wird.&lt;/p>
&lt;p>Aber hier ist der Punkt.&lt;/p>
&lt;p>Wenn die Umgebung anders ist, sind auch die Ergebnisse anders.&lt;/p>
&lt;p>Zum Beispiel,&lt;/p>
&lt;ul>
&lt;li>Wenn man vor einem Interviewer nervös ist, den man gerade erst kennengelernt hat&lt;/li>
&lt;li>Wenn einem plötzlich ein Whiteboard übergeben wird und man keinen Editor zur Hand hat&lt;/li>
&lt;li>Wenn einem nicht sofort einfällt: „Warte, was ist noch mal Modulo?“&lt;/li>
&lt;/ul>
&lt;p>&amp;hellip;Kommt das nicht vor? Wir sind Menschen. Ich denke, das passiert.&lt;/p>
&lt;p>Deshalb glaube ich, dass die Frage, „ob man sich in einen Zustand versetzen kann, in dem man FizzBuzz schreiben kann“, eigentlich viel wichtiger ist, als einfach nur „ob man FizzBuzz schreiben kann“.&lt;/p>
&lt;hr>
&lt;h3 id="die-falle-des-üblichen-ratschlags-einfach-üben-dann-wird-alles-gut">Die Falle des üblichen Ratschlags „Einfach üben, dann wird alles gut“
&lt;/h3>&lt;p>Wenn dieses Thema aufkommt, neigen die Leute oft zu dem Ratschlag: „Dann übe jeden Tag!“.&lt;/p>
&lt;p>Es ist wahr, dass wiederholte Übung dazu führt, dass man es fließend schreiben kann, und das ist an sich eine gute Sache. Aber wenn wir von der Prämisse ausgehen, dass „man disqualifiziert ist, wenn man FizzBuzz nicht schreiben kann“, kann sich das leicht in bloße Angst verwandeln.&lt;/p>
&lt;p>Mit anderen Worten, es neigt dazu, eine Struktur zu schaffen, in der man das Gefühl hat: „Ich habe einen Fehler gemacht = ich bin nutzlos.“&lt;/p>
&lt;p>Zum Beispiel, wenn man an einem Tag verschläft, neigt man dann nicht dazu zu denken: „Ich bin faul&amp;hellip;“? Aber es könnte einfach sein, dass der Körper in diesem Moment erschöpft war.&lt;/p>
&lt;p>Bei FizzBuzz ist es genauso.&lt;/p>
&lt;hr>
&lt;h3 id="abgesehen-davon-ist-fizzbuzz-immer-noch-eine-gute-frage">Abgesehen davon ist FizzBuzz immer noch eine gute Frage
&lt;/h3>&lt;p>Trotzdem ist FizzBuzz nichts Schlechtes.&lt;/p>
&lt;p>Vielmehr denke ich, dass es eine sehr gut durchdachte Frage ist. Die Regeln sind einfach und es lässt sich leicht erweitern. Wenn man es zum Beispiel so ändert, wird das Denken vertieft.&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>Dies ist ein Beispiel dafür, dass „man es auch ohne if-elif-else schreiben kann“. Das ist ziemlich smart, oder?&lt;/p>
&lt;p>Mit anderen Worten, bei FizzBuzz geht es nicht nur darum, „ob man es geschafft hat“, sondern es dient auch als Einstiegspunkt, um zu sehen, „wie man es schreibt“ und „wie viel man versteht“.&lt;/p>
&lt;hr>
&lt;h3 id="zusammenfassend">Zusammenfassend
&lt;/h3>&lt;p>Ich denke, wir sollten der Frage, ob man FizzBuzz programmieren kann oder nicht, zu viel Bedeutung beimessen.&lt;/p>
&lt;p>Selbst wenn man es nicht schreiben konnte, könnte es einfach daran liegen, dass „man sich gerade nicht wohlgefühlt hat“, und oft kann man es später tun, wenn man sorgfältig darüber nachdenkt.&lt;/p>
&lt;p>Keine Eile, lass uns langsam vorankommen.&lt;/p>
&lt;p>Code wird von Menschen geschrieben. Weil wir Menschen sind, vergessen wir manchmal Dinge und sind nervös. Wenn wir das akzeptieren, reicht es meiner Meinung nach aus, wenn wir Stück für Stück vorankommen können.&lt;/p>
&lt;p>Lass uns also auch heute wieder ganz entspannt Code schreiben.&lt;/p></description></item></channel></rss>