Yipit聯(lián)合創(chuàng)始人Vacanti:我是如何學(xué)習(xí)編程的
Vinicius Vacanti
回到2006年,那時(shí)候我還在干一份金融相關(guān)的工作,趁著休息時(shí)間,我偷偷溜出來(lái)去曼哈頓市中心的書(shū)店閑逛。茫然的翻看著眼前的各種計(jì)算機(jī)書(shū)籍。 《學(xué)習(xí)HTML》,《24小時(shí)精通Java》,《Javascript入門(mén)》以及各種《一步一步學(xué)XX》這樣的書(shū)籍,讓我不知所措。
一年后,我正準(zhǔn)備要辭去金融工作,自己創(chuàng)立一家技術(shù)公司。所以我決定自己學(xué)習(xí)編程。當(dāng)我再次去那家書(shū)店的計(jì)算機(jī)圖書(shū)區(qū)域,依然讓人眼花繚亂的書(shū)架在我眼中變得空曠了——我自己做了研究,我要看的是“LAMP”相關(guān)的書(shū)——于是我就進(jìn)拿了一本《Apache+MySQL+PHP》,翻看了幾頁(yè)之后就回去工作了。
實(shí)際上我并沒(méi)有學(xué)習(xí)什么編程。我只是晚上和周末試圖自學(xué)。在休假的時(shí)候像模像樣帶著我的編程書(shū)。盡管我做完了所有練習(xí),也寫(xiě)了諸如“to-do”和“blog”這些應(yīng)用,但我并沒(méi)有真正學(xué)會(huì)。
2007 年夏天,我辭掉工作開(kāi)始創(chuàng)業(yè)了。我們將首個(gè)創(chuàng)意產(chǎn)品原型外包出去了,這樣一來(lái),我就能專注與如何獲取客戶與商業(yè)拓展。外包團(tuán)隊(duì)會(huì)注重產(chǎn)品代碼質(zhì)量,直到我們招到了 CTO。
然而九個(gè)月以后,我發(fā)現(xiàn)我的想法行不通。接包方并沒(méi)做好,無(wú)論我們?cè)趺幢M力了,都沒(méi)有找到合適的 CTO 人選。
為了公司能繼續(xù)做下去,我只有真正去學(xué)習(xí)編程了……
所以在2008年初,我又到了曼哈頓的“Barnes and Noble”的計(jì)算機(jī)圖書(shū)區(qū)。這次我挑了一本『學(xué)習(xí)Python』,然后就直接回家了。
這次我一點(diǎn)也不興奮,而是沮喪。
如果我不親自學(xué)習(xí)編程,我的公司就完了。我又得繼續(xù)干回金融的老本行。我不想讓我的家人和朋友看到我放棄。那樣我就完全失敗了。
三個(gè)月以后,我不僅寫(xiě)了一本書(shū),還重寫(xiě)了我網(wǎng)站的原型(之前的外包花了六個(gè)月才寫(xiě)完)。我自己動(dòng)手將我的網(wǎng)站架設(shè)在我自己建設(shè)的服務(wù)器上,并且以小時(shí)為單位,迭代的增加新功能。我學(xué)會(huì)編程了。
雖然我并沒(méi)有打算做一個(gè)Google的工程師,但我還是可以把我們?nèi)魏嗡枰臇|西做出來(lái)。幾年之后,Yipit上線了,現(xiàn)在是一個(gè)有25名員工,已獲風(fēng)投,很快就將盈利的創(chuàng)業(yè)公司。
為什么我這次嘗試學(xué)習(xí)編程和前幾次如此不同呢?其實(shí)原因很簡(jiǎn)單:我沒(méi)有其他選擇。
說(shuō)真的,學(xué)著寫(xiě)自己的網(wǎng)站原型非常艱苦。我得不停第學(xué)習(xí)各種技術(shù):HTML/CSS、MySQL,Python/Django、Javascript、AJAX、Nginx 等等。我?guī)缀醪煌5卦贕oogle搜索錯(cuò)誤信息,期望Stack Overflow上有人已經(jīng)解決了我的問(wèn)題,并且我能理解那些答案。
我發(fā)現(xiàn)有兩類(lèi)人是能挺過(guò)那些艱辛的:
- 那些真的特別喜歡編程的人。如果你現(xiàn)在不是一寫(xiě)代碼就興奮的話,那很可能你不是那種人。
- 那些必須寫(xiě)代碼才能達(dá)成目標(biāo)的人。他們 寫(xiě)代碼不是因?yàn)闃?lè)趣。他們寫(xiě)代碼是因?yàn)樗麄儽仨氝@么做。他們也許享受過(guò)寫(xiě)代碼的快樂(lè)(實(shí)際上大多數(shù)代碼的人都感受過(guò)這種快樂(lè))。但這種快樂(lè)和上面第一條提 到的快樂(lè)不同,因?yàn)樗麄兪枪ぷ餍枰?,要不就是他們想做的東西,沒(méi)人給他們做,只有自己動(dòng)手。
所以如果你打算學(xué)習(xí)編程,那就不只是買(mǎi)一本書(shū),或去上個(gè)課程那樣。
如果你真想學(xué)編程,你應(yīng)當(dāng)做兩件事:
- 現(xiàn)在開(kāi)始想一個(gè)項(xiàng)目,必須是你確實(shí)特別想實(shí)現(xiàn)的項(xiàng)目,開(kāi)始學(xué)習(xí)所有要實(shí)現(xiàn)這個(gè)項(xiàng)目所需要的技術(shù)。
- 把自己放到一個(gè)除了這個(gè)項(xiàng)目實(shí)現(xiàn)沒(méi)有其他選擇的情況中(譯注:也就是咱們常說(shuō)的『置之死地而后生』)。
原文鏈接:http://viniciusvacanti.com/2013/07/30/why-you-will-never-learn-to-code/




















