首先我們要知道,在程式設計師這個職業中,究竟是天賦重要還是興趣和努力重要?
而我的回答是,說天賦重要的人,只是在為自己不如別人刻苦而找出的藉口。我最近也讀了很多有關如何提升自我水平的文章,大部分文章以K. Anders Ericsson的研究結論為出發點的文章,也就是說天才的成就,雖然和他的天賦有一定的關係,但心理學家越是深入考察天才們的人生經歷,就會發現天賦到了後期它的作用會越來越小,而後天儲備的作用卻越來越明顯。
我發現大多數人提升的程式設計水平,所推薦的方法是一些很基礎的事情。如,閱讀程式碼、理解程式碼、編寫程式碼、參加專案、討論程式碼等等……當然,這些作法確實能夠幫助程式設計師提升水平,但其實際效果顯然是非常小的。
下面我會結合自己學習程式設計的經歷,跟大家聊聊其中的優勢與弊端:
1.透過程式設計競賽來實踐
#我會參加各類程式設計競賽,整體來講,用比賽來學習新語言並不現實。它提供的回饋循環較弱——我們只能了解到自己的程式能否正確輸出,但設計流程不會受到評判。這種方法只能幫助大家了解新的演算法或特性,但在實務層面來講,效果偏弱,它更著重「表現」而非「實踐」。
2.透過線上課程學習提升
網路上有很多精華的教學可以學習,有很多大牛分享出來的最新的技術和開發經驗,對自己的水平提升非常有作用。這裡強烈介紹php中文網的線上影片課程,他們每週都會推出一門最新的視頻課程,這裡有php中文網自己原創的影片也有一些知名機構和個人的視頻,關鍵都是都是免費的,這些精品課程對我的開發水準提升非常有幫助!
3. 閱讀關於程式設計的書籍
閱讀相關書籍能夠幫助我們快速提升知識儲備,因此有關「水平提升」方案都會有這項要求。在這裡推薦大家5本非常棒的程式圖書,這些精華書籍都實實在在地給了我極大的幫助。它們值得反覆閱讀,而且每次都能讓我在軟體工程上獲得更深入、更具穿透力的見解。如果你還沒讀過這些書,那你還在等什麼呢?
這5本是:
《代碼大全(第二版)》
#《點石成金:訪客至上的網頁設計秘笈》(即《Don' t Make Me Think》)
《人件》
《程式設計師修練之道:從小工到專家》
《軟體工程的事實與謬誤》
4.學習快速搜尋技術、手段
作為一個好的程式設計師,不只是技能的問題了,而你尋找資訊的技巧也非常重要,而這個趨勢會越來越明顯。你應該學會,如何接近特定的搜索,以及了解自己實際上想查些什麼,資訊篩選可以透過組成思維知識圖譜來提升。最後搜尋多了,經驗上去了,就知道一些高品質的網站和一些通常的說明文檔位置,使得你的問題的求解更加容易,包括像應該使用哪種搜尋引擎(提示:普通的搜尋引擎不一定就是最佳選擇),使用普通搜尋引擎前應該訪問哪個網站,甚至是應該到哪個論壇去尋求幫助,等等。
5.幫助別人
如果可能的話,幫助那些尋求幫助的人。這是一件很好的事情,也是聰明人的做法。教導別人始終是學習一切事物的最佳方法之一。記住,你所學到的一切都是你從別人或別處學到的;因此請嘗試一下,每天盡量花一點時間試著回答網站上的問題,其他網站的也可以。就算讀讀其他人的回答,你也可以學到很多。
6.多編碼才是王道
研究表明,要成為一名“專家”,這至少需要花費10年的時間,或者10000到20000小時的刻意練習的時間,做幾年程式設計師是不夠的。
想在30歲左右成為高階軟體開發工程師?要嘛儘早接受教育/培訓,要嘛你得願意在閒暇時間進行大量的工作、閱讀和練習。我從高中開始編程,也犧牲了許多休息時間去追蹤產業發展、學習新技能等等。結果,我獲得中級和高級程式設計師的時間就比我的大部分同事都要早得多,隨著時間的推移,這些就轉化成為寶貴的經驗。
7.看看高階程式設計師的程式碼
#在工作中看看高級程式設計師寫的程式碼,然後問他們為什麼以某種特別的方式來完成這個項目,也可以學習他好的程式設計習慣,從中得到反思。但值得注意的是不要生搬硬套別人的東西;你要能領會到哪些是能行的通的,哪些是有道理的,然後再模仿人家,並不斷摸索適合自己的語言。
8.態度是關鍵
如果你不喜歡自己的工作,且目前的水平還是初級,那麼如何成為中級的水平或讓情況有所好轉,不妨換工作或改職業吧。反過來說,如果你喜愛所從事的工作,那就好!少一點浮躁,沉下心來體會技術的真正精髓,踏實的做,最終會有一個好的歸宿。只要你堅持下去,我保證你能成為更好的程式設計師。
每個人都有自己成長的方式,以上建議僅作參考,祝你能夠早日找到一條屬於自己的光明大道!
本文來自php中文網網友西風投稿!轉載請註明!