周立功,男,1964年3月出生,畢業(yè)于東華大學自動化及計算機系,高級工程師,中國單片機學會理事,中國海洋大學講座教授,碩士生導師,主要研究方向為嵌入式系統(tǒng)與現(xiàn)場總線,目前正在從事80C51、ARM與Nios II等軟核SoC的研究與開發(fā)。
周立功 給大學生學習arm 和fpga的建議
于初學者來說,要學的知識點很多,到底從哪里下手,人們常常感到非常迷茫。大一學生先從C語言開始入門,在大一階段由于對計算機還非常陌生,因此不可能寫出一個具有完整圖形界面的軟件,重點以“與硬件無關的計算方法、數(shù)據(jù)結(jié)構(gòu)”為基礎學習C語言,至少練習編寫一萬行C代碼,否則不會找到編程的感覺,也體會不到編程樂趣,很多人就是因為缺乏一定量的訓練,所以對編程沒有興趣,以至于未到畢業(yè)時就全部忘記了,程序設計是一項實踐性很強的實踐活動,沒有大量的實踐作為基礎是很難入門的,因此我認為編寫一萬行代碼是判定是否入門的依據(jù)。請初學者記住:當你編寫了一萬行代碼時,這是你能夠從事專業(yè)的開始,否則你不要期望在這個領域混下去。與此同時,C語言也是學習和使用Verilog的重要基礎,所以千萬不可小視C語言。更重要的是,如果你的C語言不好的話,你將來就業(yè)選擇的路子就會受到很大的限制,要么只能做硬件工程師、銷售工程師或者轉(zhuǎn)行,別無選擇!
有了一萬行編程的經(jīng)驗后,大二接著開始學習數(shù)字電路和模擬電路了,這是你的機會!將來的開發(fā)工作有幾種選擇,但這兩門都很重要,學好了你有可能成為頂尖的高手、專家和系統(tǒng)級水平的人才,即便學得不太好,你也有可能成為一個優(yōu)秀的工程師。前一篇博文講了,如果你精通了C/C++,即便你的硬件水平一般,你也可以成為一個優(yōu)秀的開發(fā)工程師,即由硬件工程師負責邏輯電路和模擬電路的設計,由你來編程——你可以編寫基于WinCE、Linux、Vxworks或者Windows等操作系統(tǒng)的程序。那么怎樣才算基本上“精通”呢?至少編寫五萬行代碼,當你已經(jīng)編寫了10萬行代碼時,可以說你已經(jīng)完全精通了,這個時候你如果有很大的造化的話,那完全取決于你當初學習的基礎是否牢固了。所以我在前面提到了,精通一門可以成為優(yōu)秀的開發(fā)工程師,但絕對不可能成為系統(tǒng)級的開發(fā)工程師,因為你的知識結(jié)構(gòu)不行。