到底是精通C还是C++?感觉C++没有自己的定位
RT,我自己是名大三的学生了,对底层语言感兴趣,汇编了解一些,前段时间没什么目标,觉得C++比C要容易学习一些,就朝C++方向跑一了段路,但是现在偶尔关注一些找工作的事,...
RT,我自己是名大三的学生了,对底层语言感兴趣,汇编了解一些,前段时间没什么目标,觉得C++比C要容易学习一些,就朝C++方向跑一了段路,但是现在偶尔关注一些找工作的事,发现一些跟底层接触频繁的工作比如嵌入式开发之类的,基本上都是用C做的,其他的软件工程更是需求JAVA或者C#的多,但是我还是不乏看到很多人选择C++,到底这门语言就业面广不广呢?适合做什么样的开发?还是我应该放弃C++,去适应更加古老的C?
展开
5个回答
展开全部
我个人认为,精通C/C++(至少包括语言设计、语言实现、语言使用和语言历史等方面)是这个星球上的人类个体不可能完成的工作。如果以精通语言为目标,除非是要维护语言实现(例如写编译器)或者是发明新语言或者新的理论,对于软件开发人员而言是不现实的——需要投入极大的精力,而很可能不会有多大产出(因为工作量对于个人而言不现实)。如果只是想找一份好的工作/写出像样的软件产品,那么——第一,不需要精通语言,而是应当尽量恰当地使用语言(特别是对于C++);第二,熟悉业务很重要,甚至比上面一点更重要(话说对于需要以精通语言为目标的工作而言,语言本身就是业务)。
C++的定位是“通用”的程序设计语言。(C可以说是系统程序设计语言。)事实上,C++在各个方面都可以有所作为,不过目前情况下是C++的学习成本比较高,且快速开发上相对于Java/C#等完全没有优势。而且,一些C++程序员受到不良学习环境的影响而不能很好适应软件开发的要求(例如可能自作聪明使用不熟悉的“高级”特性造成隐患),导致管理成本较使用其它语言时高——这也对C++的使用范围有所影响。
对底层“语言”感兴趣,是指对使用语言对表达底层实现的感兴趣?确实,这方面(例如嵌入式)目前而言C比C++的机会更多。稍微具体点,C++较适用于界面、图形程序、游戏(可能配合脚本语言)等同时需要运行期效率和利用面向对象设计方法提升开发效率的场合。而C语言在一般的嵌入式和其它较底层(例如网络通信)的领域(仅强调运行期效率而一般不用面向对象方法,以及一些资源的影响(这些情况下用到的库都是C语言库,尽管C++可以用,毕竟没那么直接))占优势。(上面提到的C++适用的领域同样也可以都用纯C,不过C写OO程序一般而言还是太蛋疼了……)
PS.C++比C要容易学习一些么……
好吧,“C++是C的超集”至少从现在来看是假命题,如果不知道这点的原因,老实说,LZ的C++水平和恐怕和LS几位一样不够合格。
LZ可以看看boost.function之类通用库的源码,如果看得懂的话说明阅读代码这一块应该算基本合格了。然后看看你是否可以独立地实现这样的代码。如果不能,你可能需要再花十倍的时间学习C++,再考虑是否需要以“精通C++”为目标比较现实。如果没有这个时间和精力,可以考虑钻研其它语言。无论是什么语言,只要学得精了,都是有前(钱)途的(尽管语言本身可能没前途)。
====
[原创回答团]
C++的定位是“通用”的程序设计语言。(C可以说是系统程序设计语言。)事实上,C++在各个方面都可以有所作为,不过目前情况下是C++的学习成本比较高,且快速开发上相对于Java/C#等完全没有优势。而且,一些C++程序员受到不良学习环境的影响而不能很好适应软件开发的要求(例如可能自作聪明使用不熟悉的“高级”特性造成隐患),导致管理成本较使用其它语言时高——这也对C++的使用范围有所影响。
对底层“语言”感兴趣,是指对使用语言对表达底层实现的感兴趣?确实,这方面(例如嵌入式)目前而言C比C++的机会更多。稍微具体点,C++较适用于界面、图形程序、游戏(可能配合脚本语言)等同时需要运行期效率和利用面向对象设计方法提升开发效率的场合。而C语言在一般的嵌入式和其它较底层(例如网络通信)的领域(仅强调运行期效率而一般不用面向对象方法,以及一些资源的影响(这些情况下用到的库都是C语言库,尽管C++可以用,毕竟没那么直接))占优势。(上面提到的C++适用的领域同样也可以都用纯C,不过C写OO程序一般而言还是太蛋疼了……)
PS.C++比C要容易学习一些么……
好吧,“C++是C的超集”至少从现在来看是假命题,如果不知道这点的原因,老实说,LZ的C++水平和恐怕和LS几位一样不够合格。
LZ可以看看boost.function之类通用库的源码,如果看得懂的话说明阅读代码这一块应该算基本合格了。然后看看你是否可以独立地实现这样的代码。如果不能,你可能需要再花十倍的时间学习C++,再考虑是否需要以“精通C++”为目标比较现实。如果没有这个时间和精力,可以考虑钻研其它语言。无论是什么语言,只要学得精了,都是有前(钱)途的(尽管语言本身可能没前途)。
====
[原创回答团]
参考资料: 原创
展开全部
一句话,你就不苦恼了。 C++是C的超集。如果说你想精通C++,必然C也非常棒。
关于工作,等你真正工作了你就知道了,没那么严格的分界线,即使是主要用c做开发的,也有可能偶尔用到c++。
所以给你建议,先学好C吧。这才是灵魂。
关于工作,等你真正工作了你就知道了,没那么严格的分界线,即使是主要用c做开发的,也有可能偶尔用到c++。
所以给你建议,先学好C吧。这才是灵魂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言是基础,然后一直就说“学好C++,走遍天下都不怕”,C++的应用面还是很广的,最直接就是做游戏了,多好啊,又能娱乐又能工作赚钱哈哈。但网络那方面的东西还是JAVA和C#,但我觉得只要学好C++和面向对象,上手JAVA和C#还是很容易的。。祝你成功找到目标和理想的工作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c就像地基,c++就是大楼,虽然人们只能看到大楼,但是地基是不能没有的,否则就是楼歪歪,楼垮垮
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++叫带类的c。c++是c的超集。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询