随笔 - 268  文章 - 0  评论 - 1028  阅读 - 160万

【水文】也谈求职中的fizz-buzz-thing,兼谈程序员为什么不会编程

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

1
2
3
4
5
6
7
8
9
10
11
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。),我的英语一般,翻译也没有追求信达雅,也许红色的程序员还应该加上引号吧。个人片面总结一下国内的情况,我认为程序员不会编程的重要原因是程序员缺乏实践,当然当前编程教育的问题也不小。还有一种可能,有人说大概是求职者技高一筹自信十足,不屑于面试答题,真牛!

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

posted on   JeffWong  阅读(3770)  评论(12编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2010年11月 >
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4
5 6 7 8 9 10 11

I know how to make it works and I want to know how it works.
点击右上角即可分享
微信分享提示