• 【水文】也谈求职中的fizzbuzzthing,兼谈程序员为什么不会编程


        今晚在首页看到这篇为什么程序员不会编程,文中引用了一段洋文,看着似曾相识。查了一下,洋文所对应的原文不知是不是Jeff Atwood(又一个著名的Jeff)在2007年写的Why can’t programmers…program,反正表达的意思差不多,难怪看着眼熟,尤其是一看到fizz和buzz,我的脑海里立刻浮现出怒发冲冠的恐怖头像。大家可以看一下Jeff的英文原文,很多人用自己擅长的编程语言在评论中给出了解答。在我所能看懂的编程语言中,不外乎利用循环和条件判断,过滤满足特定条件的数字,然后输出,大体上都是这种思路。我看了下lipu_paul文章下的回复,贴c#代码的很多,解决方法依然不外乎上面说到的思路,目前比较简洁的代码(稍作改动):

            static void DoFizzBuzzThing()
            {
                var numbers = Enumerable.Range(1, 100);
                string str = null;
                foreach (var i in numbers)
                {
                    str = i % 3 == 0 ? (i % 5 == 0 ? str = "fizzbuzz" : "fizz") : (i % 5 == 0 ? "buzz" : i.ToString());
                    Console.WriteLine(str);
                }
                Console.ReadKey();
            }

    但是,博文作者lipu_paul和洋文作者Jeff Atwood的原意应该都不是教你如何编程实现fizz-buzz-thing。肯定是感觉“歪楼”严重,在这一篇“the Programmer’s Stairway to Heaven”中,Jeff Atwood再次发文对前一篇做了补充和总结,大家可以一并看一下。

        当然,洋文里Jeff已经差不多讲明白为什么面试一个程序员还需要出这种fizz-buzz-thing题目的原因。“也许在开始面试一个程序员之前没预先看他们的代码是愚蠢的”(Maybe it's foolish to begin interviewing a programmer without looking at their code first。),我的英语一般,翻译也没有追求信达雅,也许红色的程序员还应该加上引号吧。个人片面总结一下国内的情况,我认为程序员不会编程的重要原因是程序员缺乏实践,当然当前编程教育的问题也不小。还有一种可能,有人说大概是求职者技高一筹自信十足,不屑于面试答题,真牛!

        本来这是一个很有意义的讨论,不料刚刚管理员把它从首页撤了下来,而大家还在下面不亦乐乎地贴代码……

  • 相关阅读:
    基于antlr的表达式解析器
    ANTLR语法层的选项及动作
    Understanding ANTLR Grammar Files
    写给Git初学者的7个建议
    Top 8 Diagrams for Understanding Java
    技术面不深入
    一个初级程序员学习新技术的策略
    SoftReference,WeakReference&WeakHashMap
    探索Antlr(Antlr 3.0更新版)
    Five minute introduction to ANTLR 3
  • 原文地址:https://www.cnblogs.com/jeffwongishandsome/p/1874457.html
Copyright © 2020-2023  润新知