|Thomas Delrue on 13 Sep 2017 10:28:06 -0700|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|Re: [PLUG] Why Can't Programmers.. Program?|
On Wednesday, September 13, 2017 10:00:09 AM EDT Rich Freeman wrote: >On Wed, Sep 13, 2017 at 7:47 AM, ronpguilmet <email@example.com> wrote: >> This is not New, but it is new to me. Apparently this is a programming >> interview question to weed out applicants. It's called FizzBuzz. >> >> 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". >> >> https://blog.codinghorror.com/why-cant-programmers-program/ > >Part of me wants to make it slightly more challenging by adding one more >rule: >The program cannot do more than 2 comparisons. > >I'm trying to think of what the most optimized solution overall for >this is. With the risk of sounding pedantic: optimized for what? Cycles (on which silicon exactly, is it x86, ARM, ...?), speed, readability, IoT, the failure rate, power usage, memory usage, pink unicorns...? > The most readable solutions will often involve 3 >comparisons. You could get by with 2, but depending on how you store >the result of one of the comparisons I'm not sure that actually buys >you anything. Optimizing for readability is not a bad thing. Code gets read more often than it gets written. And when it is read, it is important to make sure the reader understands what is happening rather than pulling a couple of fancy tricks just to show off how much you master language X or Y. Plus, compilers are pretty darn clever and can 'undo' a lot of your readability optimization and optimize for speed - even if your code is verbose and sub-optimal because sometimes they can detect your intent(*). (*) I've worked on compilers and interpreters in the past, it's a very interesting space! If you're interested in this, grab a copy of the dragon book to get started!
Description: This is a digitally signed message part.
___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug