一个技术从业者的成长,除了专业技能,经验的增长之外,我觉得还有一个比较重要的方面,那就是从学生思维到工程思维的转变。今天以我的理解来和大家交流一下。我所写的内容都是我所经历过和进行过深入思考的,力求能够得到大家的认可,并且能够帮到需要成长的朋友。我个人能力有限,如遇到高人,有任何更好的见解,欢迎留言讨论。
我们从九年义务教育到大学教育,知识结构的建立,均是在理论科学的前提下进行的。理论科学中的概念定义,很多都是基于一个假设或前提才能够成立。有一个很常用的词那就是“理想”。在理想状态下,怎么怎么样。理想运算放大器,理想电流源,理想电压源......并且,学习的状态是先输入,对一个知识的理解、记忆,然后再输出,通过做题考试把知识消化的过程。整个过程相对比较单一。
然而在实际的工程项目中,除了更应该关注的一个关键词是“实际”之外,在整个项目中是需要产生一个具体的成果。那么如何通过专业的知识技能保障项目的完成就是工程思维的核心。下面来看一下。
1项目需求
拿到一个项目的时候首先要做的就是充分理解项目需求。如何快速准确地将一个项目的应用需求文字翻译成工程师自己的语言,是需要在实际开发中不断历练的本领。如何组织项目架构,如何实现自顶向下的设计。前期对项目需求的明确,能起到高屋建瓴的作用,项目需求越明确,考虑的越周全,功能拆解的越详细。在后续的详细开发中,遇到问题解决的效率就越高,在后期如果出现需求变更的情况下,也能够把握整个项目的架构来进行更改,不会出现打补丁,越补越乱的情况。
2开发进度
在实际的项目开发中需要把握好的重要一个因素那就是时间。拥有良好的时间观念,能够让你在整个开发过程中实时把握主动。工作计划中一定要明确工作量,把握好开发时间。在时间的预估上一定要给自己留有余量,否则如果遇到关键的项目难点,容易造成项目计划超出预期时间。
3开发成本
成本意识在项目开发中也是至关重要。在满足产品性能的同时,如果能用一毛的器件,绝不会用1块的。当然这是大的前提。具体的实施,那应该有大致如下几个原则:
一、 能用现有的元件,不用之前没用过的器件。批量采购总能够以更低的价格拿到货。
二、找到更有实力的供货商。所谓货比三家,在这里同样如此。
三、借用吴京选演员的一句话说,就是 “只选对的,不选贵的”。曾经有位老师说过,设计是权衡与妥协的艺术。比如选择一个运算放大器,你是需要通用的?还是用低噪声的?高速度?还是要低功耗的? 选电阻是选择百分之五的?还是选百分之一的?亦或者是千分之一呢?也有很多器件的性能会分为民用,商用,军用三个级别。性能,稳定性,最大参数范围,适用的温度范围均有所不同。在能满足性能的前提下,一定是要选择价格更加低的。以上只是简单列举几个例子。一个产品的成本直接关系到其生命周期和产品在市场中的竞争力。所以足见成本的重要性。
4解决问题
在项目的开发和产品的维护中,我们会遇到各种各样的问题。最常见的解决问题的办法就是排除法。排除法的原则我总结有三条:从简单到复杂,从常规到个别,从常识到理论。
这三条理论是实现高效快速解决问题的思考方向。设备故障,考虑是不是犯了低级错误,该连接的线路有没有连接。有没有通电,有没有打开开关。然后才会考虑电路有没有虚焊,有没有把线序搞错。如果还解决不了,那接着怀疑出现某个故障的相关器件有没有坏掉。这样由容易解决的考虑到不容易解决的思考下去,更能快速定位问题。总不能出现问题,我们要先把电路的原理拿出来研究一遍吧。这三个原则都是这个道理。节省时间。
还有就是对比的方法。一般焊接电路板我通常焊接两块。就是为了方便在后续调试过程中方便对比。如果一个设备有故障,一个设备没有故障。那是不是就可以对比这解决?
其余复杂情况,可以寻求外援,请教其他同事,咨询供应商的FAE等等。
5工作汇报
工作汇报主要分为两个方面:
工作计划主要要说清楚计划的内容和计划完成的时间,可能遇到的困难,有无相应的对策。如有多个实现的方案,可一一列出,并提出相关的优缺点。
工作成果性的汇报要讲清楚完成的结果,进度,遇到的困难,解决的办法。如有多个解决方案,一一列出,并提出相关优缺点。
6专业知识的延展
之前有提到,我们在学校中学到的知识大部分都停留在理想状态下。实际的项目开发中,电阻不在是一个数值,一个符号。除了阻值,它有功率,有精度,有封装,,,,,,电容除了容值,有耐压,有材质,有ESR,有的还有极性,,,,晶体管开关的开关也会受到弥勒效应的影响,开关的快慢也不能再随心所欲。运算放大器也不在是理想的了,增益不是无穷大,虚短虚断也不过是为了研究问题的方便而得出的抽象。电流源,电压源由于实际加载效应的存在,而不在理想。等等等等的一切,所有的知识体系都和学校的课本不再那么的一样。所以对专业知识的延展,这个应该是工程思维中最难的一个环节也是最重要的一环。需要我们不断的学习,不断的实践,从而重新构建起相对更加完整的专业知识体系。
7良好的开发习惯
曾经接触一个工程师,81年的,简历上显示10年的工作经验。每次路过他工位,总是能看到办公桌上东西一大堆,各种板子,老铁,工具,夹杂着很多个人生活用品。乌七八糟。焊出来的板子就像桌子上的东西一样乱七八糟。给过一个单片机的代码工程,代码量也不大,三千行的样子,结果看了少说大半年,让改一个参数愣是找不到地方。
提这个故事想表达的意思是良好的开发习惯和良好的学习习惯一样,同样能阻碍一个人的职业发展。没有良好的习惯,耽误开发进度,容易出错,以上就是很直接的例子。良好的开发习惯我分为三个方面。包括:
硬件管理
我们硬件工程师工具器件特别多。烙铁,焊锡,松香,镊子,各种器件,示波器等仪 器。。。。。随意摆放,不加管理,找东西两小时,干活五分钟,这样怎么谈效率?所以所有 东西都要在该在的位置,定期清点,随时归置。
软件管理
软件管理主要是电脑上的文档,程序。均要归类,存档。设定好版本号,每一版之间有什么改动,尽力做好分类管理。
办公流程的条理性
PPT,word 文档,测试报告,元器件BOM,工艺流程,装配指导,产品说明编写尽量做到规范。关于良好的开发环境,自我感觉也是老生常谈了。不想赘述。今天就写这些吧。纯手打。谢谢拨冗阅读。