关于C++应用方向和嵌入式系统方向的抉择

首先,向您致敬!我看了很多您的回答,您是一个很热诚而又实事求是的人。
再次,我想向您请教一下,因为您经验丰富,希望能给我指点一二,让我找到我接下来学习的方向。先介绍一下我的基本情况:我10年大学毕业,工作是单片机C语言编程方面的。因为不想一直局限于单片机编程,又想沉下心来学习,13年考了重庆一所学校的研究生,现在做的项目方向是飞控系统,说白了还是玩单片机,因为要在单片机上实现一些算法,需要用C++来实现,所以学了C++,用C++在单片机上编程。现在我想往两个方向发展:
一个是嵌入式系统方向的编程,这个方向基本上用不了C++的什么东西,底层就是用C,应用层一般就是用JAVA。如果我要往这个方向发展,需要学习嵌入式操作系统的东西,而我学的C++感觉没什么用武之地。
还有一个是C++应用方面的方向,如果我走这个方向的话,应该是先把C++的知识弄扎实了,再学习在VS里用MFC来编程。C++在其他方面的应用我不是很清楚有哪些。如果走这个方向是不是应该精通数据结构?
这两个方向都需要耗费大量的时间和精力,离找工作还有一年多,我现在时间有限,只能往一个方向发展。而现在我很迷惑,不知道应该往哪个方向发展,因为两个方向我都比较有兴趣,也都有一些基础。以后找工作我打算就在重庆、成都两地工作,请老师根据您的经验结合行业内的福利待遇和两个方向的发展前景给我指点一下,万分感谢!

您好,您过奖了,多谢。
你说了这么多问题,那我也多说一点吧。
首先,我要提出我和您认识上的一个差别。供您参考
你说的嵌入式编程很少用C++,一般是C配JAVA,这个我不太认同。我接触过一些嵌入式项目,国内的,和日本的,普遍C/C++,除了android项目外,其实比较少见c+Java这种组合。原因有很多,有些存在争议,但大家比较认同的一点是,JAVA的内存回收机制无论在任何地方都是很好的东西,除了在对内存和效率要求极高的嵌入式项目上。原因是JAVA主动释放内存非常复杂且不稳定,部分虚拟机系统可能根本不搭理你释放内存的要求。这样的事情发生在PC上可能只是卡一下,最严重卡死进程。但在嵌入式项目中可能就是灾难。汽车屏幕上可没有进程管理器:)。
(这个问题android手机上也碰到过吧)

所以在高集成化,硬件资源没有PC丰富的嵌入式项目中,C++应用的比JAVA要多。当然也有例外的,比如SONY的BDMV项目中BD-J部分,主要应用就是我们玩的PS3,他的结构是
C -> C++ ->JAVA。但这种相对少。

我在很多场合对人说过,编程语言只是手段。程序员学的是思想。不能说你学C++就对内存自动回收没有概念,也不能说学JAVA就不知道内存用完还是要回收这回事。精通一项了解其他,是很不错的选择。所以,这算对您的回答了吗。

至于您说的数据结构,今天听了个奇葩而优雅的比喻。
客户需求就是买来的菜,萝卜黄瓜西红柿。你不能全扔锅里,你要把他们组织起来,黄瓜切片,肉切块,让后把同一道菜的食材放在一起,黄瓜鸡蛋,白菜炒肉。这就是组织你的数据结构。然后你把它按步骤做熟吃下去,再按步骤分解消化,这就是定义算法的过程。经过一段时间,去厕所一蹲,噗嗤,一个优秀的项目产生了。
如果你的数据结构定义的有问题,巴豆野菠萝配大螃蟹韭菜加冰块,即便你拥有再高明的算法,拉出来也是稀的.......
所以无论使用什么语言,数据结构 都是程序员的必修课。
这样算是回答你的问题了吧。

关于您的行业规划么,嵌入式项目是我的大爱,赚钱,有成就感,人员待遇也好。老生长谈,操作系统,数据结构,算法,是必修课。MFC的项目现在少一些,毕竟WPF是一个很实用又看起来蛮有前途的小东西。不过MFC依然有必须的场合。
即便不做MFC,我也建议你学习他,尽管包括我在内的很多人都骂他命名规则,方法参数有这样那样的不好,但大家必须得承认,这毕竟是微软最精英的厨师和食客,吃了世界上最经典是食材后,拉出来的智慧结晶。

想想他提供了什么样的功能,定义怎样的接口让你使用这些功能。为什么要这么定义,你还有更方便的方法吗,这样的学习,相信会对您有帮助的。来自:求助得到的回答
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-02
哪个兴趣大弄哪个,没什么差别的说。个人以为嵌入式以后也许会好一点。

关于C++应用方向和嵌入式系统方向的抉择
所以在高集成化,硬件资源没有PC丰富的嵌入式项目中,C++应用的比JAVA要多。当然也有例外的,比如SONY的BDMV项目中BD-J部分,主要应用就是我们玩的PS3,他的结构是 C -> C++ ->JAVA。但这种相对少。我在很多场合对人说过,编程语言只是手段。程序员学的是思想。不能说你学C++就对内存自动回收没有...

从长期发展来看,做c++好,还是做嵌入式好呢》
C++是纯软件的方向,嵌入式是要软硬件都懂的。如果说创业呢,这也是两个不同的方向,C++就是做软件的公司了,嵌入式就可能有自己的硬件产品。都是不错的方向,也要看你自己的爱好和选择。如果你没有硬件基础,从头学的话,可也是很累的活。而且,嵌入式又分很多种类,ARM7,ARM9,M0,M3,A8,A9...

选择C++纯软件开发还是嵌入式开发
嵌入式的话。要熟悉硬件原理。一般用汇编+c语言。。C++一般适用于大型软件项目。比如游戏引擎。服务器领域。大规模数据数据方面。。还有你要这些必须熟悉数据结构和算法。。看看数据结构吧。。对你帮助很大。。其实什么说。。编程如果你有爱好。你就会觉得不枯燥。如果没有爱好。你还是转行吧。很累的。。

嵌入式开发是到底学c还是c++好
看你搞嵌入式的方向了,如果硬件底层或驱动什么的,还是C方便些。C++当然也行,但一般还是在嵌入式高层应用,产能高点。我觉得精通C更适合嵌入式。

C++软件开发软件比嵌入式系统开发和单片机编程这几样哪样的前景好些,请...
回答:C++软件开发,是纯软件的。后两者是偏向硬件的。 首先,C++是一种编程语言。这种语言可以做的是:各种windows应用软件开发,包括应用的软件,和游戏软件之类的,以及底层系统软件开发等。C++是一门特别强的语言,如果你精通此语言(指可以对立完成项目)那么恭喜,年薪1w以上很轻松了。 嵌入式系统:现在指...

嵌入式工程师学c还是c++
对于嵌入式工程师而言,掌握C语言是基本要求。它不仅能够满足大多数嵌入式系统的需求,还能提高开发效率。虽然C++提供了更强大的功能和更好的代码组织方式,但在资源受限的嵌入式系统中,它的优势并不明显。因此,大多数嵌入式开发人员更倾向于使用C语言。当然,对于一些特定的应用场景,如需要处理大量数据或...

关于嵌入式,C\/C++,安卓开发。哪个更好发展,哪个待遇好。
嵌入式很有前途的,软硬件都涉及的到的,用到相对底层一些语言,学的话会难一些,刚出来的方向,以后是智能终端时代,这个方向应该会火很长时间吧,就业也会越来越好的,C\/C++一直都很火,今天去面试一家都是C++,不过我对这个语言涉及不深学的不好没啥希望,很多大型软件都用的是C++编写。安卓开发...

学习,C++还是嵌入式Linux
嵌入式Linux:建议基本入门学习一下,面试的时候能说出些东西,不用精通但大致的概念要懂一些,操作系统的知识对于今后的求职和职业发展都会有长远的影响。编程语言:建议要精通一门,C++你已经有一点基础了,但是更重要的是,企业做项目用人依靠的不只是C++编程语言,更倾向于能够理解和独立完成功能模块的...

问下,现在是学嵌入式发展前景好还是C++软件开发好啊,我参加的培训班基础...
你如果不会C语言或者java,是学不了嵌入式的。而且现在市场需求的确是java更加入门,或者说是入门级工资高点,真正底层开发好的,没有几年是学不来的,就跟混经验升级一样。个人的经历是,你要是有兴趣可以看看java,的确懂java的是更好找工作。另外,楼主要是对嵌入式更感兴趣,完全可以在学了语言...

...分为嵌入式软件方向和应用软件方向,想问一下哪个方向好?
首先你的方向还是比较明确的,而这两个方向又有很大的本质区别。你如果个人倾向与编程和应用开发,我比较建议你走纯编程风,也就是做应用或者游戏开发,这比起嵌入式赚钱要来得快多了,但是压力也会比较大。我现在走的路线基本就是编程,偶尔会跟着导师涉及图形学方面的研究,但很多也是通过编程实现的,...

相似回答