來源:我是開發(fā)經(jīng)理 2018-06-14 10:53:46
愛立信提出,重要的并不是經(jīng)驗本身,而是“努力的學習”,也就是要不斷地挑戰(zhàn)自身能力之外的東西。一些狂熱的愛好者花費了大量的時間去下棋、打高爾夫球或者玩樂器,但他們可能始終停留在業(yè)余水平上,而一個訓練有素的學生卻可以在相對較短的時間里超越他們,原因就在這里。值得注意的是,在提高水平方面,花費在下棋上的大量時間(即使參加各種比賽)似乎還是比不過專門的訓練來得更為有效。訓練的主要價值在于發(fā)現(xiàn)弱點,并有針對性地進行提高。
“努力的學習”意味著,要常常去處理那些剛好在你能力極限上的問題,也就是那些對你來說有很大可能失敗的事情。如果不經(jīng)歷一些失敗的話,你可能就不會成長。你必須不斷地挑戰(zhàn)自我,超越自己的極限。
那樣的挑戰(zhàn)有時會在工作中碰到,但也未必。將鍛煉從職業(yè)工作中分離出來,這在編程領域常被人稱為“編碼套路”(Code Kata)。
Code Kata的概念是由David Thomas提出的,他是《程序員修煉之道:從小工到專家》的作者之一。這個概念主要指的是,針對某一種特定技術或技能進行重復性的練習,從而將其熟練掌握。——譯者注
所謂套路,就是一系列的招式。這個概念借鑒于武術。
如果你想要看一些編碼套路的例子(也就是努力學習和磨練編程技能的方法),SteveYegge的文章里倒是提出了一些不錯的建議。他把它們稱作為“實踐演練”:
1.寫一份自己的簡歷。把自己所有的相關技能都羅列出來,然后把那些在100年后還用得到的標出來。給每個技能打分,滿分為10分。
2.羅列出你所景仰的程序員。盡量包括那些與你一起工作的人,因為你會在工作中從他們身上獲取一些技能。記錄下他們身上的1 ~ 2個閃光點,也就是你希望自己有所提高的方面。
3.查看維基百科上的“計算機科學”欄目,找到“計算機領域先驅(qū)者”這個分類,從這個列表中挑選一個人,閱讀他的事跡,并且在閱讀時打開任何你感興趣的鏈接。
4.每天花20分鐘通讀別人的代碼。讀出色的代碼和讀糟糕的代碼都是有益的,兩者都要讀,輪流切換。如果你無法感覺出它們之間的區(qū)別,可以求助于一位你尊敬的程序員,讓他給你展示一下什么是出色的代碼、什么是糟糕的代碼。把你讀過的代碼給別人也看看,問問他們的看法。
5.羅列出你最喜歡的10個編程工具——那些你覺得你用得最多、非有不行的工具。隨機挑選其中的一個工具,花一個小時去閱讀它的文檔。在這一個小時里,努力去學習這個工具的某個你不曾意識到的新功能,或者發(fā)現(xiàn)某種新的使用方法。
6.想一想,除了編程之外你最擅長什么事情?再想一想,你是通過怎樣的鍛煉才變得如此熟練和專業(yè)的?這對于你的編程工作又有什么啟發(fā)呢?(怎么把這些經(jīng)驗應用到編程方面?)
7.拿出一疊簡歷,并和一組面試官在同一個房間里待上一個小時。確保每份簡歷都至少被3個面試官看過,并且要給出1 ~ 3分的評分。針對那些不同面試官評判大相徑庭的簡歷展開討論。
8.參與一個電話面試。事后寫下你的反饋,拋出你的觀點,然后與主持電話面試的人聊一聊,看看你們是否達成了一致的結論。
9.進行一次技術面試,并且被面試的人應該是某個你不太了解的領域里的專家。讓他假定聽眾在該領域里一無所知,因此請他從最基礎的講起。努力去理解他所說的,必要時問一些問題。
10.有機會參與別人的技術面試。期間,你只是認真地聽、認真地學。在應聘者努力解決技術問題的同時,你也要在自己腦子里嘗試解決這些問題。
11.找到一個能和你交換實際問題的人,每隔一周,相互交流編程問題;10 ~ 15分鐘來嘗試解決這些問題,再用10 ~ 15分鐘進行討論(無論能否解決)。
12.當你聽到任何你一時之間也無法解決的面試問題時,趕緊回到你的座位上,把這個問題用電子郵件發(fā)給自己,以留作日后的提醒。在那一周里找出點時間,用自己最喜歡的編程語言來解決它。
相關推薦:
小升初試題、期中期末題、小學奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號
歡迎使用手機、平板等移動設備訪問幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點擊查看