說明
本文內容取自作者就讀研究生期間在實驗室工作時,從導師處接受的諄諄教誨。當年深感導師嚴苛,壓力甚大。如今回想,有師敬業如此,實乃大幸。
本文為求原汁原味,不進行規整或擴展,僅按時間順序一一記錄。點滴瑣碎,還請見諒。
正文
對研一研二同學的要求:
- 要求突破自己,不斷自我更新。
- 多問問題,勤於討論!實事求是。自己是什么認識就怎么說。
- 從不同角度看一個小問題,而不是立足於過於寬泛的層面。
- 先做出來,然后再適當考慮優化,構建通用平台。規划好“一切”后再動手實現的做法,其實是一種懶惰的表現!研究生重在提高能力,這種能力就是在動手做的過程中獲得的。只有做出東西,在做的過程中會不斷涌現新的想法,不斷取得進步(先實現基本的功能,再進行擴展)。
- 匯報要及時!匯報不是表現你的“成果”,現在就出“成果”說明你沒有勇於犯錯!研究生就是培養能力,不要追求什么“成果”。
- 要勇於犯錯,在錯誤中學習,提高。出問題時,把你認為“正確”的地方好好檢查一遍。
- 要動手。光動腦只會把理論做得更枯燥,只有積極動手才能找到自己的路。必須自己動手去實踐,不要等別人告訴你該干什么,怎么做。要做事,而不是等、蒙。投機、懶惰、等待“指令”只會害了自己。
- 學過的東西基本沒用,要用的東西基本沒學過。不要滿足於短期的“出色”表現,這在長遠看來很不利於個人成長。
- 不要記結論,要記原理;不要記公式,要記公式的含義。
- 向研二研三的師兄師姐請教,他們的成功和挫折都是寶貴的“遺產”(學習對問題的理解和思路)
- 盡量不要半理論半工程,否則往往兩面都做不好。
(2008.3.3)
(一)
剛開始接觸硬件時,一次就焊好板子是不可能的。焊10次后有所收獲(比如焊接的技巧,怎樣放置板子焊漆干得最快,等等),才算是有潛力值得培養的學生。10次還沒焊成功又無所獲,這學生就不適合搞科研。
首先弄清楚你的研究方向的整體面目(而不是一上來就問要做什么東西),廣搜資料並加以整理消化。網上的論文不可盲從,但別人的觀點有助於你的理解。
找到別人的程序,運行正確后試着“精簡”。先一小段一小段地減少代碼並調試,若結果出錯,則添回代碼,並着重考慮該關鍵性代碼的作用及實現功能。如此反復,直至得到“最小內核”(別人的程序往往因考慮接入平台而顯得冗長)。再以最小內核為基礎,擴展生成自己的代碼。這樣有助於深化理解對象。
不必將資料或文檔從頭至尾通讀一遍,堅決拋棄那種因為用到面向對象就捧起一本C++教程從頭看的做法。國外學生一般是用到哪塊知識再去學習哪塊。先做下去再說,在研究的過程中不斷發現和解決問題。
如掌握以上幾點,則別人需要兩三個月才能做完的事情,你一個月甚至兩三個星期就可以做完。
(二)
不要互相“攀比”,導師看重的是你是否在“前進”。原先能背20斤現在卻背不起10斤,就是“退步”;原先能背5斤現在能背起10斤,這就是“前進”。
導師讓做什么就做什么,讓怎么做就怎么做。不要認為自己有多聰明,先做好規定的任務再說,等完成任務后再嘗試自己的“構想”。想得太多就會沒有頭緒,極易走入泥潭。
討論並不是讓你意識到比別人差,而是要設法從“高手”的思路或方法中找到問題(漏洞)。要勇於和高手討論,提出問題很重要,而同別人“爭論”又可鍛煉自己的即時思考能力。
用力+方向。不能偷懶,但僅僅用力也不可取,還應時時調整方向,確保走在正確的路上。如果方向出現了哪怕很小的偏差,最終就會離目標越來越遠。並且能力越強,走得越快,錯得越多。
(三)
很多失誤其實源於對研究對象理解錯誤。思路錯了,后續工作就白做了。
提出問題很重要。連問題都提不出,還談什么解決問題。
有疑問的地方你要說清楚,你光說“不太清楚”怎么行?最起碼你要說清楚什么問題,你連問題是什么都說不清楚,別人怎么能清楚?
(四)
報告不是羅列理論的書面作業,而是向導師匯報你看/做了些什么,對哪部分有深刻體會或很感興趣,或者提出自己的見解——總之哪些工作是你自己做的!
報告應該重點寫自己的理解和體會,還有對不清楚的地方提出問題——不是那種“問答題”的形式,而是首先談你的想法和嘗試,這樣導師才知道問題出在哪里!
報告可以幾句話,也可以一兩頁,但一定要有自己的東西。如果報告中僅僅描述了自己看/做了什么,那是敷衍了事,試圖蒙混過關。
不懂就問,自以為理解的心態很可怕。有不明白的地方就問導師,在互相探討中明晰概念。自己不懂還不問,只顧悶頭想,這樣能進步嗎?
(2008.3.7)
“對比”的學習方法:先不看別人的方案,根據需求自己設計,然后與別人的設計對比,明白自己方案的優缺點。
別人的程序哪怕通過了,也不能說明你通過了。必須重新編寫代碼。閱讀別人的東西時一定要提出問題,否則相當於沒看。
(2008.3.17)
先有電路設計思想,再學VHDL。反之很容易走彎路。
看你做出了什么,而不是你知道什么。做不出東西,一切都是假的!
把所有東西都看完整,那你還做什么?邊看邊做,簡單地實現功能,在實踐中學習。把所有東西都看懂還是做不出來,只有在“做”的過程中才能弄懂。要的是實踐!
別找復雜的做,從基本的簡單的做起。邊做邊想。再時時回頭琢磨琢磨,總之,千萬別想着把東西都看懂再開始做。
把協議用筆寫在紙上清楚地描述出來,講給導師聽。
把能分析的分析透徹,不能分析的不要瞎分析。不能因為這塊分析不了做不出來,就認為所有部分都分析不出來,做不了。先做自己能做的!
(2008.3.18)
做不出來很正常,做出來就是異常。你要放低姿態,就當自己很笨,從頭虛心學習。
導師要看你做了什么,不要給導師說看了多少多少——導師不可能打開你的腦子看看你是否掌握了。
能提出問題當然最好了,也值得鼓勵,只是不要一個人瞎琢磨,你的水平還很不夠哪。如果你都能看懂,那還不如直接去讀博士。把能搜集到的資料都搜集起來,看看他們是怎么想怎么做的。然后將你的疑問和大家討論!
用硬件設計的思想編程。比如CRC-16,硬件邏輯電路實現應該不復雜,而從純編程的角度仿真實現,可能會走彎路。其實現在就可以在編程時兼顧硬件設計思想。
(2008.3.24)
要想走得更快,就得常常總結以往的經驗教訓,不在同一個地方再跌倒。可以走快,但每一步都不能省。
轉換思路,換幾個角度思考。把自己融入所做工作中,而不是作為一個旁觀者想當然。
通過提高能力來解決問題,而不是看別人的東西。求人不如求己。
勿輕下結論,盲目自信。千萬不要過於相信自己的結論和認識,往往錯誤都出在這里。
(2008.4.14)
要有偷懶的想法,但不要有偷懶的行為。
不清楚的地方反復思考不得解,則要么討論要么放下。不需要弄清楚的地方不要去深究,以免誤了整體。
用最熟悉的方法迅速做出東西,再通過分析學到知識。
不懂馬上就問!一定要多問!哪怕別人不懂,也可能從最根本、最科學的角度提出問題,而這問題也許正是你所忽略的。
做工程不要輕易下結論。遇到問題不要想着去解釋,要去分析問題所在。你的解釋往往成了“借口”,掩蓋了實際問題。
理論部分包括Matlab仿真,盡量有自己的東西,比如別人的設計是先A后B,你先B后A,結果效果相當或更好。工程部分主要是FPGA。先保證工程,因為板子調試很困難,而程序仿真幾乎人人可做。
盡量不要花費精力去優化,沒時間也沒有相應的經驗。
效果+速度!
(2008.5.11)
先把別人的程序過一遍,不要莽闖硬干,這樣效率很低。先做出來再說!
盡量用VHDL,而不是電路圖,因為后面要進行電路集成。
狀態機狀態盡量不要用枚舉型。用one-hot編碼更省資源。
看資料時特別注意圖表!
如果信號起始就有延遲,可以等一小段時間讓它穩定后再讀寫。
不要單步優化來優化去,能用就行,先把工作完成再說!
用VHDL做的可以在Matlab中仿真一下,分析比較一下。
用功努力學習本身是個優點,但若用錯了地方,就成缺點了。不要只按自己的想法悶頭去做,要多討論,尤其是跟導師,經過導師認可后再做可以少走很多彎路。
大家總希望通過自己思索“學”到東西,但這樣恰恰阻礙了學習。你們缺乏經驗,為什么不跟別人討論,借鑒別人的成果?這樣才能事半功倍!
自己“摸索”其實大多是啃書本,這還不如與別人討論。與人討論不僅可能解決疑難,而且可能帶出自己沒想到的新問題——這就是進步!
明確目標。直指目標,無關的不要看!
(2008.5.27)
邊學邊問,不要認真過頭。
首先弄清端口,再看電氣特性,不要費大力自上而下做工程。看芯片!
測試報告(測試性能):
1. 目的;
2. 思路;
3. 步驟;
4. 每步結果;
必須可執行!不要使用別人的論文結果,這與復制粘貼沒什么區別。應該自己編寫可運行的程序,設計可執行的電路...
不要用搞理論的思路做工程。理論要求嚴謹,工程則要求實現。
如果看書看了兩三個小時還沒有眉目,就趕緊找導師討論!
不討論不請教不互動怎么學習?光知道埋頭工作那還讀什么研究生?
你不對自己負責,導師怎么對你負責?
有的同學覺得導師的管理方式不適合自己,但“適合”就意味着你沒有改變,沒有改變就意味着學習中沒有進步!
討論不在於解決問題,而是發現新的問題,產生新的思路。
與其給別人“灌輸”你的思路,不如征求他們的意見,看看他們是怎樣處理類似的問題。
如果,您認為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。 如果,您希望更容易地發現我的新博客,不妨點擊一下左下角的【+加關注】。 如果,您對我的博客所講述的內容有興趣,請繼續關注我的后續博客,我是【clover_toeic】。 本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 |