轉自周立功blog 對于初學者來說,要學的知識點很多,到底從哪里下手,人們常常感到非常迷茫。大一學生先從C語言開始入門,在大一階段由于對計算機還非常陌生,因此不可能寫出一個具有完整圖形界面的軟件,重點以“與硬件無關的計算方法、數據結構”為基礎學習C語言,至少練習編寫一萬行C代碼,否則不會找到編程的感覺,也體會不到編程樂趣,很多人就是因為缺乏一定量的訓練,所以對編程沒有興趣,以至于未到畢業時就全部忘記了,程序設計是一項實踐性很強的實踐活動,沒有大量的實踐作為基礎是很難入門的,因此我認為編寫一萬行代碼是判定是否入門的依據。請初學者記住:當你編寫了一萬行代碼時,這是你能夠從事專業的開始,否則你不要期望在這個領域混下去。與此同時,C語言也是學習和使用Verilog的重要基礎,所以千萬不可小視C語言。更重要的是,如果你的C語言不好的話,你將來就業選擇的路子就會受到很大的限制,要么只能做硬件工程師、銷售工程師或者轉行,別無選擇! 有了一萬行編程的經驗后,大二接著開始學習數字電路和模擬電路了,這是你的機會!將來的開發工作有幾種選擇,但這兩門都很重要,學好了你有可能成為頂尖的高手、專家和系統級水平的人才,即便學得不太好,你也有可能成為一個優秀的工程師。前一篇博文講了,如果你精通了C/C++,即便你的硬件水平一般,你也可以成為一個優秀的開發工程師,即由硬件工程師負責邏輯電路和模擬電路的設計,由你來編程——你可以編寫基于WinCE、Linux、Vxworks或者Windows等操作系統的程序。那么怎樣才算基本上“精通”呢?至少編寫五萬行代碼,當你已經編寫了10萬行代碼時,可以說你已經完全精通了,這個時候你如果有很大的造化的話,那完全取決于你當初學習的基礎是否牢固了。所以我在前面提到了,精通一門可以成為優秀的開發工程師,但絕對不可能成為系統級的開發工程師,因為你的知識結構不行。 最好在學習數字電路時購買一個99元的EasyFPGA030開發學習板,這個板子是我們開發的,但這個價格是沒有利潤的,不要認為我是在做推銷,我們推出這個產品完全是針對大二學生的,希望有更多的大二學生提早醒悟,能夠在學習數字電路時同步學習FPGA和Verilog,強化課程之間的關聯。筆者雖然是一個企業家,但也有一份愛心和社會責任感,為社會做出自己的貢獻同樣也是企業家的“銷售業績”,我們為這個開發板撰寫了30萬字的配套資料和適合各種水平的范例,也投入了大量的精力錄制Verilog語言視頻講座,這些都是超值和免費的。與此同時從2009年開始著手針對大二和大三學生舉辦FPGA大賽,以提高在校大學生的興趣,讓那些覺悟者進一步提高自信心,找到自己未來的坐標。學好數字電路和模擬電路以及FPGA應用技術,除了成為電子產品開發工程師之外(高附加值的嵌入式系統產品幾乎離不開FPGA),還有一個就業方向就是號稱“金飯碗”的集成電路設計。 作為初學者,在學習《電子技術基礎(數字部分)》時同步學習FPGA與Verilog技術的重點是快速入門和打下一定的基礎,根據配套的教材和數字電路教材的內容將基本的數字電路用FPGA實現即可,這是本階段的學習目標,不要將學習高深難度的應用技術作為重點。并利用課余和暑假期間的空余時間,將一些圖書上現成的使用數字電路實現的例子用FPGA來完成設計即可,比方如何使用FPGA實現一個計數器,并動手做出來。到大三階段在做出選擇,到底是選擇成為一個專業的FPGA應用設計工程師、還是嵌入式系統與FPGA混合應用系統設計工程師或集成電路開發工程師,以自己的興趣和志向為基礎而定,所以在學習嵌入式系統技術的同時學習FPGA,兩者之間并不矛盾。 最好在大一開始學習單片機,這就是筆者為何撰寫《新編電類專業計算機基礎》這本圖書的原因(詳見破解電類專業“就業難、人才荒”的解決方案!(4))。因為大一不學習單片機,后面的課程都沒有辦法學好。對于大一學習單片機,很多老師不去用心研究學習方法和教學規律,反而搬出一大堆理由來“嚇唬”人。筆者當年僅僅是一個技校生,在完全沒有指導老師的情況下,也找不到可以參考的技術資料,只是憑著偶爾看到一篇報道羅伯特設計的Altair8800計算機就做出了一臺不需要工作軟件的計算機(改進型的Altair-80C31電路詳見《新編電類專業計算機基礎》教材)。要相信現在公開的信息、資訊條件、人們的聰明智慧與教師的力量,因此大學本科生在大一階段學會單片機是非常容易的一件事情。 有了單片機基礎之后,在大二階段學習數字電路與模擬電路的同時,結合單片機學習接口擴展技術與模擬前向通道數據采集技術,并編寫相應的程序實現一個一個的小系統設計,大三時根本不再需要學習所謂的接口技術與微機原理了。針對數字電路與模擬電路筆者準備寫作一套小系統設計與制作配套圖書,將前后之間的課程也同步和關聯起來,期望進一步提高大學生的動手能力。 有了大一、二階段強化訓練,后續的很多課程度可以理論與實踐并重地學習,比方目前大學開設的《自動控制理論》幾乎都是空對空地教學與聯系,如果結合自動控制理論的教學,讓學生學習設計一個自動穿越迷宮的電腦鼠,并舉辦相應的大賽,則能夠很好地將嵌入式系統應用技術、數字電路與模擬電路、計算方法與數據結構、機構設計......相關課程有機地結合起來,學生的興趣將大大地得到提高。 當學生有了學習的興趣和動力之后,教學勢必由老師個人在課堂上演“獨角戲”的場面轉變為研討會,學生也一定會竭盡全力由被動學習向主動學習轉變,這就是教育要達到的目標,所以我們不能一味地指責學生不好學。作為老師我們一定要思考和拿出行動,讓學生喜歡并愿意向您學習。事實上學生的未來完全取決于老師的引導,現在教師隊伍存在的很大毛病就是將責任推向擴招和學生不好好學,擴招有沒有問題?當然有,但作為教師我們做得怎么樣呢?我們是否在教學上做出了巨大的努力,這需要我們捫心自問。 學生不好好學,這也是事實!但也是表象,我們要思考他們為什么不好好學習?我們應該怎樣才能讓他們好好地學?作為老師,第一不能給學生劃定考試范圍,第二學生缺課要堅決扣分,如果做到這兩點基本的要求,學生不好好學就制度處理,我想效果會有很大的改變。當然就業難的責任也不能完全推給老師,但老師們應該做到自己該做到的,因為家長都希望老師們對他們的子女嚴格要求,更迫切的需求就是讓他們的子女學到真本事,他們肯定支持教師的行動。 進入大三階段則需要有選擇地重點學習嵌入式操作系統原理與編程、嵌入式系統與FPGA的混合系統設計或者全力以赴鉆研FPGA應用技術等技術方向,大四階段就可以真刀真槍地完成一個漂亮的畢業設計,并能夠寫出一篇比碩士水平還要高的論文。 |