C# 程序员是否应该精通C++;

C# 程序员是否应该精通C++;,c#,c++,programming-languages,C#,C++,Programming Languages,我想知道程序员是否有必要至少精通一种编程语言 像C#、java、VB.Net等编程语言每一两年都会发生变化。程序员是否应该精通C++,它是一种稳定的语言,很少经历变化?p> 我是一名C#开发人员,使用它已经有7年了,我还没有掌握它 编辑 我想我的问题被误解了。我并不反对改变或进化。我喜欢C#、VB、Java等语言提供的新特性和抽象。我一直在等待新的功能,如果它能让程序员的生活变得轻松的话。但这一事实也使得这种语言很难掌握。它们在不断演变。像C++这样的语言具有缓慢的进化周期。那么,如果给出这种情

我想知道程序员是否有必要至少精通一种编程语言

像C#、java、VB.Net等编程语言每一两年都会发生变化。程序员是否应该精通C++,它是一种稳定的语言,很少经历变化?p> 我是一名C#开发人员,使用它已经有7年了,我还没有掌握它

编辑 我想我的问题被误解了。我并不反对改变或进化。我喜欢C#、VB、Java等语言提供的新特性和抽象。我一直在等待新的功能,如果它能让程序员的生活变得轻松的话。但这一事实也使得这种语言很难掌握。它们在不断演变。像C++这样的语言具有缓慢的进化周期。那么,如果给出这种情况,掌握C++是有帮助的吗?这就是我最初的问题的意思。 注:根据下面朋友的回答,我理解语言和框架是表达概念的工具。用不同的编程语言表达这些概念也是一个好主意

像C#、java、VB.Net等编程语言每一两年都会发生变化

它们不是“改变”,而是进化。你的知识和经验不会丢失

程序员是否应该掌握C++,它是一种稳定的语言,很少经历变化?

编程是关于新的和变化的。如果你不喜欢它,考虑另一个职业。

我是一名C#开发人员,使用它已经有7年了,我还没有掌握它

如果你想掌握,生活会变得无聊,甚至毫无意义。也许重要的不是目标而是道路


编辑:读了你的评论后,我觉得你把.NET类库的数量错误地归因于C#语言本身的复杂性。不要把它们混在一起。C语言相对简单,很容易“掌握”。您提到的
char
数据类型的有用方法只是.NET库中的辅助方法。这是平台的资产之一。这正是.NET开发人员如此高效的原因,因为他们不必花费数小时挖掘第三方库来为他们进行基本操作:XML、图像、网络、数据库等等。所有这些都可以直接从.NET库获得。当然,它的巨大尺寸可能会吓到你,让你觉得它是无穷无尽的。不是!只需使用您需要的,其余的就可以了。

程序员应该具备概念方面的专业知识,这几乎就是全部:)

您是否“精通”英语(或您所说的任何语言)?我说英语已经30多年了,但仍然没有掌握它。在这方面,我看不出英语和C(C++、VB、Javascript……)之间有多大区别
语言不断发展,不断学习,这是你能做的最好的事情。

我认为你是在混合语言和库。虽然您提到的语言确实发生了变化,但它们的变化通常会被类库的变化所掩盖(并且经常伴随着这些变化)


尽管如此,这些语言并没有“不稳定”的地方。他们通过成长而不是移动来“改变”。C++(作为一种语言)在很大程度上保持静态,这既不是好事也不是坏事。

C++在我使用它的时候发生了巨大的变化,并且即将采用C++ 0x标准进行另一个巨大的变化。如果你不喜欢改变,那你就做错事了


至于“精通”,我会说,任何声称完全掌握C++各方面的人,可能是在说谎(包括Stroustrup这样的人,如果他说过这样的话)。大多数有经验的C++程序员都精通语言的一个子集,这对解决他们感兴趣的特定问题很有用——把它们放到子集之外,知识的缺乏很快就显现出来。当然,他们也可以同样快速地学习新知识。

要掌握一些东西实际上需要努力学习。 语言只是一种工具,而不是特权,就像文本编辑器和xml解析器一样。 程序员必须具有强大的独立于语言的知识,可以应用于任何工具和语言来解决问题


有人说编程是一门艺术,艺术是艺术,不管工具和技巧如何使用。

< P>如果你使用C++,那么你就应该知道语言的特征。我曾经是一个非常高级的C++,但是现在我使用了C,然后我必须刷新它。有时候知识太多会造成干扰,所以我不在乎

答案:代码C++每天=是,代码C==NO/P>
很明显,你不可能掌握像那样的东西,除非这就是你正在做的事情,或者至少每一天都是这样,至少对我来说是这样。

我的问题是“掌握”这个词

我怀疑你是否研究了你的一生,你是否能理解任何一个主题的细微差别。
我说英语已经33年了,但有时仍然对它的形式感到茫然。

Java,c#的“问题”在于,你不仅要学习这种语言,还要学习它附带的库。现在,C++,如果我告诉你,你还需要学习ATL和MFC,记住所有这些……这是不可能的,

< p>在我们的宇宙中,一切都在不断地变化。但对“裸机”概念的透彻理解可能是帮助您在不同语言之间交流的最佳支柱

对我来说,这意味着了解c/c++。例如,一旦您能够欣赏到Linux内核的面向对象设计(用C编写),就很容易欣赏到其他语言提供的“捷径”(阅读核心语言特性),以及何时以及如何评估效率

所以,是的,我认为这是一个很好的比较