Alw*_*mer 16 c# c++ programming-languages
我想知道程序员是否有必要拥有至少1种编程语言的专业知识?
像C#,java,VB.Net等编程语言每年或每两年都会发生变化.程序员是否应该掌握C++,这是一种稳定的语言,很少经历变化?
我是一名C#开发人员,现在使用它大约7年了,我仍然没有掌握它.
编辑我认为我的问题被误解了.我并不反对改变或进化.我喜欢C#,VB,Java等语言提供的新功能和抽象.如果它让程序员的生活更轻松,我一直在等待新的功能.但这一事实也使这些语言很难掌握.他们在不断发展.像C++这样的语言具有缓慢的进化周期.因此,考虑到这种情况,掌握C++是否有帮助?这就是我原来的问题.注意: - 根据以下朋友的答案,我了解语言和框架是表达概念的工具.用不同的编程语言表达概念也许是一个好主意.
小智 69
像C#,java,VB.Net等编程语言每年或每两年都会发生变化.
它们不会"改变"而是会发展.您的知识和经验不会丢失.
程序员是否应该掌握C++,这是一种稳定的语言,很少经历变化?
编程是关于新的和变化的.如果你不喜欢它,可以考虑另一种职业.
我是一名C#开发人员,现在使用它大约7年了,我仍然没有掌握它.
如果你要掌握,生活就会变得无聊,甚至可能毫无意义.也许这不是目标,而是重要的道路?
编辑:阅读您的评论后,我觉得您错误地将.NET类库的数量归因于C#语言本身的复杂性.不要混合它们.C#语言相对简单,很容易"掌握".您提到的char数据类型的有用方法只是.NET库中的辅助方法.它是该平台的资产之一.这是使.NET开发人员如此高效的原因,因为他们不必浪费时间挖掘第三方库来为他们进行基本操作:XML,成像,网络,数据库等等,它们都可以直接从.NET库中获得.当然,它的庞大尺寸可能会吓到你并给人一种无尽的印象.不是!只需使用你需要的东西,剩下的就是.
小智 32
C++在我使用它的过程中发生了巨大的变化,并且随着C++ 0x标准的采用即将发生另一个巨大的变化.如果你不喜欢改变,那你就错了.
至于"掌握",我会说任何声称完全掌握C++各个方面的人可能都在说谎(如果他曾经说过这样的话,就会包括像Stroustrup这样的人).大多数经验丰富的C++程序员都是该语言子集的专家,这对于解决他们感兴趣的特定问题非常有用 - 将他们置于子集之外,他们缺乏知识就会很快显现出来.但是,当然,他们可以同样快速地学习新的东西.
Nor*_*sey 17
我想知道程序员是否有必要拥有至少1种编程语言的专业知识?
超过一个! ACM杰出科学家Kathleen Fisher写了"我们需要不止一个",这解释了为什么理解多种编程语言如此重要.这篇文章范围很广,但它特别提到了C++.
程序员是否应该掌握C++,这是一种稳定的语言,很少经历变化?
不必要. 两点:
C++看起来很稳定,因为它的生命周期较晚,并且在其他语言变得更受欢迎时保持相对稳定.如果你在20世纪90年代工作过,你会认为C++非常不稳定.请参阅Jim Waldo的优秀着作"C++的演变".即使是现在,当C++ 0x标准最终被采用时,C++即将遭受另一次痉挛.
对于任何程序员来说,深入理解具有显式内存管理的语言以及使用位,字节和单词在机器级编程的语言是非常有价值的.为此,C语言更好一些,但C++是一种非常好的机器级编程语言.但是,至少在我看来,重要的是理解如何使用字节,单词和指针进行编程,而不是模板或受保护成员字段等暗角.
对于任何程序员来说,深入了解如何使用泛型编程是非常有价值的.C++模板几乎不合适,因为它(还)不可能独立地对C++模板进行类型检查.更好的模型包括Java泛型,C#泛型和Haskell和ML中的参数多态
几乎不可能掌握像C++这样复杂的东西 - 或者Haskell或Perl或Common Lisp.如果你想完全掌握某些东西,你必须坚持使用像Lua这样非常简单的语言.
我相信一个真正的"主"程序员有一个不同的工具集.她可能专注于一种或多种语言,但总体而言,她将确保涵盖更广泛的基础,而不是深入到细微的细节.
我觉得有用的一些东西:
掌握这些知识将使您成为任何语言的更好的程序员.