是什么让我们成为C编程专家?

时间:2020-03-06 14:26:56  来源:igfitidea点击:

昨天我参加了一个招聘会,一个开发人员问我如何评价我的C语言能力。然后我意识到这是非常武断的,几乎不可能确定,所以我的问题是什么知识使我们成为C语言编程方面的专家?

编辑:或者将是细分?是什么使我们变得良好,体面,精通等。

再次编辑:我一直在寻找像技能列表或者其他一些建设性的措施来判断自己的C语言能力,因为这很难做到。

另一方面,我认为我们不必理解或者能够写出Duff的设备,也无需弄清楚混淆的C竞赛就可以认为自己是专家。

即使我认为自己是专家(不确定我是否会这样做),我也可能永远不会在面试中提出要求。

安德鲁

我认为这个问题的麻烦在于答案是毫无意义的。我看到人们谈论经验,这很好,也看到人们谈论理解语言的复杂性,这很好。但是,如果我正在雇用某人从事我的C项目,并且我有一个神奇的8球可以给我一个(也只有一个)问题的准确答案,我永远不会问:"他们是C吗?专家"。

为什么?

仅仅因为某人是C专家并不意味着他们是一名优秀的软件开发人员。经验和对语言的熟悉程度很好,但是我认为它们都被使某人成为"优秀软件开发人员"的无形,无法量化的属性所打败。我要说的是,"是什么让我们成为C编程专家?"这不是一个有用的问题,因为还有更重要的问题。如果某人是一个优秀的程序员,那么他们会升为高潮。

例如:我们可以是C编程专家,并且对团队感到恐惧。我们可以是C编程专家,并拒绝使用版本控制。我们可以成为C编程专家,而无需知道如何使用C进行任何操作。

这些句子中的"无"子句是同样重要的问题:是什么让我们成为优秀的团队程序员?使用SCM x或者y的最佳方法是什么?我们如何使用C语言来编写客户端/服务器游戏,计费应用程序,Web浏览器,操作系统或者编译器?如果某个候选人告诉我"不,我不是C专家",但给了我其他很好的答案,我会以魔术8球说的是C专家的心跳来聘用他们,但没有他不知道如何将他的代码检查成颠覆性的东西,并且十二年来都没有学过新的语言。

当我们可以编写自己的C编译器时,我们就是C方面的专家。

这不能直接回答问题(对不起),但可以决定如何对自己进行分类。

我不只是"专家"和"笨拙的新手",我更喜欢中世纪行会使用的三级专业知识体系:

学徒

  • 能够为简单的函数指针编写原型
  • 习惯于将指针传递给指针
  • 了解模块,功能,模块范围

旅人

  • 仍然需要RTFM。
  • 掌握其手艺的工具和技术。
  • 需要监督。

掌握

  • 已阅读《 Effin'手册》。
  • 能够胜任他工艺的所有标准工具和技术。
  • 可以独自工作,并可以监督学徒的日常工作。

在招聘会上?没有专家:每个人都是专家。 :)

这个问题的答案确实引起了一些有趣的阅读,似乎我们无法就此处定义专家的内容达成良好的共识。像招聘会这样的更广泛的论坛会有什么希望? :-)

但是我自己放2美分
我认为有两种C专家。

  • 本可以写《埃芬手册》。
  • 正在开发或者采用新的工具和技术。

我会心跳加速,而后者则胜过前者。如果我们有很多由专家编写的代码非常脆弱,以致只能由另一位专家阅读和理解,那么对于所有意图而言,代码都是无法维护的。
这段代码的作者记得表达式中间的类型转换的复杂性,这非常好,但是编写代码以使其完全明确则要好得多。

项目通常会面临足够的技术挑战,而无需增加所有团队成员都必须记住C'99标准。

经常知道答案,不经常犯错误,了解代码背后的概念,了解自己的局限性,当然能够阅读(理解)几乎所有代码并能够更好地编写但由于他去过那儿并知道这样做,所以他深知不打扰他的到来。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

能够写论文/书籍不一定使一个专家成为程序员。它需要大量的努力工作,实践经验以及对各种C库的充分理解。

祝你好运!

列表数量不匹配

列表数量不匹配

列表数量不匹配