您还未登录!|登录|注册|帮助

  • 首页
  • 业界
  • 移动
  • 云计算
  • 研发
  • 论坛
  • 博客
  • 下载
  • 更多

雪松's RTEMS

学无止境

  • 目录视图
  • 摘要视图
  • 订阅
CSDN客服工作问卷调查 社区专家谈 12306 CSDN社区“海外程序员经验谈”活动正式上线
2012CSDN博客之星火热出炉! 2013年全国百所高校巡讲讲师招募

关于嵌入式的学习和职业发展

分类: 工作随笔 2013-01-20 12:58 7842人阅读 评论(59) 收藏 举报
最近我的工作太忙了。身边朋友问我如何学习嵌入式,在这个行业健康的发展。我一直未能做一个系统的回答。这里我想写篇文章,彻底的回答这个问题。

嵌入式,这是个术语。在我看来,嵌入式系统是:为了应用高度定制软件和硬件的计算机系统,满足一系列的特定应用需求。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。IEEE(国际电气和电子工程师协会)对嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。原文为:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants。(此段来自百度) 从我个人的理解,到普遍的定义,再到IEEE的权威。可以看到,嵌入式系统首先是计算机系统。我们不能忽略这个问题。既然是计算机系统,那么学习嵌入式,计算机的基本理论知识我们要不要学习呢?比如说,编译原理、数据结构、操作系统、离散数学、计算机系统体系结构。个人认为,没学走,就学跑是非常要不得的。很多人意识不到这点。加之国内很多学校没有培养嵌入式的专业,没有相应的人才输出。很多学习嵌入式的人都是从电子类的专业,自动控制类的专业等等转过来的。这个转型也意味着理论上的巨大缺憾。如果要问,排序算法有几种,恐怕只知道冒泡和希尔,不知道堆排序,快速排序,基数链式排序这些算法,更不知道还有内部排序和外部排序之分。查找算法只知道个基本的2分查找。对于树的查找算法一无所知。怎么说呢?也许很多从业的程序员,不乏专业水平相当优秀的,认为这些并不重要。我只能说,你命好,做这种具体的工程大于理论的东西。实际上,如果从一个嵌入式的程序员成长为系统设计者,或者更高的技术职位,要从更深的层次看问题。理论起到了非常大的支撑作用。

比如说,设计一个普通的微波炉控制系统。说实话,这个代码应该是非常简单的。但是,作为精细的设计者,不仅仅要考虑需求是否完成。还用从整个程序的空间杂度、时间杂度上去分析,并降低整个代码的复杂度。从而进一步降低软件结构、算法实现对处理器的要求,达到对成本的节约。一般来说,成本不光光是BOM成本,还包括人力成本,运营成本,开发成本,维护成本等等。任何软件系统都要测试,然而一份代码要怎么才能比较好测试呢?这个问题并不好回答。我这里先卖个关子,回头我在另外一篇文章里详述。尤其是嵌入式代码,测试方法虽然沿用了PC机的一些做法,但是仍然有许多工程限制。做起来难度颇高。马克思说过,一切的节约可归结为时间的节约。代码结构简单,空间杂度小。那么也意味着更小的工程量,更短的测试时间,更稳定的产品质量。如果是个理论性稍微强点的产品,汽车导航系统。地图的路径搜索算法。定位位置的搜索,以及地图的分类加载优化等等,都不是太容易就能做好的。更需要坚实的理论基础。许多刚出学校的大学生朋友们,没出校门就把相关的知识还给老师了。其实,我经常问公司新来的同事,设计算法的思路是什么?这个是从计算机的角度去考虑一个问题的解决办法。很多新人是计算机毕业的都无法完整的回答我的问题,失望之余,更想说的是:经验很重要!但是比经验更重要的是知识,比知识更重要的是方法。在理论的指导下去积累经验。减少从经验下获取知识,减少体验式学习这种状态,养成系统的认识分析问题的方法,理论联系实践的方法,实践检验真理的方法,经验必须能被理论解释的方法。

所以,这第一点建议,就是希望从事嵌入式的朋友能把计算机基础课程全部系统的学习一遍。

我们还是来看嵌入式的定义,这个定义是相对的概念。什么计算机系统不是“高度定制的软硬件计算机系统”呢?PC机。不严谨的说是这样。嵌入式在工程上有非常多的特点,相对于PC系统说,如果把PC系统看成一个完全的标准的“大嵌入式系统”,我们用大鹏鸟来形容它。那么,像“蜂鸟”这样的最小的小鸟,像“麻雀”这样的常见系统。也就不难理解了。从技术上讲,PC系统的知识量,难度都要比一般的嵌入式高出N个数量级。但由于PC系统在计算机历史上发展得比较早。因而,其智力投入、完善性、应用的广泛性重要性是别的系统平台无法比拟的。然而,正因为发展了这么久,其平台的封装性稳定性是非常高的。操作系统级,支撑软件级,应用软件级。特别是应用软件级,一些与平台无关的软件,基本上很少涉及操作系统的知识,以及一些内部的原理。如浏览器里的Javascript开发,基本上不涉及操作系统的知识,只是受不同的浏览器的影响;又如Java,只涉及较少的系统平台的知识;就算是C/C++语言,开发应用程序,也就是一套API的应用。涉及的操作系统的东西也只是冰山一角。由此可见,PC平台的优良封装,极大的简化了问题的复杂度,使开发者和应用者能把主要精力放在自己的业务上,提高开发效率。嵌入式领域就没有这么幸运了。其为应用的高度定制,造成了以效率,应用为优先的特点。封装层次太多必然对效率有所伤害。同时规模变大,测试变得复杂。开发周期变长。所以嵌入式的层次结构相对于PC系统,边界没那么清晰,封装考虑的问题没有那么全面。完成同样的一个工作,需要了解的内容更多,才能做得更好。如果一定要拿嵌入式和PC系统比,个人觉得,PC系统的开发有时候比嵌入式系统还要难。由于封装的比较完善,PC开发的门槛比较低,但是做好,做精通,做全面,比嵌入式难多了。嵌入式因为一开始就要了解相当规模的东西,所以入门的门槛变得比较高。纵观这些东西,其实PC系统和嵌入式系统很大一部分都是重叠的。

所以,第二点,我推荐大家读(俞甲子 / 石凡 / 潘爱民)写得《程序员的自我修养》。这里多说两句,首先,嵌入式只是比PC开发要多了解些东西,本质上来讲并无区别,这些知识当中有一半是与具体工程相关的东西。也就是说,照着流程做,并无太多的为什么,如果硬要问为什么,其实也就是一些工程上的需求。一些嵌入式应用之间可能略有一些区别,可能有些区别还很大,但大致的流程还是相似的。有个比较好的PC开发功底,了解了这些流程,开发嵌入式应该是没什么特别的障碍的。其次,《程序员的自我修养》这本书是针对PC平台的,书中的许多东西是PC平台特有的,比如说动态加载等。但理解动态加载也会对Bootloader加载应用程序和操作系统有一个直观的比较。由于并不是针对嵌入式平台的(我没发现有专门讲嵌入式的书),所以,很多东西需要自己在嵌入式中去体会。另外书中对一些嵌入式中比较在意的问题描述的并不够详细,比如说链接脚本还有ABI。PC平台这些问题被很好的封装起来了。所以,有些问题在嵌入式领域,还需要进一步深挖。这本书作为嵌入式入门的理解是非常合适的。

嵌入式在工程领域最大的问题是软硬件同时成熟,出了问题容易踢皮球。这里就很容想到调试。嵌入式的问题定位较为复杂,尤其是牵涉到软硬件的复杂问题。首先嵌入式的调试手段较为单一。相对于PC平台,稳定性和可靠性都要打折扣。这里不仅包括调试平台的问题,也包括一些调试手段对代码的影响,诸如改变代码的运行时间,改变了代码的动态行为(频度,触发时差等)。做嵌入式对系统更加要有个全面的认识。这里包括从设计方法思路,设计目标要求,硬件的详细设计和软件的详细设计。了解的越深刻对问题的定位越有帮助。这里就涉及到一个最大的问题,也就是刚出校门很多学生对自己的憧憬:要软件硬件都通。 这个目标向大家坦白,我也憧憬过。当我现在招聘学生的时候,甚至有些工作经验的人都说出这个目标。这个目标不是错,只是计算机软件和硬件这两大块都是非常广袤的领域,说通,目标的确有点点高了。所以在这里,我常常给同事的建议是:如果你的专业是电子类的,可以把精力主要的放在硬件上,软件只作为兼顾,学习一些C语言的基本知识,写一些小型代码,不宜把目标放在全职编程上。如果是计算机专业的,我建议把主要精力放在软件上,学会看懂原理图,了解一些电路的大致功能就可以了。两方面往深里面去都是无底洞。全通的话,的确要些大本事的。这里只是我的建议。理由也很简单,人都是经营自己的长处,规避自己的短处。曾经有一个朋友问我嵌入式问题,想成为软硬都通的人。想给自己的职业规划一下,我大致的问他几个软件问题,比如说,算法的设计思路,排序算法的种类,搜索算法的种类,操作系统的本质,互斥多线程等等基本问题,回答毫无头绪。然而问起电路的知识,KCL,KVL,竞争冒险,运放的分析方法,信号与系统的基本知识,对答如流。这种人去主攻软件,是资源的极大的浪费。等你软件入门了,硬件方面的设计知识也忘得差不多了。然后面临事业更上一层楼的压力,软件需要学习的东西比较多,基础理论差,学什么都吃力。硬件方面缺乏调试和经验/的积累,也很难有所作为。若干年后只能做配角,精力的下降,事业上的失意,只能让自己沦为屌丝。

这里又提到项目经理,技术总监这样的技术管理职位,不是说你技术好就可以做这个职位了。首先各个公司这两种职位都是有所区别的,但一般来讲都是偏向管理的。既然是管理,不能用别人管你的时候,你得到的体验再去管别人,要学习管理理论。诸如PMBOK,CMMI,好好看看行业内优秀的工程实践,好好看看项目目标如何对齐。这些理论知识都是指导我们实践的最有效的手段。不要寄希望自己是牛人中的牛人,可以发明新的理论。请大家看看历史,每个行业都有个开山鼻祖,那时候水平还比较低,然后发展一段时间后有一个将这个行业壮大的牛人。这个并不仅仅是因为那个牛人牛,也有因为这个行业积累到一定的时间,可以出这样的一个牛人将这个行业进一步壮大。这是事物发展的客观规律,我们必须要尊重。但在中国,技术人是一类特殊的人群,他们因为技术而傲,对于不懂技术的领导,私下缺乏应有的尊重和诚服。容易造成政令不通。项目经理,总监更应有好的技术,以便得到下属最大的认同。

所以这第三点,要综合自己的专业情况,知识背景,合理的选择自己的职业目标。在嵌入式领域找到自己的发展空间。

最后是一些杂项,我也不分类了。学习嵌入式的方法多种多样。但最好的办法,还是求助于计算机,计算机是自己的第一老师,人都是第二位的。不要指望通过牛人,你就可以变成牛人。学习知识,实际上是自己对知识建立理解的过程,不要第一时间去听大牛的讲解。首先要有自己的理解,即使是错的,我认错。再通过大牛的讲解进一步的学习,纠正调整自己,可以事半功倍。如果没有自己的思考,自己也只是个鹦鹉学舌的人,缺乏创造力和独立面对问题的能力。久而久之是非常可怕的。

不要想通过几个月培训机构的学习,就能像屌丝吃了全能丸,拿到高薪。如果真是这样,这世界里有时间有钱的人多了,他们为什么不能通过这种办法变得更有能力,拿到更高的收入?高薪背后意味着很多内涵和外延,这些内涵和外延不仅仅包括点点知识和技术,还有做事的态度方法,面对问题的坚韧……太多了。一句话,在自己想把自己变得更强,首先寻求的是能力的全方面的提升,不光光是点点技术。所以,面对这种问题一定要踏实。你要求的薪水高,公司对你的期望也高;每个公司都有特殊的东西,那不是一两天就能学会的,也不是技术能替代的。自己把调子提得那么高,要么惨淡收场,要么勉强完成任务;要么惊艳四座。自己看着办。想反,薪水提得不高不低,给自己一点点时间,企业对你的期望低,能做出点成绩,反倒容易让别人刮目相看,利于自己的长期发展。这里还是有许多学问的。自己的人生,一定要谨慎经营。

学习嵌入式一定要勤奋,编程是一种体力+脑力的活。熟能生巧,这是常识。十万行的编程量是基础。写一些复杂的算法,如A*,树等等算法;再写一些计算机图形学方面的算法,以应用软件为目标,把自己的编程量撑到十万行。这样的强度能保证自己对所用的语言有一个非常的熟练程度,也能对计算机的算法设计和数据结构有个深刻的认识,同时对操作系统的API也能略微熟悉。若能坚持这种训练到达三十万行。那么就会更加的优秀。可为进一步的行业发展,打下坚实的基础。

简单的聊聊,欢迎拍砖。谢谢。

分享到:
  • 上一篇:中国和巴基斯坦的关系
  • 下一篇:嵌入式学习推荐大家读得书
49
0

查看评论
45楼 xiaoyaoxiaonizi 27分钟前发表 [回复] [引用] [举报]
不错的文章,学到了很多东西。
44楼 Steven_Liu 2013-02-01 00:09发表 [回复] [引用] [举报]
好!软硬兼通?得看到什么层次,杀死多少脑细胞。
43楼 cpholr 2013-01-31 16:46发表 [回复] [引用] [举报]
现在大三了,我的专业上,硬件和软件都有涉及一点点,叫做“固体电子工程”,主要还是偏向电子材料、芯片级类的。大学前三年,参加各种机器人、智能车、电子设计竞赛类的比赛,拿的奖也不少。在课外学的东西很杂很杂,自己不敢说精通什么。在软件上自己自学过各种语言:asm/C/C++/pascal/C#/VB/MATLAB,因为比赛多为控制系统为主,所以在ARM MCU上面接触的比较多,熟悉的微控制芯片有几十种了,对陌生的芯片可以拿来就写代码,再看看数据手册,就可以移植完大部分自己先前的代码。硬件上面,对于基本的电路分析,焊接什么的还是比较熟悉的,自己投过十几套的PCB了,自己觉得比较完美的有一半吧。
但是,我的缺点也很明显,理论上面不足,但是现在在弄一个持久战的比赛,自己的时间比较少了,比赛结束的时候都大四了。对于嵌入式上面的linux操作系统什么的,接触的还是比较少的,计算机方面并没有系统的学习过,只是断断续续的在各种书籍上学过。
问老师,我适合从事什么样的职业,接着怎么样提高自己,应该怎么样专攻哪一点?

Re: coolbacon 2013-01-31 22:07发表 [回复] [引用] [举报]
回复cpholr:你的经历较为特别,说明你是个非常聪颖好学的人。 虽然你有相当的能力,但成长到一定的时候你也会遇到瓶颈,肯定有许多的感悟。若你想长久的从事嵌入式行业,我仍强烈建议你好好学习一下计算机基础课程。工作了你可以花两年的时间多多的看看,转转,选个不错的行业,慢慢留下发展,相应会有个很好的前途。
42楼 jueaoyuanming 2013-01-30 20:08发表 [回复] [引用] [举报]
我是自动化专业的,要毕业了,刚选了毕业设计就是嵌入式的软件开发,因为没有学过,正一头雾水呢,听君一席话,不能说胜读十年书,但是给我指了一个明确的方向,对我帮助也是非常大的,感谢指导。
41楼 独舞风 2013-01-30 19:13发表 [回复] [引用] [举报]
很不错,值得分享!作为一个嵌入式软件开发人员,对您的分析确实有深刻的体会。基础很重要,方法很重要,建立一个稳定成熟的而又不断完善的知识体系更重要。
40楼 hcamwdn 2013-01-30 17:34发表 [回复] [引用] [举报]
嵌入式行业是一个很难用一句话解释的,主要是具有很强的行业性,但要学好的话确实需要很强的基础理论,没得几年的经验积累,基本上很难有出头之日,
注:得靠自己不断的动手去实践,这样才能进步
39楼 pwx5533 2013-01-30 14:12发表 [回复] [引用] [举报]
来晚了,LZ写得很有道理。
经营自己的长处,规避自己的短处。学计算机的对算法和编程都有个系统的了解,学电子的对电路原理上手也就快。
38楼 wh6469 2013-01-28 22:02发表 [回复] [引用] [举报]
我大学是学电子的,后来培训学习过嵌入式开发。但是当我走完之后,我竟然不知道从哪里开始了。知道了许多许多东西,但是无一精通。现在在做安卓的应用开发,原先java接触少,所以不是很懂,只能自学。当在现在时,我发现自己走了很多的弯路,看到了许多风景,让我模糊了方向,但却多了许多的选择。我想慢慢的走通整个嵌入式,应为我还年轻,遇到问题可以去解决,解决了就是收获,当我而立之时,必将站在一定的高度时,或驻足,或攀爬。要坚信自己能做好一切。关键是兴趣。
37楼 kimcom 2013-01-28 16:58发表 [回复] [引用] [举报]
那些排序什么树,基本算法都是公开的,抄来就是了.
CMM,PM这些东西,只见文档流程,不见人,会很麻烦滴。
关键应该其它地方,作者没说到。但具体在哪里,俺也不知道,呵呵。

Re: coolbacon 2013-01-28 18:02发表 [回复] [引用] [举报]
回复kimcom:以前我老是要求我,闭上书,不看网页,在5分钟或10分钟内写完一个算法。比如说,二叉树排序,图的搜索算法等等。这种死记硬背的方式被现在很多人看不起,我曾今也看不起。不过,好多灵感的源泉,毕竟熟悉了,了解了,才能继承;有了继承才能升华发展。

Re: Linuxtinybird 2013-01-28 20:05发表 [回复] [引用] [举报]
回复coolbacon:这样啊,我豁然开朗了……
36楼 土官 2013-01-28 13:12发表 [回复] [引用] [举报]
硬软不分家,我就是一个学电子信息专业的人做嵌入式的,嵌入式工作上能把我很多硬件方面的知识应用上去。不过,一般情况下一个项目的大致框架确定后,就是按需求在那里写代码实现功能,其他啥都不用管了。
35楼 dasheng0005 2013-01-27 22:17发表 [回复] [引用] [举报]
老实说:软件硬件兼通实在是很耗精力。
软件:至少3年混成架构师(这已经是大牛了),一般人优秀的人至少需要5年。
硬件:耗时更久,混成硬件部总工至少8年。
把两者糅合起来又得耗费很多时间,所以想把两者都学通了至少10年时间。除了你对技术又极度的偏执的话。极少很少有人能做做到这一步的。
34楼 dasheng0005 2013-01-27 22:09发表 [回复] [引用] [举报]
不赞同LZ的观点,软件硬件其实可以都通的。
给我们做技术支持的一位牛人,就是软件硬件都懂,定位问题也精准。不过,软硬都懂确实很耗精力,需要天时地利人和。
要有这样的培养环境(一般公司不给这样的机会,公司喜获流水化作业),和自身的不断的努力,才可能达到这样的水平,
只有这样才能从产品的角度理解问题。
比如说:我们公司以前的技术总监就是硬件软件兼通,(清华大学的教师,90年代初下海的)。
再比如,我以前公司的老板也是软件兼通的。再再比如说:
现在给我们公司做体感遥控器的哥么(他们公司就3人),本科研究生都再复旦读的,到外企混了两年,自己开公司的,他也是软件硬件兼通,给我们的一套方案也是从硬件到软件的。
兄弟,多接触点人吧。天外有天人外有人。

Re: coolbacon 2013-01-27 22:57发表 [回复] [引用] [举报]
回复dasheng0005:呵呵,忘了问了,不知道您是做什么行业的。这和行业也有点关系,文章里也忘了说了。如果是做一些数字硬件为主的东西,做到软硬都通相对来讲比较简单。比如说,做一些网络通讯设备,一些消费类电子 。如果是复杂的,诸如一些大型的系统化电子设备,里面有数字电子、电力电子,还有以运放为主的模拟电路,嵌入式软件和硬件以及复杂的PC软件。我所在的公司现在就做这个东西。很缺这样的人才。如果您有推荐,我们高薪聘请。不胜感激。
Re: coolbacon 2013-01-27 22:36发表 [回复] [引用] [举报]
回复dasheng0005:谢谢您的提点。可能我描述的不太准确。我所说的是软硬件都通,是指得有硬件和软件都有相当的设计能力。这个还是比较难的。我在文章里也说了,的确需要点大本事。如果只是定位问题准确,:-),其实做一个行业久了,理论扎实一些,都可以做到的。耳濡目染,都可以说一些的。但是做到有相当的设计能力,这个就像您说的一样,"需要天时地利人和"。
33楼 tyzhang1_08 2013-01-27 17:31发表 [回复] [引用] [举报]
雪松老师,我对我的职业生涯有点疑问,我是刚刚毕业的学生,专业是电子信息工程,在学校里面理论知识不是太好,每个科目都是使劲复习了才勉强过的。硬件方向我的模电不是很好,数电勉强,软件方向C用的比较熟,8086汇编也看了两遍,对单片机很熟,FPGA接触过。毕业后去了培训,培训了3个月的linux嵌入式,接触了点数据结构和操作系统等东西。现在工作是暂时从事C程序员。我对硬件的能力水平是能够画原理图做仿真,自己焊接和插接模块没有问题,对信号系统和模电数电认识比较浅,并且没有画过板子。软件的话,最开始是C51单片机,后来用MSP430的串口用的很熟,然后工作的时候闲下来玩arduino,用过的模块比较有难度的就是气压传感器和433MHz模块了,培训的时候走了遍内核编译和arm平台编程,对linux也还熟悉。
那么我的定位定在:
硬件上能看懂芯片手册,能看懂原理图,能自己拼接模块;然后把精力放在嵌入式软件的方向 这样的定位可以么?
现在我的工作是华三通信的外包程序员,这种类型的工作我觉得不太合适长期发展,我工作一两年后应该换么?
工作半个月了,刚开始适应工作,现在晚上有精力做点arduino和linux互连的东西,对自己的未来还是很有信心的。
万分感谢雪松老师~

Re: coolbacon 2013-01-27 21:55发表 [回复] [引用] [举报]
回复tyzhang1_08:谢谢你的信任,首先我不是老师。很多时候无所谓适合不适合。更多的时候是坚持。对于你的情况,做嵌入式挺好的。嵌入式代码会越来越复杂,还是要侧重编程技能的提高。
32楼 阿克巴尔 2013-01-27 15:28发表 [回复] [引用] [举报]
???????????
31楼 ilotuo 2013-01-26 21:43发表 [回复] [引用] [举报]
另外老师能不能简单地介绍下一个嵌入式设计团队中每个人的具体分工??
其实学生对所学的东西如何应用到公司里的具体操作还是很好奇的。

Re: coolbacon 2013-01-27 09:58发表 [回复] [引用] [举报]
回复ilotuo::-),这个取决于你的项目。我也不便多说,CMMI,敏捷,还有一些项目经理的培训书籍都有非常细节的讨论。希望会对你有帮助。
30楼 ilotuo 2013-01-26 21:03发表 [回复] [引用] [举报]
楼主所讲的真的对我一个大一新生收益很大。解决了困惑已久的一些疑问。
老师不妨再说下如何衡量自己适合软件还是硬件设计?或者客观来说哪个比较简单?
我觉得自己的脑子比较笨,对算法这种高深的东西比较畏惧。所以上学期先学了些单片机和模电知识,如今模电刚好看到一半,才深深觉得同样是非常深奥的东西。
还有我对所谓的硬件设计工作还有点模糊。在嵌入式系统中,硬件设计是否就是学会各种ic的运用,挑选合适的元件,画画电路图?
其实我并不指望自己能成为大牛,我觉得我将来最理想的状态就是可以养活自己的前提下写写小软件或者偶尔做个小发明做个diy。
那么老师认为在学校里面最应该打好基础的是哪些课程呢?

Re: coolbacon 2013-01-27 10:01发表 [回复] [引用] [举报]
回复ilotuo:很多人认为有天赋,就适合什么。关键是如何发现天赋。我的想法是,你喜欢什么?你可以把这变成你的原动力。要把自己的天赋变成,学什么新东西都是那么的快。这不是更好?其实都是自己培养自己的。一般计算机专业的学生我推荐他们偏软;电子工程系等学生我推荐偏硬,毕竟花时间系统学的知识还是非常体系化的。对自己的成长有好处。
29楼 Linuxtinybird 2013-01-26 12:29发表 [回复] [引用] [举报]
雪松老师说的很对!老师您也问过我这几个问题,我软件方面基础确实很差,很差很差!从和您那次聊天后我就一直在努力补自己基础上的不足

Re: coolbacon 2013-01-27 10:03发表 [回复] [引用] [举报]
回复Linuxtinybird:感谢你对我的认可,基础多努力;等到你成长为企业的顶梁柱的时候,你会发现你根本没有成片的时间去学习,只能是见缝插针。或者换句话说,就是吃老本大于学新东西。个人的基本素质更加重要。
28楼 wesley 2013-01-25 15:39发表 [回复] [引用] [举报]
写得很好的文章,受教了。
27楼 Cs1275 2013-01-25 10:09发表 [回复] [引用] [举报]
"经验很重要!但是比经验更重要的是知识,比知识更重要的是方法。在理论的指导下去积累经验。减少从经验下获取知识,减少体验式学习这种状态,养成系统的认识分析问题的方法,理论联系实践的方法,实践检验真理的方法,经验必须能被理论解释的方法。"
受教了...
26楼 Saint_joy 2013-01-24 12:37发表 [回复] [引用] [举报]
受教了 但总觉得看到的时候有点晚了
25楼 摇滚海盗dj 2013-01-24 11:41发表 [回复] [引用] [举报]
学习一下!啊哈哈哈,楼主强人啊,半路出家的来膜拜一个!
24楼 liang890319 2013-01-24 11:27发表 [回复] [引用] [举报]
楼主讲的很好啊 我也算做了三年嵌入式 最近突然不知道嵌入式是什么了 做嵌入式的意义究竟何在呢?只是为了定制产品吗?能创造什么价值呢? 楼主指点指点啊

Re: coolbacon 2013-01-27 10:06发表 [回复] [引用] [举报]
回复liang890319::-),嵌入式是为了稳定,可靠,还有成本的节约。马克思说过,一切的节约可以归结为时间的节约。 实际上嵌入式节约了很多很多的时间。 而时间可以换成很多的钱。
23楼 QQxuewen 2013-01-23 21:22发表 [回复] [引用] [举报]
写的挺好,支持,从理论到实践都有挺好的指导作用,
22楼 vevenlcf 2013-01-23 15:28发表 [回复] [引用] [举报]
大才
21楼 quan 2013-01-23 13:08发表 [回复] [引用] [举报]
很实用
20楼 hulidong971 2013-01-23 12:55发表 [回复] [引用] [举报]
写的很好,很真实!
19楼 pishuli 2013-01-23 12:26发表 [回复] [引用] [举报]
许工,给力呀,小弟受教了
18楼 pishuli 2013-01-23 12:25发表 [回复] [引用] [举报]
许工给力呀,小弟受教了,哈哈
17楼 ivan_ 2013-01-23 12:19发表 [回复] [引用] [举报]
哎,本人在深圳高嵌入式的,代码基本上都是抄的或者使用开源的,能正常工作即可。这就是中国IT的现状吗?特别是在烦躁的深圳这边。

Re: coolbacon 2013-01-27 10:17发表 [回复] [引用] [举报]
回复ivan_:中小企业的现状的确是这样的。第一,开源的可以极大的节省开发时间,缩短项目的成熟的时间;第二,一些企业的开发能力不足,无法开发一个完整的项目。
个人觉得分两面看,一方面,的确会带来一种浮躁的风气;另一方面,这也是一种合理的开发方法,但不意味着,能用就行。应该在这种拿来主义上建立好一套好的工程实践方法,提高拿来主义等等各方面的水平。比如说,拿来目标的选择,如何快速的吸收,怎么测试,怎么更改相关的设计等等。
16楼 nomoment 2013-01-23 10:47发表 [回复] [引用] [举报]
领悟了,什么路都不好走,哪一行都不容易。最重要的是你的素养。大家加油!
15楼 linyilong3 2013-01-23 03:25发表 [回复] [引用] [举报]
后面该看什么书了呢??我是搞软件的,想了解下嵌入式开发这方面的,你说的我基本都有达到,除了复杂的算法,请问要看什么书才能做出东西

Re: coolbacon 2013-01-23 11:52发表 [回复] [引用] [举报]
回复linyilong3:写了篇文章,您看看,欢迎与我后面怎么学习的问题,谢谢。
http://blog.csdn.net/coolbacon/article/details/8533219

Re: linyilong3 2013-01-23 20:55发表 [回复] [引用] [举报]
回复coolbacon:谢谢
14楼 jy02326166 2013-01-22 23:55发表 [回复] [引用] [举报]
很好~
13楼 sz_qin 2013-01-22 19:25发表 [回复] [引用] [举报]
晚上没事,逛一下csdn,看到你的博客了,写的非常好,还在neware码?

毛泽民他们还在公司吗?好久没有联系了!

12楼 M_O_Bz 2013-01-22 00:39发表 [回复] [引用] [举报]
看了后觉得就是一句话,靠自己。

Re: coolbacon 2013-01-22 08:32发表 [回复] [引用] [举报]
回复M_O_Bz:你总结的这句话,比我总结的还简炼。内因的确需要通过外因起作用。不过,没有内因,外因再多,再牛,也只是白搭。这就是别人常说的机会总是留给有准备的人。

靠自己,不是简简单单的闷头做,不去问别人。

11楼 jeakeven 2013-01-21 21:08发表 [回复] [引用] [举报]
不错,顶一个
10楼 sinvoca 2013-01-21 17:15发表 [回复] [引用] [举报]
好文章
9楼 jorya_txj 2013-01-21 17:09发表 [回复] [引用] [举报]
通过几个月培训机构的学习,拿到高薪是不太可能,但是对于广大学生经历4个月的学习踏入嵌入式软件门槛,,找到一份相关的工作是可行的。
8楼 通过socket了解世界 2013-01-21 11:17发表 [回复] [引用] [举报]
有点指点迷津的味道
7楼 yuzaipiaofei 2013-01-21 10:41发表 [回复] [引用] [举报]
比我看的高,看得远.
受教了
6楼 墨言 2013-01-21 00:42发表 [回复] [引用] [举报]
不错,终于知道为啥水平提不高了
5楼 nashouat 2013-01-20 23:44发表 [回复] [引用] [举报]
很好的文章
4楼 Wentasy 2013-01-20 17:47发表 [回复] [引用] [举报]
好文章!虽然我不搞嵌入式,但文中提到的几点建议很受用。顶!
3楼 也舞风雨 2013-01-20 14:46发表 [回复] [引用] [举报]
受教
2楼 zhulei198907 2013-01-20 14:42发表 [回复] [引用] [举报]
说的很好!我现在大四,在一家培训机构培训,原先也不过是为了更好就业,好的钱景才去的,现在才知道什么是看上去那么简单,做起来难;但是我不会放弃,既然选择了方向,就要勇往直前!
1楼 shengnan_wu 2013-01-20 14:02发表 [回复] [引用] [举报]
受教了
您还没有登录,请[登录]或[注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

  • 个人资料

  • coolbacon

关于嵌入式的学习和职业发展相关推荐

  1. 专业学习与职业发展之我见(二)

    一.前言 在上篇文章中写道了我对专业学习和职业发展的认识,现在接着这个话题进一步思考. 二.正文 (一)专业学习与职业发展的多种关系 (1)专业学习包容职业发展.在这种情况下,常见有"我的职 ...

  2. 拉勾网《32个Java面试必考点》学习笔记之一------Java职业发展路径

    本文为拉勾网<32个Java面试必考点>学习笔记.只是对视频内容进行简单整理,详细内容还请自行观看视频<32个Java面试必考点>.若本文侵犯了相关所有者的权益,请联系:txz ...

  3. 学python对数学要求高吗_人工智能的小男孩 大专学历的人没有数学基础想学习python技术未来能往大数据或人工智能方向进行职业发展吗?...

    内容由传智播客提供,电器吧机器人网提供人工智能的小男孩相关内容,小编烟酉为您整理并发布于人工智能栏目下,原标题:大专学历的人没有数学基础想学习python技术未来能往大数据或人工智能方向进行职业发展吗 ...

  4. 01 - 嵌入式的学习路线、职业规划:嵌入式基本知识与开发流程

    01 - 嵌入式的学习路线.职业规划 一.职业杂谈 -- (学习路线/行业介绍) 1.什么是嵌入式? 除通用计算机外(界限开始模糊:如树莓派) 特点: 硬件定制 智能控制(计算机技术) 软硬裁剪 2. ...

  5. 研究显示,技术学习成本高已成科学、技术、工程和数学类职业发展最大障碍 | 美通社头条...

    美通社消息:IBM 最新公布的一项全球调研结果显示,世界各地求职者.学生及考虑转行的人士正在不同行业中寻求 STEM (科学.技术.工程和数学) 类岗位,但他们也承认,自己并不熟悉此类岗位相关的选项. ...

  6. 嵌入式能从事什么职业?

    嵌入式本身发展是很好的,这也是大家接触它的原因,最后大家也是想通过学习嵌入式而找到关于嵌入式开发的工作,想必大家也应该知道嵌入式工作要求有很多,下面就一起来看看嵌入式能从事什么职业吧. 点击获取1V1 ...

  7. 剖析Android移动开发程序员的职业发展之路

    剖析Android移动开发程序员的职业发展之路 做Android移动开发已经有三年时间,其中甘苦自知,对Android开发和对Android程序员的职业发展有一些自己的感悟,在这里愿与大家分享和讨论. ...

  8. 怎样确定职业发展方向

    IT行业走好职业发展之路 [编者按]陈安之说过,有什么样的目标,就有什么样的人生.特别是在IT这样一个充满活力又极端残酷的特殊行业中,每天都在创造着新的传奇,创造与颠覆.裂变与整合.竞争与合作,IT人 ...

  9. 马上加薪!测试,你的职业发展...

    一入测试深似海,每一位测试同学需要对自己未来有所规划才能把控自己的未来! 软件测试员的职业发展一般3年为分水岭,3年后的发展方向大体上可以分为管理路线.技术路线.管理+技术路线. 测试初级阶段:  测 ...

  10. 一篇文章看清楚 Linux 的职业发展方向

    手机.汽车.甚至宇宙飞船,在今天的科技世界中,你几乎到处都能看到 Linux 的身影.前两天 SpaceX 成功将宇航员送入太空的猎鹰9号火箭与龙飞船用的也是 Linux的操作系统.身处与 Linux ...

最新文章

  1. 谷歌开发者大会杀出技术黑马,知乎AI终于不再隐藏实力了
  2. Liunx下HPCC(HPC Challenge)的安装运行
  3. TF-IDF与余弦相似性的应用(一):自动提取关键词
  4. 【oracle】sqlnet.ora 访问控制策略
  5. git教程——简单总结
  6. 【深度学习】ResNet——CNN经典网络模型详解(pytorch实现)
  7. 看完Andoird9.0 Pie的隐藏特性,我买了SSL证书
  8. 菜鸟修炼C语言小设计之——工资统计
  9. Blazor University (9)组件 — 代码生成 HTML 属性
  10. pandas 对某一行标准化_Python中的神器Pandas,但是有人说Pandas慢...
  11. mysql示例数据库
  12. 【小姨子】 基本信息(拼音,读音等)
  13. 从零基础入门Tensorflow2.0 ----七、34 embedding rnn
  14. P3853 路标设置
  15. C++语法基础--句柄类
  16. 优先队列push pop操作
  17. 投票小程序制作开发有哪些步骤?投票小程序开发有哪些功能?
  18. 获取电商网站主图和详情图的浏览器插件
  19. caffe accuracy 学习
  20. PPT设计制做关键提炼——Metro风格

热门文章

  1. 内与外的困惑:找出System进程占用100%CPU的元凶
  2. c#和java工资相差多少岁_为什么C#程序员平均工资水平比Java程序员低?
  3. 【PTA】7-9 句子首字母变大写(python)
  4. DDos防护系列之2--DDos防御策略
  5. win10输入法变成繁体字如何解决
  6. Linux 配置 VNC 远程桌面
  7. Echarts制作标签云图
  8. 高效能人士的七个习惯读后感与总结概括-(第四章)
  9. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  10. html调用网易云播放器无法自动播放,网页内嵌网易云插件全程(包括生成自己歌单的外链)...