知乎用户 不善表达的嵌入式工程师
60 人赞同
谈谈我的理解。
(一)写在前面
鄙人大二的时候自学的TI的数字信号处理器,做了几个小项目,但总有瓶颈,觉得这里水太深,还想终身从事DSP开发行业,就报考了某学校的航海学院,选了一个做水下通信技术的导师,经历这么多年,也有自己的理解,身边也多多少少有业内人士在世界各地苟延残喘的活着,所以给题主提提建议,希望有所帮助。
(二)真的存在“DSP工程师”?
首先要明确,数字信号处理是一门非常非常基础的学科,至于说数字信号处理工程师的称呼,个人觉得不太贴切,范围实在太广,暂且理解为利用数字信号处理的知识解决问题的人吧。数字信号处理这条路到研究生阶段还要重新学习(增补知识),将自适应信号和随机信号等扩充进来作为理论基础,还增添小波,希尔伯特等多种处理手段,另外,你会发现大学期间的微积分已经满足不了后续的学习了,所以还要继续学习数学。到这里之后你会发现,原来学习的数字信号处理(本科阶段)仅仅是冰山一角,因为,本科阶段研究的是确定信号和线性时不变系统,这个确实很简单,可现实生活中没有那么多确定和那么多的碰巧,尤其是题主所在的通信行业。所以我个人觉得,作为一个“数字信号处理工程师”,把自己的理论局限于确定信号和线性时不变系统,肯定是不合格的!在这里,我推荐考研,且要考好学校。考研的目的清晰,第一,通过考研可以把数学英语好好学学;第二,可以继续深造,导师毕竟是业内人士,导师人脉帮助和你接触的人的群体进行进一步筛选。第三,你可以继续学习,来真真正正的在这个领域打好基础。 也有人说,我可以在社则者会上工作,然后自学,我想说的是,自学确实是一种能力,但你能保证一定能找到你想做的工作吗,你的发展方向必须要符合公司的发展方向,这里能自主的成分有几分呢?且社会比校园内部浮躁,多多少少会干扰你的效率。如果真的喜欢这个行业,差这两年吗?再说真有能力的人,不会被考试难住。其实本人也是工作一年后决定辞职考研的。
有了理论基础,就可以选择基于这个基础的方向,每个方向上还有自己支撑理论。比如,做图像处理,视频处理,音频处理,生物医学或者我们做的水下通信,这些所有的方向都是基于数字信号处理理论基础,然后衍生出自己领域的知识。因此,我就觉得,不应该叫数字信号处理工程师,应该叫具体方向的工程师,比如图像处理工程师,音频处理工程师。题主可以选择一个具体方向来研究,每一个方向都很有很高的研腊碧究价值,就算去公司应聘,这个薪水也是很高的。
(三)数字信号处理和数字信号处理器都叫DSP
有一些人提到嵌入式的DSP芯片,这个不要和数字信号处理混为一谈,它不是数字信号处理的专利,虽然叫做数字信号处理器,但这里边既有渊源又有差别。DSP芯片属于嵌入式范畴,驱动和开发模式和思维和一般单片机无异。只不过在硬件结构上适合运算信号处理的算法,在外设方面提供了更为人性,更方便工程的功能。一般你可以看到,控制领域也会大量应用DSP设备来跑控制领域的算法。如果要真正的作为一个所谓的数字信号处理工程师,你应该做的主要工作是面向专业领域的专业算法,对于配置DSP设备,应属于嵌入式工程师该做的事情,但话说回来,你要和这个DSP处理器经常打交道,你也同样要熟练掌握的。同样道理,FPGA也是一样。DSP无法满足工程要求的时候,刚好FPGA可以解决,可考虑作为此方案的解决方法,FPGA的独有并行机制很大的优势(举个例子,我就不拽专业词汇了,就通俗的说下,我们当初做水下无线无线通信,调制信号用DSP做的,载波出现谐波干扰,在陆地上完全可以忽略,但水下要还要考虑此频段的干扰信号对某种海洋生物的威胁,故需提纯载波信号,就是用的数字方法,但增加了算法计算量,速度上不来,导致通信失败,故换了一款FPGA)。(不要就此认为FPGA比DSP牛逼,并不是这样,抓老鼠用老鼠夹,切菜用菜刀,什么地方该用什么就用什么)。但DSP和FPGA里面的算法,原理都是一样的,只是需要变换语言,考虑指令不同,运行条件不同等等,算法核心是不变的。可作为数字信号处理工程师的你,这些算法的执行器或者说载体,是不是都应该有所掌握呢,你不能说我这套算法好使,MATLAB验证过了就OK了,移植后实际状况可能并不是那么顺利,你需要考虑这孙局薯些执行器的指令周期,内存,时序等等,或者要用他们专门的语言来翻译,所以,你要学的东西比想象中多的多。你有一身武艺,一身武功,同样的招式,要拿刀也好使,拿剑也好使,刀和剑只是工具而已,DSP和FPGA单片机就是这武器,真正做一个江湖人,刀剑都要会用的。俗话说,人前显贵,人后遭罪,这身武功并不容易,你需要投入很多很多,也许你的朋友毕业开始攒钱买房子,穿起大牌衣服,给女票买了名贵的化妆品,换了好几千元的手机的时候,你还过得如此清贫,别灰心,你会守得云开见月明的。
只想强调一点,需要功夫在里面,功夫就是时间精力金钱和你的心。速成的东西别人能速成,你也同样能速成,根本没有差异优势,而信号处理给了你这个机会,因为,没人可以速成。
(四)学习建议
至于给题主的建议,本人建议把数学学好至关重要,翻开信号处理的课程你也看到了,满篇的数学推导和证明,你需要去耐心理解这个过程,这样就需要很好的数学功底,建立好了这样的思维,你才能真正的理解这门学科,否则死记公式,为了做题,你痛苦,它也痛苦。那么多定理的出现并不是为了难为你,而是为了解决问题,因为这些看上去复杂的定理出现,才使问题变得简单,只要你用心拜读,发现这些定理真特么神奇。另外,还是建议题主考研,俗话说,师傅领进门,修行在个人。我们要入这个门,就要有这样的关系,不断的去接触这个行业的人,他们用什么软件,他们学到什么程度,你也一目了然,也知道自己处于什么位置了,也知道自己该学什么了。可以说,硕士毕业时候,本科工作两年了,可能硕士刚毕业在职场上欠缺一些经验还需要适应社会大环境而不如本科生,但十年后能一样吗?谁会在乎多出那两年的经验,又是谁基础打的牢,别小瞧这三年,年纪轻轻把基础打好才能建起高楼大厦,所以不要急。如果题主无考研打算,本科一样也有活路,目前信号处理技术处于不断发展中,但经典的也就那些,一般工程常用算法的都被下游公司(德州仪器,ADI这些)封装到函数库中,且普适性非常友好,在网站上也能获的一些网友的开源算法,能把这些经典的算法的功能,适用条件输入输出搞懂一般工程没有问题了。例如,德州仪器的DSP,数字图像处理,音频的处理基本算法都可以直接调用库的,且浮点和定点库分开,开发过程根本不需要了解算法具体如何实现,只把目标放在内存分配,库配置上就好了。我觉得,如果本科毕业能把信号处理什么功能,适用条件,输入输出掰扯明白,足以找一个不错的工作,后续通过学习和工程扩展,也会进步不少的。
(五)学历建议
另外,补充一下,TI公司招FAE已经是硕士打底,更别说进研发。如果想去大公司没有学历,门都进不去。同样是5年工作经验,含金量上肯定有差别。毕业初几年能在大公司跪舔,有大公司的背景支撑,你在以后在此行业会吃的很开,你在小公司经常听见这经理以前都是在XXX牛逼公司做过的(很可能就是一个打酱油的小角色),所以,切勿做井底之蛙,只看当下,要眼光放长,做好规划,年薪20W的在信号处理行业算是低收入人群了。有些人普遍认为,本科毕业再赚钱,读硕士后还要花钱。请改正这样的思维定式,读硕士≠不赚钱。本科教育后尤其是工科,是可以赚钱的,只要你实力过硬,可以接私活做,一个项目结清也是有几万的收入,加上努力学习得到奖学金和导师费,还有名义上的助教费,收入怎么能少呢?只是从事这类行业的人很低调,不太在乎衣食住行的质量,但这并不代表“穷”。
有很多适合本科毕业生的道路,甚至去选择这些道路比研究生去走这条道路要有优势,比如CS行业,这个上手极快,赚的也多,尤其能去那种外包公司历练几年的,那更是吃香,纯属拼工作经验与工作强度。最终,可以总结一条规律,如果这个行业需要有强大的理论背景,考研是最适合的,如果这个行业工程性强,那么就适合早早工作。就像是,通信专业,控制专业,视觉处理专业,人工智能这类的,需要强大的理论支撑,需要学习钻研,所以考研是最适合不过的了;又比如,像是开发软件C++,Java这类的,极具现实实用性,工程性极强,越早上手,做过的项目越多越好。题外话,我建议本科生毕业生能考虑C++的道路,这个老专业或许比不上当今的Java啊,安卓啊,可如果能在十年内修炼成多线程编程骨灰级的玩手,这是很有前途的。
综上,在信号处理行业,无论研究生从背景,平台,基础上,都有优势。所以建议再进一步,攻读硕士学位甚至博士,作为自己事业道路的起点。