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啊,安卓啊,可如果能在十年內修煉成多線程編程骨灰級的玩手,這是很有前途的。
綜上,在信號處理行業,無論研究生從背景,平臺,基礎上,都有優勢。所以建議再進壹步,攻讀碩士學位甚至博士,作為自己事業道路的起點。