來(lái)源:我是開(kāi)發(fā)經(jīng)理 2018-06-14 10:53:46
我之所以喜歡Steve開(kāi)出的這個(gè)清單,是因?yàn)樗瓷先ズ苋。有些程序員一想到“鍛煉”,總認(rèn)為就是一些編碼上的難題。但在我看來(lái),編程更在于人,而不是代碼。因此,通過(guò)解決世上所有的、并且晦澀的編程面試題目,在提高你的個(gè)人能力方面,這種方法是有局限的。
關(guān)于“努力的學(xué)習(xí)”,我也很喜歡PeterNorvig在“Teach Yourself Programming in TenYears”(花10年時(shí)間自學(xué)編程)一文中提出的諸多建議:
1.與別的程序員交流。讀別人的代碼。這比任何書(shū)籍或培訓(xùn)課程都更重要。
2.動(dòng)手寫(xiě)程序!最好的學(xué)習(xí)方法就是邊做邊學(xué)。
3.在本科或研究生的課程中學(xué)習(xí)編程課程。
4.找一些項(xiàng)目來(lái)做,并且需要與其他程序員形成團(tuán)隊(duì)來(lái)合作。在項(xiàng)目的進(jìn)行過(guò)程中,學(xué)會(huì)辨別最出色的程序員以及最糟糕的程序員。
5.在項(xiàng)目中跟隨別的程序員一起工作,了解如何維護(hù)那些不是你寫(xiě)的代碼,并且學(xué)習(xí)如何寫(xiě)出利于他人維護(hù)的代碼。
6.學(xué)習(xí)多種不同的編程語(yǔ)言,特別是那些與你現(xiàn)在所熟悉的語(yǔ)言有著不同的世界觀和編程模型的。
7.了解硬件對(duì)軟件的影響。知道你的電腦執(zhí)行一條指令需要多少時(shí)間,從內(nèi)存中取出一個(gè)字(在有緩存或沒(méi)緩存的情況下)需要多少時(shí)間,在以太網(wǎng)(或者因特網(wǎng))上傳輸數(shù)據(jù)需要多少時(shí)間,從磁盤(pán)中讀取連續(xù)的數(shù)據(jù)或者在磁盤(pán)上跳轉(zhuǎn)到另一個(gè)位置需要多少時(shí)間,等等。
你還可以從Dave Thomas的21種實(shí)用的編碼套路中獲取靈感(CodeKata.com),或者你更愿意加入一個(gè)你家當(dāng)?shù)氐?ldquo;編程武館”(CodingDojo.org)。
對(duì)于“努力的學(xué)習(xí)”,我無(wú)法像Steve,Peter或者Dave那樣提供一個(gè)長(zhǎng)長(zhǎng)的建議列表。我遠(yuǎn)不如他們有耐心。實(shí)際上,在我看來(lái),“編程套路”只需兩個(gè)招式:
1.寫(xiě)博客。我在2004年初創(chuàng)辦了CodingHorror.com博客,作為我自己努力學(xué)習(xí)的一種形式。它在一開(kāi)始很不起眼,到后來(lái)成為我職業(yè)生涯中做過(guò)的最重要的一件事。所以,你也應(yīng)該寫(xiě)博客。最后“聞達(dá)于天下”的人,往往就是那些能夠有效書(shū)寫(xiě)和溝通的人。他們的聲音最響亮,是他們?cè)谥贫ㄓ螒蛞?guī)則,并且引領(lǐng)世界的潮流。
2.積極參與著名的開(kāi)源項(xiàng)目。所有的高談闊論聽(tīng)起來(lái)都很好,但是,你是一個(gè)大話(huà)王還是一名實(shí)干家呢?別光說(shuō)不練,這個(gè)非常重要,因?yàn)槿藗儠?huì)用你的行動(dòng)來(lái)衡量你,而不是你的言論。努力在公眾面前留下些實(shí)實(shí)在在有用的東西吧,到時(shí)候你就可以說(shuō),“我在那個(gè)項(xiàng)目中出過(guò)力。”
當(dāng)你能編寫(xiě)精彩的代碼、并且能用精彩的言辭向世人解釋那些代碼時(shí),到那時(shí)候,我會(huì)覺(jué)得你已經(jīng)掌握了最牛的編碼套路!
相關(guān)推薦:
小升初試題、期中期末題、小學(xué)奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號(hào)
歡迎使用手機(jī)、平板等移動(dòng)設(shè)備訪問(wèn)幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點(diǎn)擊查看