大多数程序员是专注于单个堆栈,还是保留其他东西,还是同时精通多种语言?如果不止一个,则标准数量是多少?
对于专家来说,我的意思不仅仅是简单地了解一种语言的语法-专家对标准库,工具,环境和语法的了解足够多,他们能够编写非平凡的程序,而不必不断地查找内容或阅读书籍/教程。
大多数程序员是专注于单个堆栈,还是保留其他东西,还是同时精通多种语言?如果不止一个,则标准数量是多少?
对于专家来说,我的意思不仅仅是简单地了解一种语言的语法-专家对标准库,工具,环境和语法的了解足够多,他们能够编写非平凡的程序,而不必不断地查找内容或阅读书籍/教程。
Answers:
了解多种语言的主要好处不是直接编写它们。在其他所有条件都相同的情况下,我宁愿与一位也了解C,Python和Lisp(例如)的C#程序员一起工作,而不是只用过C#的人。并不是说了解更多的语言会更好,而是能够从多个角度,从多个角度思考问题确实很有帮助。
不改变您对编程的看法的编程语言是不值得知道的。艾伦·佩利斯(Alan Perlis)
这不是要检查另一种语言或将其放入简历中。您只需要充分了解其基本概念即可对其进行编程以获取全部好处。如果对语法有基本了解,您将不会得到这些。
更为直接的答案是“取决于”。
在大型公司中,您会被期望/可以专长,但是正如我上面说的,我认为了解您最喜欢的工具之外的内容仍然会有所帮助。
在较小的地方,您真的无法摆脱它。如果没有别的,您通常需要维护和构建应用程序,并且可能不像实际构建应用程序那样使用相同的语言来运行日志/数据处理。我猜您可以从一种语言上脱身,但是拥有性能良好,强类型(或至少具有断言能力),可能是编译语言的好处会很繁重,而使用脚本语言进行维护/设置/脚本任务似乎很大。当然,我不想没有它。
您有一个非常有趣的问题:
我认为任何程序员都不应该是特定语言的“专家”。我相信,作为程序员,我们注定要成为编程,设计算法,思路清晰的专家,但是编程语言是您刚刚学到的。
我的意思是,一个“优秀”的程序员在处理开发项目时不会害怕经典的“我以前从未使用过”,应该在不到5个工作日内学会一门语言。您主要通过以下两种方式学习最佳实践,工具和库:1:阅读和2:工作。您要么反抗代码,要么阅读一堆书。
在“好程序员只写代码”而不是C#代码,C ++代码或Java代码的前提下,几年后,您会意识到,在学习开发程序之后,语言和技术并不是那么重要。当然,您将比PHP更好地了解C#,但是如果您学得很好,则必须进行Python调试。
希望我的想法像你一样!
我认为这可能取决于您的性格,有些人喜欢深入研究某个主题的角落和缝隙,还有其他一些人喜欢对事物有一个广阔的视野。您可能需要弄清楚自己是哪种类型的人格。我不是把一个人放在另一个之上。
作为前者,您将成为专家,专家或专家。作为后者,您将具有更广泛的用途,并且可以在各种情况下使用,但可能不会深入或深入到某个主题。
这是一个很好的问题,但我认为没有标准。通常,根据我所见,人们在一种环境(Windows / Linux,Mac,Solaris)中是一种高级语言(C ++,Java等)的专家。他们大致了解其他一些高级语言,但没有完全理解。(例如,C ++,Java人之间彼此大致了解)。粗略地讲,他们可以用一种专家的语言和另一种语言来比较一项任务的执行情况。然后,他们对某些脚本语言适度。(例如,Linux人士知道bash,Windows人士知道VBA,Web人士知道PHP)。
对我来说,重要的是基础算法知识而非语言。如果您的基础知识很好,那么用任何一种语言搞乱的机会就更少了。
但是,是的,有时了解哪种语言可能更好地完成任务可能会很有用。例如,以下代码在Pascal中比在C中快得多。
strcat(A,“ Hello”); strcat(A,“ WOrld”); strcat(A,“我打招呼!”);
这是因为Pascal将字符串的长度保存在第一个位置,因此很容易跳转到最后一个位置。在C中,字符串终止为'\ 0',因此实际上您必须遍历整个字符串才能进行strcat操作。