看到网上好几篇介绍算法工程师(计算机领域)的职业发展路径的有关文章后,我才也写了本篇文章,和大家一起梳理通信算法工程师(通信领域)的发展路径。虽然都是搞算法的,工作性质也差不多,但属于不同的行业,还是有些区分。
先看看算法工程师的职业路径,主要有以下几种:
算法工程师:刚入职的算法工程师通常需要在老员工的指导下,完成一些基础的算法任务。这个阶段的重点是熟悉企业的研发流程和项目环境,积累实践经验。一般刚毕业的研究生都可以胜任。如果没遇到好“师傅”,那靠自己摸索吧,用时间换取经验!
高级算法工程师:随着经验的积累和技术能力的提升,算法工程师可以独立承担一些较为复杂的项目。这就需要具备扎实的算法理论基础、熟练掌握多种算法框架和工具,并且能够根据业务需求快速实现算法的创新和优化。一般需要博士毕业,在校有过实际项目经验,入职后可以胜任这个岗位!在算法领域的职业生涯中,大部分研发人员“走”到这一步也就到“头”了。
算法专家:在某特定领域或多个领域拥有深厚的技术积累和丰富的实践经验,能够解决复杂的技术难题,为公司提供技术指导和支持。需要不断关注行业前沿技术,进行技术创新和研究,推动公司技术的发展。
首席科学家:公司技术领域的最高领导者,负责制定公司的技术战略和方向,领导团队进行前沿技术的研究和开发,为公司的长期发展提供技术保障。这个岗位也就看看,不要多想。实际情况是具备多种技能(算法能力只是一方面,交流、管理都不能缺)才能做到这个位置,已非专业技能所主导的岗位。
技术经理或者项目经理:负责管理一个或多个算法团队或者项目,制定团队的工作计划和目标,协调团队成员之间的合作,确保项目按时、高质量地完成。需要具备良好的沟通能力、团队管理能力和项目管理能力,能够将技术团队与市场营销部门有效地结合起来,推动业务的发展。
研发总监:负责研发部门的管理工作,包括技术团队的建设、技术研发的规划和实施(制定技术路线图)、技术资源的分配等。需要对公司的业务和技术有全面的了解,能够制定研发战略,领导团队实现公司的技术目标。
CTO或者总工程师:是公司的技术最高负责人,全面负责公司的技术战略规划、技术研发和管理等工作。需要具备卓越的领导能力、战略眼光和技术洞察力,能够引领公司技术创新,推动公司业务的快速发展。
转向产品经理:凭借对技术的深入了解和对业务的熟悉,算法工程师可以转型为产品经理,负责产品的规划、设计和推广等工作。需要具备良好的沟通能力、市场洞察力和产品管理能力,能够将技术与业务需求相结合,推动产品的成功。
高校科研:部分算法工程师(具有博士学历)会选择回到高校(一般落地是计算机学院)从事科研和教学工作,技术为辅,继续深入研究算法理论。需要具备扎实的学术基础和科研能力,能够发表高水平的学术论文,这样有利于后续的职称晋级。
创业:基本不建议!算法工程师的工作经历不适合创业,能成为算法工程师的人一般做事比较“轴”,听劝能力有些弱。还有管理公司涉及到和人相处,算法工程师习惯于和机器相处,两者差异巨大,容易入“坑”。
通信算法工程师的发展路径和算法工程师类似。但是这个岗位和算法工程师面对的载体不一样,前者面对的是各种芯片,后者大多面向计算机或者服务器。所以通信算法工程师跟硬件以及外部环境的联系比较密切。一般刚进入企业的通信算法工程师需要至少一年左右的时间来熟悉产品涉及的各种硬件平台以及相关的射频知识,有了这方面知识的加持,算法能力也会逐渐提升。当初本人在这方面得益于项目团队的射频工程师(老梁和老刘)的指导,这两位前同事的性格都是非常腼腆型,基本不怎么说话,前者本科毕业于电子科技大学,后者则是在清华本硕连读。那么如何和射频工程师打交道呢?接口就是AD和DA——数字和模拟的交汇点!他们有着多个项目的研发经验,多年的积累使得他们对数字部分也有所了解,沟通起来非常顺畅。技术其实是相互穿插的,只不过各自的重点不同罢了。
如果要转型为产品经理,那么通信算法工程师需要了解的硬件知识要比其他行业的算法工程师知道的多得多,因为每一个产品都是不同硬件和不同软件的组合,产品之间虽有一定的继承性,但差异远大于相同。如果工程师一直在企业工作,后续职级的发展几乎一致。我给年青人的建议是首先看自己的性格(个性很难改变,能够适配是最佳选择)选择发展路径,如果想在公司走的长久,一般要在职业中期就要转型管理路线。大部分人在算法这条路上走不了太久,我之前在企业带的徒弟一般是三种分流方式,一种是跳槽去了其他企业,慢慢的做成了技术高管,还有一种就是回到高校去读博士了,然后再进行就业,还有一种就是跳槽到别的公司一直做算法。但我据我所知,工作到一定年限大多也慢慢的远离了算法编写,这工作确实耗脑。
通信算法工程师回高校任职一般会在电子工程学院(也有可能是计算机学院),因为要和硬件打交道,和行业的基础知识打交道。所以,有这个想法的工程师前期在企业工作期间应该多注重产品的软硬件内容,而不能只专注于算法内容。不过我们学院没有FPGA相关类知识课程,所以硬件知识也要有所侧重。当年在研发产品的时候,算法最终的载体基本上都是FPGA或者DSP。那学生毕业后没学过怎么办?大多是进入企业后现学现用,辛苦是在所难免的!我们学院有一门必修课(本科生都要学的)是关于单片机方面的,非常重要(利于本科生找工作),学院还配备了对应的实践课程,但真正能完成的学生只有寥寥数人。如果单片机学的很好,现学现用DSP肯定没问题,至于FPGA呢?还要从零开始学。早期我在企业的时候不怎么关注产品中单片机涉及的模块,最多关心到ARM涉及的内容。通信产品中用不用单片机呢?用,一般用在产品的显控模块(直白的说就是输入输出),显控模块只是产品里面一个很小的部分,也不是核心技术,本科生也可以完成这样的研发任务。
最后友情提醒一下,干技术确实累,尤其是涉及算法的工作,也许工作周期在四十岁以前就结束了。相对其他岗位而言,发展路径偏窄,太专注技术容易让人“陷”进去。做物理层算法比做网络层算法的路径还要窄,因为物理层的通用性更“弱”!那职业生涯后期到底是继续干技术还是做其他事情?请根据个人特点未雨绸缪,本人的选择是坚决离开这个行业,健康为重,然后去做自己喜欢的事情,毕竟人生就这么点时间。早期打拼是为了物质,后期为了理想而工作,生活和工作都能兼顾的方式或许可以让自己过得轻松些。