老鳥對菜鳥的一些建議

首先聲明,我可不是要做什麼導師,這樣崇高的身份與我無緣。我害怕自己才疏學淺,而誤人子弟。導師是要李開復、唐駿之流才能做的。因爲之前在一家公司和西南大學有一些業務來往,所以應邀到西南大學做過一次講座,併爲軟件工程專業的學生開設了一學期《設計模式》課程,認識了一些熱情洋溢的未來程序員。如今,他們也踏上了工作崗位。於是,碰到了一些問題。承他們看得起,居然想到給我發郵件,讓我幫他解惑。回覆了郵件後,發現這些問題也許對很多菜鳥而言,大約會是常見的困惑。站在一隻老鳥的角度來看,我的回答或許能夠在一定程度上解決他們的困惑。至少,總結我的教訓與經驗,在學習方法上能給予他們啓發,或者說可以少走許多彎路。想當初,我才涉入這個行業時,不也希望有老鳥願意給我指導意見麼?既然如此,那就分享一下。可人老了,總喜歡教訓人,所以害怕郵件中的口吻與態度,讓人產生不滿。所以先來這一段囉嗦的聲明。

 

這位同學的問題如下:

 

我最近遇到了一些學習上的方法,想向您請教一下。
進公司實習後我發現,還是有太多太多的技術需要學習,我一直記得你曾經告訴我們的,爲了要找工作,我們必須得對一個方向夠熟練,夠精通,我一直都是朝JAVA這個方向發展的。最近我在拼命的學習一些以前沒接觸的技術,比如EJB,extjs,JSF等,雖然這些沒SSH火爆,可學習一下我想以後總會有用的,可是漸漸的我發現一個問題,就是一門技術只要我過一兩個月不用,然後人家在問起時,頭腦裏就是一頭霧水,這種遺忘性非常嚴重,比如Hibernate的validatiion,search 雖然我沒將其用於實際的項目中,但是在八月份的時候,我已經好好的學習了,而且還自己動手寫了一些demo的,可是現在讓我想的話,我完全就忘了,我看到張老師講課時說的很多技術問題非常熟悉,我想請你指導我一下,要通過哪些方法來避免我這種“遺忘性”,我知道的除了經常寫這方面的代碼和在博客上寫寫外,其它沒什麼方法了,但是如果經常這樣做,勢必又會耽誤學習其它新技術的時間,謝謝張老師在閒暇之餘花時間來看我的郵件。

 

我的回覆如下:

 

你問的這個問題很典型,我相信很多人都遇見過。事實上,我也沒有你想象的那麼厲害,很多技術我以前掌握的也會忘記。這與人類大腦的遺忘曲線有關,符合科學規律,所以不必爲此煩惱。

怎麼解決這個問題呢?我想有以下幾條:
1、一門技術必須多用才能掌握,最好的辦法是在項目中運用。如果你在真實的項目中使用了某一項技術,那麼印象就會非常深刻。即使忘記,也能很快撿起來。
2、如果要學新的技術,僅僅是爲了拓寬自己的知識結構,那肯定沒有時間對這些技術做大量的練習了。這時候,就要對技術進行分類。看你掌握這門技術的目的。如果技術僅僅是一種工具,我認爲只需要瞭解它能做什麼,就OK了。因爲即使你把它的整個使用方法搞懂,久了不用也會忘記。如果你知道這個技術能做什麼,當做項目時需要用到,再去查閱相關的文檔和資料,完全足以應付。如果這門技術非常重要,甚至有許多可借鑑之處,那麼在搞清楚它能做什麼的同時,還應該理解它的原理、思想以及實現的方法。
3、養成隨時記錄心得和教訓的習慣。不管是項目中,還是學習過程中,凡是認爲有價值之處,都有必要記錄下來。不一定要發到博客上,只要保存起來就好。不過,在保存的時候,要做好合理的分類,以便於今後查閱。不要覺得這個耽誤時間,它是非常有用的。我以前就沒有充分認識到,導致之前做的項目碰到的很多問題,當時解決了就完了。到現在都無法回憶起來了。現在的我就告誡自己,一定要做到這一點。所謂“磨刀不誤砍柴工”,耽誤的這點時間是完全值得的。如果你只是不停地學,卻不知道積累,那就和猴子掰包穀沒有什麼區別了。此外,這樣的做法還有利於磨練你的文檔編寫能力、分類和總結的能力。重新整理這些內容,也有助於你再一次理清自己的思路。真的是非常有價值的做法。我記得以前在課堂上也給你們說過。事實上,Martin Fowler的《重構》一書,之所以能寫成,就在於他遵循了這一做法。最近,我剛剛完成《重構》一書的點評,其中大量的點評內容也是我採取這種方式日積月累獲得的。
4、最後一點,是學會選擇。軟件技術實在太多。要弄清楚你自己的目標。最重要的是要確定自己的職業發展,專業的說法叫“職業生涯規劃”。是技術,管理,還是二者兼顧。然後,再有目的性的去學習知識。即使是技術領域,也有很多發展方向:網絡、數據庫、底層算法、框架、架構、UI設計,性能優化,系統集成,太多太多。不要漫無目的地學,這樣也好,那樣也好,所以都去學,結果學了又沒用上。所以,要先確定目標,然後做出選擇,再製定計劃,包括短期計劃和長期計劃。

希望這對你能有幫助。保持聯繫!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章