龙空技术网

六年工龄电子工程师的不完全职场进阶计划

电子工程世界 164

前言:

此刻看官们对“tolga akis运动模型”大体比较关切,同学们都需要了解一些“tolga akis运动模型”的相关知识。那么小编在网摘上汇集了一些对于“tolga akis运动模型””的相关内容,希望朋友们能喜欢,你们快快来学习一下吧!

我已经在美国一家科技公司工作快六年了。

在这六年中,我由一名刚刚从学校毕业的研究生,经过多个大小项目的洗礼,从普通的电子工程师,做到了公司研究部门的研究工程师。我的技术水平,在这期间得到了极大的锻炼和扩展;我的交流能力和表达水平,在这期间也得到了不小的提升;我的情商和人际交往能力,通过公司提供的培训课程和自己的实践,也在稳步有计划地进展。

爱因斯坦曾经说过:

当我们的知识之圆扩大之时,我们所面临的未知的圆周也一样。

随着技术水平的提升,我发现自己需要在技术上扩展和深挖的地方越来越多;而随着在公司工作年份的增加,我所要承担的责任也越来越多,相应的需要学习的通用技能也越来越多。作为理论之上的实践,我就在这里描述一下我的职场进阶计划。

专业技能篇

我是一名信号处理算法工程师(Digital Signal Processing (DSP) Algorithm Engineer)。在所在公司,我主要负责的是数字信号处理的算法设计与验证,现有产品算法的维护和性能提升,以及新产品和新算法的研究和设计。在研究生期间,我的研究方向是数字图像处理(Digital Image Processing (DIP))以及模式识别(Pattern Recognition)。本来在毕业时,我想去找数字图像处理相关的工作,但是机缘巧合我找到了现在所在的公司,开始做信号处理相关的工作。

虽然数字图像处理的本质也是数字信号处理,但是在具体的算法设计和应用上还是有极大的不同,这就导致了我必须不断学习才能尽快融入工作的要求中。久而久之,持续学习的习惯就养成了。我觉得自己应该在未来的一两年将下面的技术吃透或者充分了解,从而在保持核心技术竞争力的同时,兼顾未来的技术发展。

数字信号处理

数字信号处理其实是所有平台的本质,不论是语音、视频、光波、还是雷达波,想要被计算机处理,都需要通过模数转换器转换成数字信号。那么深入理解数字信号处理的本质,以及相应的算法和套路,就是作为一个DSP工程师混饭吃的根本技能了。

在研究生阶段学习的课程,我使用的教科书是John G. Proakis的这本《Digital Signal Processing (4th Edition)》。既然作为教科书,那么它必然就是兼容并包,理论描述非常翔实和清晰。但是它的问题同样也在与此,也就是说这本书作为参考书是非常好的,可以随时查阅相关的理论和信息,但是作为一个DSP工程师来说,仅仅有扎实的理论基础是必要的但是不足够的。

在数字信号处理领域,通过MATLAB来做系统设计和模拟,以及算法原型的设计,是常见的工作手段和方法。那么学习和练习MATLAB的编程方法和技巧,以及应用在数字信号处理的基础理论上,就是DSP工程是的看家本领了。最近一段时间Python语言非常火,甚至盖过了同样作为脚本语言的MATLAB的风头,但是在数字信号处理领域,MATLAB目前依然是首先被许多公司采用的工具,也是我这六年以来一直在使用的顺手工具。在我之前的学习中,使用过的Vinay K. Ingle的这本《Digital Signal Processing Using MATLAB》是一本非常棒的,将经典理论和具体代码应用相结合的好书,我曾经跟着书把所有的代码都敲了一遍,非常有收获。

除此之外,还有几本数字信号处理的书籍非常推荐:

Steven Smith - 《Digital Signal Processing: A Practical Guide for Engineers and Scientists》

Richard G. Lyons - 《Understanding Digital Signal Processing》

Alan V. Oppenheim - 《Oppenheim: Discret Signal Process》

数字信号处理的理论是非常经典的,应该在相当长的时间里不会有太大的变化,而不断巩固自己的信号处理知识,其实就是练功者在训练自己的内功心法,或者是健身爱好者在锻炼自己的核心力量。而作为信号处理领域的从业者,我所要做的就是将基础不断夯实,并且结合MATLAB将理论通过代码从容实现,然后结合项目里具体的应用,将这些理论充分在项目中展现出来。

传感器应用

最近几年,随着物联网(Internet of Things (IoT))热度的迅速提升,以及以特斯拉等自动驾驶汽车公司的迅速兴起,传感器的应用就变得非常重要了。总的来说,我们每天都在跟无数的传感器打交道:到处都是的摄像头,是一种光学传感器;最新的iPhone X使用的是近红外点阵投影技术,同样是一种光学传感器;手机上还有各种各样的传感器,比如距离传感器、陀螺仪、磁力计、加速度传感器等等。而自动驾驶汽车上,更是需要强大的光学摄像头+电波雷达+激光雷达三者强力融合的系统来作为汽车的感知单元。如果说数字信号处理系统是大脑,那么各种各样的传感器就是眼睛和耳朵。

我很幸运,在大学本科的时候就主攻数字图像处理的算法,在研究生阶段接触了激光雷达,并且设计了一些图像数据和激光雷达数据融合的算法和应用。在毕业之后的工作岗位上,我有充分沉浸在电波雷达相关的信号处理和算法设计上。总体来说,我已经具备了自动驾驶汽车所需要的光学摄像头+电波雷达+激光雷达的相关知识和技能,而且我对自动驾驶汽车的传感器应用非常感兴趣。

那么接下来要做的,就是深入了解和实践这些传感器在自动驾驶场景的应用,让自己的经验和认知能够紧跟行业技术发展;而且我并不擅长设计这些传感器,我需要提升的是数据融合的能力,因为在单位时间内大量数据的到来,如何更好地将这些数据整合以及做出低误检率的算法设计,就是核心技能了。

在提到传感器数据处理的时候,不得不提的是卡尔曼滤波这项技术。因为传感器总是包含噪声的和不完全准确的,那么如何得到有效的系统状态估计和参数值预估就变得非常重要。卡尔曼滤波是一种高效率的递归滤波器,它的主要用途就是通过处理包含噪声的输入数据,来对所在系统的内部参数进行动态估计,以及根据系统之前的状态和当前观测数值,预估下一时刻的可能的观测数值。我非常喜欢研究卡尔曼滤波和各种非线性变种,以及具体的项目应用,因为我认为这是一种理论模型和现实应用的完美结合,是算法设计的终极目标。Paul Zarchan的这一本《Fundamentals of Kalman Filtering》是一本关于卡尔曼滤波的经典著作,而且配有详尽的MATLAB源代码。如果对Python更感兴趣,那么可以关注Roger R. Labbe在Github上的《Kalman and Bayesian Filters in Python》,我觉得他对卡尔曼滤波的讲解非常深入浅出,适合初学者从基本概念入手,由浅入深进行学习。这两本书都是我正在努力攻读的,而且应该会和数字信号处理的书籍一起,终身学习和应用。

机器学习/深度学习

从大约2012年,吴恩达教授在谷歌大脑部门通过大规模分布式集群计算机开发超大规模神经网络,来让计算机自动学习识别猫,这一个项目开始,以深度学习为代表的人工智能应用就在近几年飞速地发展开来。在这期间,国内诞生了诸如旷视科技、商汤科技为代表的视觉人工智能公司,以及诸如寒武纪、深鉴科技为代表的深度学习芯片公司;传统的大型科技公司阿里巴巴、腾讯、百度都通过深度学习,在数据智能、语音图像识别、自动驾驶汽车等领域收获了巨大的技术进步。

其实现在大家谈论最多的深度学习,只是机器学习这个领域的一个小的分支:深度学习基于的是以神经网络为基础的,通过多层次神经元结构的非线性结合,来对数据进行由浅入深的多层次抽象的算法。而机器学习,分成三个大方向:有监督学习、无监督学习、以及增强学习。现在应用最多的深度学习,属于机器学习里面的有监督学习,也就是说我们需要给深度学习模型提供大量的带标注的真实数据,然后通过对模型的建立,以及对模型结果的对错的目标函数的设计和优化,来实现整个深度学习系统的不断完善。

CS231n 视觉识别卷积神经网络

我2017年花了不少时间学习深度学习和机器学习的基础知识,总的来说还是收获非常大的,主要是通过学习让自己形成了一个机器学习的思维方式。我主要是通过斯坦福大学的两门公开课进行学习的:吴恩达教授的《CS229: Machine Learning 机器学习》以及李飞飞教授的《cs231n: Convolutional Neural Networks for Visual Recognition 视觉识别卷积神经网络》。前者主要是对经典机器学习里诸如线性回归、支持向量机、混合高斯EM算法、主成分分析等等算法进行讲解和描述,而后者则将重心放在卷积神经网络在图像识别、分割、解析上的应用。这两门课太经典了,以至于我已经学了不止两遍,而且对机器学习课程里的每一个公式,我都跟随吴恩达教授的讲解进行了推导,收获非常大。

提到深度学习,就不能不提到现在流行的各种软件框架:经典的Caffe,流行的Tensorflow、PyTorch等等。我现在的主要任务,就是在夯实了机器学习以及深度学习的基础知识之后,通过Tensorflow框架来做一些自己的小项目,从而打通理论到实践的通络。这样一来,在未来的某个时间,也许我就可以通过自己设计的小项目的锻炼,达到大公司需要的深度学习从业者所需要的能力,给自己未来的发展多开拓出一条道路。

嵌入式平台/并行处理平台

我在本科的时候,通过电子设计大赛接触了凌阳公司的单片机;在研究生的时候,通过选择的电子系统设计课程,接触了FPGA和Verilog硬件描述语言;现在通过对深度学习的认识,我知道GPU在深度学习中的大规模应用以及其重要性。总而言之,对嵌入式平台和并行处理平台的认识和应用,在现在就显得非常重要了。

我学习和使用过下面这些平台:

单片机/嵌入式:

KST-51 单片机开发板:适合单片机入门,配套教程很好

韦东山 JZ2440:韦东山老师的开发板,重点是配套的经典驱动编写教程

ODROID-XU4:三星Exynos5422处理器,6核CPU加上Mali-T628GPU,性能非常强劲

FPGA:

Digilent Nexys 2 Sprtan-3E FPGA Trainer Board: Xilinx经典的Spartan-3E系列FPGA

米联客 MIZ702N: 学习Xilinx Zynq SoC的优秀硬件平台

小梅哥 AC620:配套教程非常棒

CrazyBingo的VIP_Board:图像处理算法的FPGA实现独一无二

GPU:

英伟达 GTX 1080:英伟达10系列的显卡,深度学习训练必备

英伟达 Jetson TX2:英伟达的GPU嵌入式平台,非常适合无人机、机器人、自动驾驶汽车等等应用

Jetson TX2 模块和开发板

在这几年,通过这些平台的学习和练习,对各个系统都有了不少的认识。我认为在未来,FPGA和GPU会是应用的主要战场,那么我就应该将学习和练习的重心,放到他们身上。对于FPGA,我现在正在做自己设计的摄像头、SDRAM、FPGA、VGA这样一个图像采集和显示的小项目,让自己理顺这个数据通路,同时巩固自己对FPGA设计流程的理解。对于GPU,我在讨论深度学习的时候已经指出,自己会设计一些图像识别的项目,在建立数据库之后,通过Tensorflow框架在GPU上进行网络的训练。同时我也要对GPU的架构和硬件结构进行学习,以及英伟达的CUDA平台,通过软硬件的完美结合,让数据处理更快更有效率。Tolga Soyata的这本《GPU Parallel Program Development Using CUDA》是一本非常有意思的书,虽然题目是GPU编程,但是它从CPU多线程开始讲起,结合具体案例和代码层层深入,让我看完之后收获非常多。

总结

还记得在大学刚入学的时候,我们电子信息工程学院的院长在新生见面会上说:

你们将来从事的会是“IT行业”,谐音就是“挨踢行业”,这意味着你们必须不断前进,否则就要被后来的人踢屁股了。

当然这是玩笑话,但是也道出了作为电子行业从业者的现实:我必须在技术上不断充实自我,不断拓展自己的技术和能力上的边界,不断扩大自己技术视野的宽广程度,这样才能在激烈竞争中站稳脚跟,不断前进。

希望在上文中出现的书籍和资料等信息对你有用。

通用技能篇

在现在这个职场里,仅仅有丰富的专业技能是不足够的,需要配合相应的通用技能,才能让自己在所在公司不断得到职位的提升,最起码不会因为时间的流逝和时代的进步,让自己濒临淘汰。下面,我想跟你谈谈我在这几年经历和学习的一些通用技能,以及我对自己在未来如何继续学习和应用这些技能的一些展望,希望对你有用。

图片来自unsplash.com

管理技能

随着在公司工作时间的不断增加,公司就会对我们有更高的要求,其中最重要的一项要求,就是承担一定的管理任务。不论是对工程项目的流程设计和管理,还是对项目执行人员的进度管理,都是我们提升在公司影响力的有效方式,而且通过这些管理技能的提升,自己相应的工作收益也会随之提升。我所在公司的CEO曾经说过,尽管工作年限也是一个指标,公司给予员工的薪资,主要是跟随员工影响力的大小而调整的。如果是同等工龄的员工,从事管理岗位的会比从事工程项目的员工多拿20%到30%的工资,因为相比技术过硬,但是偏居一隅独自作出贡献的工程师,管理岗位上的员工,因为接触公司更多的人员,在公司写作网络中承担更大的责任,所以在公司的影响力会相对大一些。

除此之外,管理技能是一项非常有益的通用技能,它是可以在离开现有工作之后,迅速应用到下一份工作上的。本质上说,管理也是在解决问题,只是同工程上解决与算法、数学、代码等等问题不同,管理解决的是流程、进度、人力、知识等等问题。而管理要解决的问题,往往相对比较抽象,有时候甚至并没有标准答案,因此需要足够的思考,改变旧有思路,甚至需要颠覆作为工程师一族的工作方式和价值观。因为工程的目的,是把目标结果实现出来,但是因为作为个人贡献者的工程师,面对的是诸如代码、电路、数学等等非人类的元素,那么拥有一个线性或者机器思维,就能够有效完成工作和实现目标。但是作为管理者,需要面对的是作为个体的人,而且每个人都有自己的特点和脾气,那么抱有原来线性和机器思维的工程师,就不能很好地完成管理工作,而必须通过思维的转换,跳出原来的舒适区来实现。但是一旦跳出舒适区,完成管理知识的积累和管理方法的实践,充分利用好工程师善于学习的特点,那么我们就会发现,管理技能会扩散到工作和生活中的多个方面,让自己的职业生涯的宽度扩大,选择更多。

作为我个人来说,学习和实践管理方法是我现在非常想在公司做的事情。毕竟我在公司也工作了快六年,对自己手头的工作也有了一些深刻的认识和想法,那么新加入小组和共同做项目的同事,就是我练习管理方法的对象。正巧我所在的研究组需要做一个新项目,需要一名有经验的工程师带一带新加入小组的工程师,我就自告奋勇接手了这个项目。这短短的四个月里,我深刻体会到了项目管理工作和自己做项目之间的巨大差异,也学习到了非常宝贵的第一手管理经验。

在这些经验中,我觉得最有效力的,就是情境领导了。这个理论的学习,是公司给员工提供的培训课程上讲解的。最初听课的时候,我还对这些理论嗤之以鼻,觉得对自己没有意义。但是在实际应用中,我发现这些理论非常重要而且有效。因为一旦进入管理者角色,我们需要面对的就是不同工作意愿和工作能力的员工同事,那么在采取管理方法的时候,就应该有所侧重。

图片来自

从上图我们可以看到,员工随着工作意愿和工作能力的不同,大概可以分成四个类型:

热情高涨的初学者D1:工作能力比较欠缺,但是有非常强的工作意愿

憧憬幻灭的学习者D2:工作能力有一定提高,但是工作意愿因为工作挫折而降低

有能力但谨慎的执行者D3:工作能力进一步提高,但是工作意愿会有波动

独立自主的完成者D4:工作能力和工作意愿都非常高

图片来自

通过对员工特点的分析和归类,我们在管理的时候就能选择相应的方法,来正确地对员工进行管理,帮助他们完成自己的工作。比如对于D1和D2类的员工,我们就要通过比较多的指导行为来管理;而对于D3和D4类的员工,我们就要通过比较多的支持行为来管理。

在我的经历中,我管理的项目的同事是刚刚进入研究小组的,所以他们的工作意愿很强,但是工作能力因为刚进入小组而显得比较欠缺。这样,我就需要对处于D1和D2阶段的这些同事,采取高指导的行为,并辅助以相应的支持行为。而具体做法,就是每天进行项目进展会议,通过会议了解项目成员是否有困难,如果有的话就要面对面进行协作和帮助,最后要给予一定的鼓励和激励。而我也需要具体了解每个成员的具体工作内容,甚至需要具体到代码,这样我就能给予具体的指导行为。最终,我们很好地完成了项目,获得了管理层的赞许。

管理是一个技术人在积累技术之后,奋斗的下一阶段。我也会不断学习新的管理理论,并且在实际工作中继续实践,吸收更多的管理经验,拓展自己的管理水平,让我的职业生涯可能性更多。

演讲/写作技能

图片来自unsplash.com

我有位巴基斯坦同事,他有非常好的演讲和做报告的能力,能把自己的工作汇报地非常到位,甚至能锦上添花给自己的工作增色。那么如何提高自己的演讲能力,就是我需要去思考的实践的事情。

总的来说,我觉得可以从一下两个方面去练习和提高自己的演讲能力:

多花时间,对自己要表达的内容进行思考和准备,尽可能把别人可能问到的问题想清楚,做好练习

多写作,梳理思路,将自己发散的思维聚拢起来,形成思想

前面这个方法,更多的是“技”上面的提升,主要体现在演讲过程中的表现;后面这个方法,更是一种“道”上面的修炼,主要体现在材料准备时的深度。这两者缺一不可,因为我们的演讲水平可能很高,可以天花乱坠把一个很普通的事情吹上天,但是本质上这对于公司解决实际问题并没有建设性意义(虽然对于个人升迁可能有帮助);反之,如果仅仅是有非常棒的解决方案,而没有生动翔实深入浅出的讲解,只能生涩晦涩地传达基本事实,那么对于听报告的人也是一种无形地折磨。

那么应该怎么练习演讲的“技”呢?在这个问题上,我觉得没有捷径:我们可以通过多加练习,让自己非常熟悉要去演讲的内容;如果不能临场发挥,那就提前把要演讲的内容撰写成稿件,这样就能确认要讲的东西,然后以它为核心进行修正和练习;最后就是不断重复,让自己的思维紧紧跟随着演讲内容,让自己在做演讲之前就进入这样的一个思维状态,这样在演讲那一天,自己的状态能够达到最好。

我自己的例子就是这样。还记得六年前研究生毕业答辩的时候,自己需要准备一份一个小时的演讲,来把自己三年研究生阶段的工作做一个总结。那时候自己的PPT就有将近100页,然后想要展现的具体内容也非常多。怎么办呢?只能硬着头皮上,把要讲的内容写在纸上,然后让自己不断去读去背去熟悉。但是只自己在脑海里复述是不够的,因此我在家里把我的妻子作为听众,从头到尾练习来不下七八遍。最后的答辩是我表现最好的时候,演讲一气呵成非常顺利,平时的训练在最后都得到了应用,给自己毕业答辩顺利完成画上了浓墨重彩的一笔。在这之后我就知道,演讲也是一个表演,只要练习和准备做到位,就一定不会差。

那么写作的意义在哪里?

图片来自unsplash.com

我在网络上写作也有一些时间了,虽然产出的文章数量不多,但是不知不觉也写了五万多字。现在有很多关于写作变现的文章,比如《通过写作月入xxx》等等之类,这些文章比较吸引人的眼球,也有助于让更多的人开始写作这个过程,毕竟物质上的刺激是最直接有效的。但是在我看来,通过写作完成财务自由或者获得一定的财务收入,是写作的一个副产品。如果把主要的精力都放置在写作完之后别人的赞美和打赏上面,那就有本末倒置之嫌了。

我认为写作的意义在于:

通过把对一个事物的思路理清,来解决一个问题。

怎么理解我所说的这一句话?《罗辑思维》曾经有这么一句话:

很多我们现在熟悉的观念、组织形态,回到具体的时空中,都是为了解决某个问题,才涌现出的伟大发明。

很多现在看来晦涩难懂的书,在当时成书的年代,也是为了解决一个理论或者应用难题而写的,而并非无病呻吟为了写书而写书。那么对于我们现在的个人来说,写作的意义就在于,把生活中纷繁复杂的事情,以及在头脑中没有头绪的思路,以文字的形式落实在纸上和电脑上。这样一来,有三点好处:

在写作的过程中,就要不断打磨自己的思路。自然而然,乱成一团的思路通过写作得到了理顺,持续地锻炼之后,我们就能提升自己的逻辑力和思考力

在写作完成之后,有一些在脑海中挥之不去的想法和思路,就可以放置在脑后不再去想了,这样就可以清空大脑,专注在更重要的地方

通过长时间写作之后,我们会更加在意自己思维中的微小灵感,久而久之我们就不会人云亦云,而是有自己的思想和创造力

在这些好处的基础上,拥有自主思想的我们就能更有效地修炼我们的演讲技能。而最后的最后,我们的文章因为对其他人有用,可能会带给我们一些物质上的收益。但这收益,跟我们个人的成长相比,就十分渺小了,对不对?

总结

在这篇文章里,我总结了我作为一个电子工程师,在技术上和通用技能上的一些思考,来让自己不断进步,给自己的职业生涯拓展出更多可能性。希望能对你有所启发!

作者:盎司昂思

链接:

来源:简书

标签: #tolga akis运动模型