软件
1、软件对数学知识的要求比较高,所有的算法,实际上就是把数字公式用编程语言实现的一种方式。
2、对于做底层开发,如做一台电器设备,其内部用的算法大多数都是现成的,可以通过各种途径得到。所以很多算法不需要自己写,直接移植修改即可。甚至一些环路控制的代码可以用仿真软件自动生成。
3、做软件的起点比较低,容易上手。只要有一定的数学基础和编程能力的人都可以做。但是要做好却并不容易。大多数人都是停留在敲敲代码的水平。
4、做软件开发,平时要多看,多练,即所谓的熟能生巧。要想写得好,平时要多看大公司的开源源码。比如UCOS的源码,里面包含的知识可多了。写代码的时候可以参考人家的写法进行编写,这样自己写的代码也会比较规范,至少会让别人觉得你的代码很整洁,比较专业,而不是那种很业余,很凌乱的感觉。
5、大公司的开源源码不仅要能看懂,而且还要偿试着自己写出来。当然这并不是一朝一夕就能达到的水平。但是没关系,每天坚持写一小段代码,时间长了收获就满满的。其实学习就是一个积累的过程,谁也不可能一口吃成胖子。等到某一天,你也能写出操作系统的源码的时候,说明你的水平已经很高了。
6、软件说白了就是掌握编程语言和数据结构(即算法)。
硬件
1、硬件讲究的是实战及经验。经验越丰富水平就越高。这里讲的经验并不是指工作的年数。很多工程师工作了十几年,甚至几十年,其开发的产品都并没有做稳定。并不能说他有十几年的开发经验。这种理解是不正确的。其实这不仅是工程师水平的问题,还关系到公司的硬件条件,没有好的设备,能力再强的工程师也不可能做出好产品。
2、硬件开发有三点可以反映出工程师的水平。第一是技术;第二是成本;第