当他们无法看到“The One True Path”之外还有其他一系列语言时,你如何与某人合作?
我的意思是有人没有意识到现代软件专业人员在他的工具箱中有一系列工具。膝跳反应的人,例如,“我们必须这样做是C ++!” “一切都必须用C ++完成!”
让人们了解“并非一切都是钉子”这一事实的最佳方法是什么?我如何介绍他们拥有一个装备精良的工具箱,为手头的工作选择最好的工具?
答案 0 :(得分:5)
只要有充分的理由在C ++中完成,我认为这种单片方法没有任何问题。
当然,优秀的程序员必须在他/她的工具箱中拥有许多不同的工具,但这些工具不需要是一种新语言,它可以简单地用于学习新的编程范例。
尽管我实际上已经体验过,但是学习许多不同的语言并不能让你成为更好的程序员。
找到合适的工作语言也是如此。是的,如果你正在进行并发,你可能需要一种函数式语言而不是面向对象的语言,但是使用另一种编程语言有什么好处呢?
答案 1 :(得分:5)
在一天结束时; “维护”。
如果可以维持而没有不适当的问题,那么辩论可能没有实际意义,可归结为偏好或至少是公司政策/采用的技术。
如果满足,那么争论就变成“能否有效地建立成本效益并且不会导致整合问题?”
除此之外,它只是螺丝刀/建立一个房子论点。
答案 2 :(得分:4)
给他们一个可以在其他语言/技术上轻松完成的任务,并且很难做到他/她为一切建议的语言/技术。
这样他们最终会搜索替代品,因为他们越来越难以使用他们所知道的语言/技术完成任务。
答案 3 :(得分:4)
以身作则,给予他们发挥自己优势的项目,并鼓励他们学习。
如果给他们的任务显然更适合某些其他技术并且他们选择使用效率较低的语言,那么就不要接受这项工作。告诉他们这不是解决问题的合适方法。把它想象成没有什么不同,然后他们选择Cobol来取代shell脚本 - 也许它有效,但是随着时间的推移很难维护,开发需要太长时间,需要昂贵的工具等等。
你还需要仔细研究他们所做的工作,并确定它是否真的很重要,如果用C ++完成的话。例如,如果你有足够的工作人员知道这种语言并且他们在相当长的时间内完成了任务,那有什么危害?另一方面,如果他们选择的语言减慢速度或导致长期维护问题,他们需要注意这一点。
有很多优秀的程序员只熟悉一种语言。这个事实本身不能用来确定他们是否是团队中有价值的成员。我认识的是一个语言不合适的人,如果他们免费工作,我就不会在团队中找到一些。
答案 4 :(得分:2)
不要雇佣他们。
答案 5 :(得分:2)
让他们负责COBOL程序员团队。
答案 6 :(得分:1)
要求他们生成一个输出无限斐波纳契数列的二进制文件。
然后向他们展示它在Haskell中所采用的几行(或1行,具体取决于实现),并且它也可以编译成二进制文件,因此有更好的前进方法。
答案 7 :(得分:1)
我怎样才能介绍他们 装备精良的工具箱,选择 手头工作的最佳工具?
我认为与“一种真正的语言”相反的是“多语言编程”,然后我将引用我的另一个答案:
我实际上怀疑现在任何人都可以用一种语言实现一个项目(即使可能有例外)。最简单的方法是向他们展示特定工具和语言的有用性,然后向他们展示他们已经在使用多个,例如SQL,构建文件,各种XML方言等。
虽然我接受了多语言的观点,但我也相信在许多领域“少即是多”。在语言/工具的数量,学习曲线和整体生产力之间找到平衡点。
挑战在于确定哪些小型语言/工具在您的域中很好地融合在一起,并将生产力和创造力推向新的极限。
答案 8 :(得分:-1)
给他们一把螺丝刀并告诉他们盖房子?