編程不需要天賦和激情

以往從來沒有一種技能被神化到這樣的高度:

你不僅得有天賦,還得具備激情,才能成爲一名優秀的程序員

好像那些寫代碼的人是早就決定幹這一行似的,“當他們還是孩子的時候,他們就打算將來去寫代碼”。如果你缺少這兩個因素之一,那麼你要麼是一個騙子,要麼不會走得太遠,不論是哪種,其實都是因爲你不適合編程的緣故。這種根深蒂固的成見不僅是完全錯誤的,而且還是有害的——但是許多成功的程序員都贊同這個觀點。

Jacob Kaplan-Moss (Django的創建者)

在這篇描述中,Jacob Kaplan-Moss指出:

神化“天才程序員”是極其危險的。一方面,它設置了極高的准入門檻,嚇跑了許多想成爲程序員的人。另一方面,它也困擾着那些已經成爲程序員的人,因爲這意味着,如果你沒有編程“天分”,那麼基本上,你將一事無成。導致的結果是,作爲一個程序員,你所有的時間都用在了學習編程和工作上,從而對生活質量產生極大的影響……(略)…….我們需要擺脫這種態度。編程只是一堆可以學到的技能,它不需要太多的天分,而且成爲一個平庸的程序並不可恥。

在他的Twitter個人資料中,他形容自己爲“不是一個真正的程序員”,以表明他對這種誤解的深惡痛絕。

Jacob Thornton(Bootstrap的創建者)

Jacob Thornton之前是Twitter的一名程序員,現在就職於Medium,並且是Bootstrap的創建者——Bootstrap在Github上收穫了超過8萬個星。他在以下對“編程神話”的採訪迴應中給出了另一個反例:

Jacob Thornton討厭計算機

他說,“我討厭計算機,”面容一本正經,完全沒有開玩笑。 “我本來打算在New School中學習社會學。”

接着他描述了他的第一份工作:

“我被僱用去做一份我甚至有點不合格的工作。每天,我都可能會被炒魷魚。我辛辛苦苦地工作,努力學習更高級的Javascript語言,因爲我不知道代碼中發生了什麼事情。” “我坐在那裏,思維放空,就是這樣,我居然搞定了。我不會被解僱了,哦也。” “我生命中最真實的時刻是當這家初創企業的整個團隊聚集在我身邊,要求一個XHR請求的時候。我從來沒有做過,我只知道那是什麼。因此我開始敲鍵盤和刷新瀏覽器,但什麼都沒有發生。我試了幾次。我開始慌了,我擔心他們會知道我是個騙子,我是濫竽充數的。突然我意識到,我已經忘了添加‘.send()’了——我添加並刷新之後,頁面出現了,然後團隊成員紛紛讚揚說‘哦,真酷!’。然後他們回到了各自的辦公桌。

這個故事聽上去感覺和“天才程序員”如何執行工作的描述無關。那麼,堅持走編程這條道路的動機來自於哪裏呢?Jacob說:

“我的動機很現實,並且當我搞不明白或某些東西在特定瀏覽器中看上去很糟糕的時候,我的那些搞前端開發的朋友會十分明確地告訴我。這真的很好。於是我開始想要編碼,以及和我的朋友一起工作。”

在他的Twitter個人資料中,他形容自己是一個“計算機loser”。他最火的Twitter帖子中他把自己描述爲“公司中最糟糕的工程師,但卻是第三酷的”。這種態度和我們對刻板的程序員的看法完全相反。

Rasmus Lerdorf(PHP的創建者)

Rasmus Lerdorf的言論經常引發爭議:

*其實我真心討厭編程,但我熱愛解決問題。

*有些人的確是真的喜歡編程。但我不理解爲什麼他們會喜歡編程。

*我不是一個真正的程序員。我會把東西扔到一塊兒,直到它能工作,然後就繼續前進。真正的程序員會說“是的,雖然它可以工作,但你泄漏了內存。我們應該解決這個內存泄漏的問題”。而我會每隔10個請求就重新啓動Apache。

從他的話中,我們很難看出他對計算機的激情。像Jacob Kaplan-Moss和Jacob Thornton,他們對神化編程嗤之以鼻,所以,Rasmus Lerdorf或許也會稱呼自己爲僞程序員。

David Heinemeier Hansson(Rails的創建者)

當被Big Think採訪時,DHH提到:

這其實挺有意思的;當我習慣於使用PHP或Java開發的時候,我總是在找別的可替代的東西。我一直在尋找另一種編程語言,另一種……不一樣的東西,在某種程度上能夠讓我覺得正在使用的語言不那麼無聊的東西。 我是絕對不相信我會成爲一個程序員的,當我用PHP和Java工作的時候。

他的自我介紹,看起來和“計算機天才”毫不相干。而且最後,他愛上的並非計算機本身,而是Ruby——這種語言的優雅。如果Ruby沒有被髮明,那麼DHH可能現在正在做完全不同的事情。

從上面這些事例中,我們證明了有無數文章都對老一套的程序員神話持反對意見。下面是幾個程序員最喜歡的笑話:摘自《關於軟件開發者的59條令人捧腹但真實的編程語錄》

*One man’s crappy software is another man’s full time job.(Jessica Gaston) 一個人寫的爛軟件將會給另一個人帶來一份全職工作。

*Any fool can write code that a computer can understand. Good programmers write code that humans can understand. 傻瓜寫計算機能理解的代碼。優秀的程序員寫人類能讀懂的代碼。

*Software and cathedrals are much the same — first we build them, then we pray.(Sam Redwine) 軟件和教堂非常相似——首先,我們建造它們,然後我們祈禱。(Sam Redwine)

如果程序員的確都有這樣多的天賦和激情,那麼爲什麼這些笑話在程序員之中會如此受歡迎?

我在一篇Medium文章中發現了一些很有趣的語錄,讓我產生了共鳴:

*總有人告訴你,你這樣做是錯的

*總有人告訴你,你不是一個真正的程序員

*擔心“極客聲譽(geek cred)”相當於慢性自殺

這篇文章無疑挑戰了我們對編程的傳統看法——成爲程序員需要天分和激情。但是我只希望對那些開始編程之路的初學者,正在懷疑他們是否適合是否合格的程序員說:多嘗試一些不同的學習方式,不要擔心什麼資格,不要輕信那些毫無根據的故事,也不要改變你學習編程的心態。不要放棄,除非你在嘗試多種不同方法之後真的依舊一頭霧水。編程不需要天賦,也不需要激情!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章