C ++技能高于C技能?[关闭]


28

我觉得经常看到的C / C ++并不能真正描述我在简历中的技能。因此,我计划将其分为高级C ++知识和普通C技能。

您认为这会让读者感到困惑吗?她可能会想:“ C是C ++的子集,那么这个人想打电话给我什么?” 好吧,我想告诉的是:我已经完成了几个真实的C ++项目,而纯粹的C项目只是一个业余爱好。您是否同意熟练的C ++程序员不一定是合格的C专家,或者您认为此转换很容易完成?



1
那正是我所做的。这并没有妨碍我找到工作。
马丁·约克

9
很久没有写CV了,但是我总是谈论C和C ++作为两种完全不同的语言。
宫坂丽

2
@ReiMiyasaka-很好,因为它们两种完全不同的语言。二者都被更新,并当C ++是作为除了C.创建从有分歧
Izkata

我认为C / C ++不是同一件事,它们是完全不同的语言,唯一的共同点是名称中的“ C”(更不用说紧密的语法了)
Qchmqs 2011年

Answers:


31

您一口气问了很多问题;让我尝试在隔离他们时回答。我雇用了很多属于这种个人资料类型的人,而且我经常不得不接受很多采访并拒绝人们,因为他们通常对您所提出的问题没有明确的答案。

  1. 精通C或C ++是否足以使您具备其他程序的资格?
    如果你是高年级,实际上没有。例如,如果您在某项核心企业应用程序上进行C ++编程已有6年之久,而现在我正尝试将您置于所有用C语言编写的嵌入式系统中-可能您的编程语法和调试方法都没有问题。但是,如果您需要考虑一个问题,那么您肯定会很混乱。从任何一方到另一种语言都是如此。您只花一种语言的时间越长,越难转换成其他形式!这与您是否可以学习语言的语法无关,但是在使用C,C ++,Java,perl和Python时,您实际上会有所不同。为了解决这个问题-大多数情况下-C ++和Java专家可以互换使用,Perl,PHP和Phython也可以互换使用。C是一个完全不同的品种!

    如果您是一个相对年轻的家伙-您很有可能会很快赶上。

  2. 这是否意味着当我了解C ++而不是C时,我具有更高的技能
    。否,因为在一般情况下,与C ++相比,如果您能够使用C创建完整的产品,则要困难得多。能够熟练掌握共享内存系统故障的人数远远少于能够使用VC ++或类似框架编写体面的GUI程序的人数。

  3. 这是否意味着知道C(或最低级别的编程)是最高成就?
    再没有!这不是矛盾。这次取决于您比较的域。如果您正在研究Linux内核内部的系统编程或非常接近硬件的系统,则C语言的编程能力更为重要。但是,如果您正在编写银行软件或某些业务规则引擎,则C ++通常是自然选择。关键是您的真正优势不是语言的语法,而是解决一类问题的方式,您只能希望掌握生活中的一些类别/领域。如果您要在简历中放一些东西,那才是真正重要的。

  4. 这是否意味着如果仅使用C语言-我不知道面向对象编程?
    一点也不。实际上,我在采访中进行的石蕊测试是要知道是C语言还是C ++,这是一个非常简单的问题-“那么,您可以在C语言中进行面向对象编程吗?” -那个家伙跳了起来,说道-“绝对不!” 他/她是C ++伙伴。关键是,当您真正编写非常复杂的代码(如多媒体代码,多线程系统,协议层堆栈)时,您仍然“像目标代码一样思考”-如果您不好封装两个例程,C编译器不会惩罚您或对象-但是当系统不断扩展而不断被解雇时-我有时会相信-有很多人是在面向对象的时代出生的,通常对于在代码中封装实际上是如何被违反的确切方面非常薄弱充满了类和对象。对不起,我离题了。但是重点是-问题分析和设计技能比单独的编程技能更重要。

这是否意味着我应该适当地运用针对特定领域的知识和设计技能?
绝对可以!


9
+1指出,你可以在C有一个面向对象的设计,并且仍然实现它
乔治

16
@Dipan:在根据年龄做出假设时要小心。一些老家伙也很快“赶上”了。其中一些可能比您运行得快。
凯文·克莱恩

15
我强烈怀疑“ C ++和Java专家可以互换使用”。
fredoverflow

6
我也不同意#2。当您了解C ++时,可以在相对较短的时间内学习C#或Java。但是,如果您知道另外两个中的任何一个,就选择C ++会花费很多时间和精力,并且要求您首先“学习”许多C#或Java所学的知识。
2011年

1
@sbi:我并不是真的在谈论有关C ++或JAVA或C的细节。我不是很想过度概括语言之间的关系。我也不以为人们无法真正适应学习或不学习的东西。唯一的症结在于,不同的语言,无论它们的句法关系如何,其思维方式也不同,这才是要扮演的角色的重要条件。
Dipan Mehta

27

对于真正重要的人,不,不应混淆他们。

对现实世界的C和C ++编程一无所知的任何人都知道,尽管它们具有相似性和悠久的历史,但两者中的生产编程通常不是完全不同的动物。


12

就个人而言,当人们编写“ C / C ++”时,我会感到非常烦恼,因为C和C ++是非常不同的语言。相反,如果我在履历表上看到“ C,C ++”或“ C ++和C”,那将给我留下无限的印象。不幸的是,几乎每个人都写“ C / C ++”,并且通常表示“我知道C ++,但是如果需要的话,我可以做C”。

另外,我对简历没有那么具体。只需列出您所知道的编程语言,就可以从最熟练到最不熟练的顺序列出。那应该使您摆脱HR流行语过滤器的困扰,然后您可以在技术面试中解释自己的优点和缺点。


4
同意 我不会像将C / C ++放在同一个人一样将C / C ++放在我的简历上。

即使我知道C / C ++是不同的语言,我也经常写C / C ++,因为您学习了它们中的任何一个而又不想去看另一种,因此您对这两种语言的知识是不完整的。您必须至少学习OO,才能成为一名优秀的C程序员。C++是学习如何在C中进行OO的自然选择。您不能成为一名优秀的C ++程序员,必须先了解C ++为何继承了原来的方式, C.但是,在简历中,我同意它们应该分开。

1
@OrbWeaver,一个很大的不同是,您通常可以使用一个C程序(只要它不太复杂),将其提供给C ++编译器,然后从中获得可执行文件,而该可执行文件实际上可以完成一个程序。 C编译器会做。您不能将Java程序提供给JavaScript解析器(或相反),也无法从练习中获得任何有用的东西。因此,虽然我同意,C和C ++应有所区别,我的脑海里写作C/C++,并Java/Javascript就好像它们是同一个仍处于两个完全不同的联赛。
的CVn

+1的建议-仅列出您所知道的编程语言,顺序可能是从最熟练到最不熟练。那应该使您通过HR流行语过滤器,
天真

7

不,这应该不会造成混淆,因为尽管C和C ++相似且共享相似的根,但在范例和用法上却有所不同。因此,它应该分开,专业知识也应该分开。另外,我认为您可以将两者分开来提及更具体的专业知识(例如GUI / FLTK或您熟悉的其他库)。


5

我喜欢您的措辞:“我已经完成了几个真实世界的C ++项目,而纯粹的C项目只是一件业余爱好”

所以我只用CV术语:

  • 研究了几种C ++产品
  • 一些使用C的附带项目

最好将数字替换为“几个”和“几个”。不必确切地说,“二十以上”是用于此目的的数字。

“技能级别”描述是正确的,但是“经验”描述是正确清晰的。


3

我同意C和C ++是不同的语言,应在CV中保持分开。即使C(几乎)是C ++的子集,使用C时我通常也具有非常不同的编程风格:设计不同,编码不同,依此类推。我什至会从C ++中删除某些C功能(例如#includes),从而完全放弃向后兼容性:它们只是不同的语言。

所以我的建议是在您的简历中将两种语言分开。


3

简而言之,如果评估您的人倾向于认为“ C是C ++的一个子集”,那么他们已经很困惑了,我相信您对简历中所写内容的解释足以使他们赞叹。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.