周末跟曾經的一位程式員同事聊天,他說他貌似遇到了技術的瓶頸了,最近一直在刻苦攻讀,希望可以突破自己取得進步。有時候想想自己還挺慚愧的,高手們況且都還在不斷的努力,自己的日子過的總是有點太安逸。我們總是在清醒的時候,喜歡為自己制定計劃,每天要完成多少行代碼,多少天要看完一本技術方面的書,但是計劃總是沒有辦法實現,因為我們有一個口頭禪叫”沒時間”。
編程其實沒有捷徑可走,雖然你可以花很短的時候完成一本速成教材,但是你以後解決你遇到的問題時間肯定要比你學習的時間多的多,我們每天的工作就是新的練習和挑戰,我們要儘可能的再平時認真對待我們遇到的問題,一個一個的攻克難題,實現量得積累,把我們的無知和醜陋都暴露在平時,在關鍵的時候,我們才能實現質的突破。那麼作為一名軟體開發人員,我們應該知道如何進行練習?如何提升自己的水平?如果把這個問題展開,那就太大了,我覺的我可以出本書來討論了,在這裡我只簡單的跟大家分享下,我的感觸在四方面進行練習和提高:
A.極限練習。
B.技巧練習。
C.模仿他人。
D.即興思維。
一、極限練習
人無論是運動還是思維都會有自己的一些極限值。我小時候體育成績不多,1000米跑步成績還不錯,很多同學向我請教經驗,有的說跑久了呼吸吃力。有的說跑久了肚子疼。老是說,其實我也一樣,每次跑一段後就會發現自己,呼吸困難,心跳劇加。這個就是我們說的個人的運動極限,如果你能堅持下去,反覆的練習,這個極限出現的時間,就可以往延遲,你的運動能力就能提升。如果你遇到的極限就放棄了,那麼你永遠都沒有進步。
編程也是如此,我們在工作中總會遇到大大小小的麻煩,你會為這些麻煩而頭疼嗎?你可以選擇把這些問題放一放,等別人解決了自己再去copy下,也可以去請教‘百度’馬上把問題也解決掉。但是這不是最好的解決辦法,我很反對程式員們在自己連問題都沒有看清楚,想都沒有想的情況下,就去百度或者CSDN.編程的工作,就是用人腦去控制電腦的過程,很多人都不願意讓自己的大腦裝些知識,這麼問題都去請教,雖然看上去試謙虛好學,實質上確是思維懶惰。我在這裡並不是反對大家多提問,多交流,而且希望大家可以在開始提問之前,把問題盡全力想清楚透徹,多嘗試幾次,挑戰下自己思維的極限,不要以為頭大就放棄了一次提升自己的機會,紙上得來終覺淺,絕知此事要躬行.
二、技巧練習
你寫的代碼可以最佳化嗎?你喜歡的程式設計語言支援Regex嗎?你是不是創造了很多不必要的冗餘代碼,你會使用API嗎?你掌握了你喜歡的程式設計語言的多少知識?多線程會嗎?同步呢?我們每天都在至少做8小時的工作,你有沒有想過在通過技巧的提高,對過去知識的總結,用6個小時去完成過去8個小時的工作?為自己贏得兩個小時的休息時光,去維護自己的學習手冊 。
三、模仿他人
如果你沒有看過或者用過別人的原始碼,甚至連hello world 都不知道的,請跳過該節。像練字一樣的,程式也可以臨摹。你可以去一些開源社區,挑選你喜歡的任務或者功能來練習。也可以去下載一些源碼,理解別人是怎麼做出來這樣的功能的,然後把源碼刪除,自己重新做一個相同功能的,或者尋找不同的風格或者用不同的程式設計語言來實現。你甚至可以在網路上找一個自己喜歡的小軟體,嘗試著去實現這個軟體。這些都是練習,可以培養你在最快的時候裡弄清楚需求,培養你讀懂別人代碼的速度,培養你思維的活躍度,快速的完成開發。
BTW,我前幾天上網發現了一個非常不錯的部落格,我確定要把博主的全部文章中技術代碼都實現一次。做為我4月的一個任務。:)
四、即興思維
這一點的練習跟人的創新能力息息相關,你知道你喜歡的語言編出的最小的應用程式是多大嗎?當你的同學,同事向你求助的時候,你會以最快的速度拿出解決方案嗎?難道你沒有發現這些豆是很好的練習和挑戰,這些都是你作為一個程式員的責任。在緊急的關頭,以優秀並且迅速的編程能力來滿足需求,這是一種能力。
繩鋸木斷,水滴石穿,剛才說的這些練習都不一日之功,羅馬也不是一天修成的,日積月累你才會發現原來自己在成長了。大家要勤加修鍊!!
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/GODYAD/archive/2011/03/28/6284835.aspx