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