關(guān)于黑客 - 工程師和黑客的區(qū)別在哪里?

2014年11月12日 10:27 來源:互聯(lián)網(wǎng) 作者:佚名 我要評論(0)

標簽:工程師(68469)黑客(21847)

  關(guān)于黑客

  黑客在哪里?黑客無所不在。不同于將黑客和工程師看作一成不變的性格特性,我更愿意認為黑客或工程師像是人們所戴的帽子————創(chuàng)造者尤其如此。黑客與工程師的不同在于在給定的時間、地點和情形下其本人是什么樣的人。

  在《黑客與畫家》中,保羅反對將計算機科學當作科學來對待。他寫到,黑客只想做黑客所做的事情,而不是寫論文?;旧希艺J可他的想法,在領(lǐng)域/職業(yè)心理層面,這是很重要的。作程序員的人并不妨礙他成為一名黑客,當然也不妨礙他成為諾貝爾物理學獎獲得者。

  正如前文中所提到的,黑客的特性是破舊,拒絕約定俗成的舉動往往會引起重大革新/突破。

  李納斯。托沃茲(Linux Torvalds)反感所有常規(guī)的軟件創(chuàng)造過程。他打破了以往各自為營的封閉式軟件開發(fā)模式,開創(chuàng)了Linux開源系統(tǒng),正如艾瑞克斯。雷蒙德(Eric S Raymond)在《大教堂和市集》中所描述的那樣,這是極具震撼力的革新。

  盡管如此,李納斯也并非是一個草率馬虎的程序員,事實恰好相反,他所寫的Linux內(nèi)核的源碼有著不可思議的美感。在創(chuàng)造這樣的程序時同樣需要有明確的規(guī)則、約定的方法,在Linux開發(fā)工作之余,他也可以說是一名帶著工程師帽子的開發(fā)者。

  關(guān)于角色

  六年前,我曾說過做一名黑客或一名工程師需要與生俱來的品質(zhì)。而我現(xiàn)在則認為,在不同的領(lǐng)域,不同的情形下我們有著不同的心理特征。

  創(chuàng)業(yè)公司從來不會在單個領(lǐng)域起步,例如,一家搜索引擎起家的公司既包含商業(yè)領(lǐng)域(如商業(yè)運營、業(yè)務(wù)管理),又包含軟件開發(fā)領(lǐng)域(如開發(fā)搜索引擎軟件)。

  在這里我舉兩個創(chuàng)業(yè)公司至少在兩個領(lǐng)域起步的例子。想象一下,有兩個合伙人正處在創(chuàng)業(yè)階段,兩人都是程序員且都是創(chuàng)造者類型(就是說他們喜歡創(chuàng)造東西出來),但是A比B有著更多的開發(fā)經(jīng)驗和知識,而B有著比A多的商業(yè)運營經(jīng)驗。當涉及到商業(yè)領(lǐng)域時,B通常會成為工程師角色,而A則傾向于成為黑客的角色。在創(chuàng)建一家創(chuàng)業(yè)公司的結(jié)構(gòu)或框架時,B比A知道更多關(guān)于商業(yè)運營方面的陷阱,比如B知道特定的稅必須以特定的方式繳納,但A不知道而且還會提出一些美好但違法的黑客式方法。

  然而,當涉及到軟件開發(fā)領(lǐng)域時,他們的角色將會發(fā)生轉(zhuǎn)換。例如,A有著足夠充分的理由架設(shè)桌面視頻會議系統(tǒng)來用,而缺乏經(jīng)驗的程序員可能會將此舉認為是在阻礙他們黑客式的行為。

  當涉及到單個程序開發(fā)時就更有趣了。一個人可能會以他的知識體系和工程素養(yǎng)創(chuàng)造一段程序出來,或者是提出一個工程化解決方案,然后像黑客那樣探尋這個解決方案的更多發(fā)展空間。前者的例子是,李納斯。托瓦茲以黑客方式創(chuàng)造了Linux內(nèi)核————當Linux被創(chuàng)造時是以MINIX系統(tǒng)的fork程序為基礎(chǔ)的,但同時他也做了很多精細的工程化的工作。后者的例子是理查德。費因曼(Richard Feynman)對于量子電動力學的發(fā)現(xiàn)。

  角色轉(zhuǎn)換

  當一個黑客和一個工程師在一間屋子里計劃一起創(chuàng)造一些東西出來時,可能會是誰也不服誰的狀態(tài)。盡管如此,我仍然強烈建議在初創(chuàng)公司中既包含有黑客型人才,亦包含有工程師型人才。

  依據(jù)不同的情形,創(chuàng)造者(黑客或工程師)有著不同的心理特征,這可以被很好的加以利用。在存在黑客和工程師的領(lǐng)域里,黑客能夠以革新的角度看待舊問題,尋找漏洞并做修補,而工程師能夠為黑客提供扎實的事實基礎(chǔ)。上文中的稅收例子便是說明。

  事實上,依據(jù)情境變化的角色轉(zhuǎn)換也可以很好的加以利用。保羅在《黑客與畫家》中談到黑客需要同理心。角色轉(zhuǎn)換是很好的同理心訓練。雖然角色轉(zhuǎn)換大多數(shù)時候發(fā)生在不同領(lǐng)域轉(zhuǎn)換中(比如,A是商業(yè)運營方面的黑客,軟件開發(fā)方面的工程師;B正好相反),如果初創(chuàng)業(yè)者能夠認清他們正在扮演的角色以及需要的角色,這會是很好的鍛煉同理心的機會。

  工程師可能會覺得自己多年的經(jīng)驗會被黑客忽視掉,而黑客會覺得他的能力會被工程師所設(shè)定的條條框框所牽絆。當這樣的事情發(fā)生時,其實是不錯的機會去感受彼此的角色————試著穿上別人的鞋子走走看,或許能走一英里亦或兩英里。

  關(guān)于這點,我想指出的是,我不相信每個人都有黑客的品質(zhì),總會有一些人承受不了一點點的冒險或不服從的后果。在我看來這些人可能適合生活在更大的環(huán)境中,但不適合在初創(chuàng)團隊里,創(chuàng)業(yè)團隊需要的是能夠在黑客和工程師角色之間相互轉(zhuǎn)換的人。

  在另一方面,如果初創(chuàng)團隊負責是是極為重要的軟件(比如可能會引起多人喪命的那種),那么相比黑客式思考方式,團隊需要的更多是工程師式的想法。當然,這并不妨礙一些娛樂型的黑客用像Python這樣的動態(tài)語言做出一些瘋狂的事,像是用Python控制30噸重的設(shè)備。

  結(jié)束語

  黑客早已不是什么新名詞,但黑客這個詞已經(jīng)存在許久并將存在更久。從伽利略到費因曼再到托瓦茲,總會有一些麻煩制造者伸長了脖子探尋著盒子外的世界,桀驁不馴、尋求革新。

  在軟件方面,我贊同保羅。格雷厄姆的觀點。我們生活在軟件黑客的繁榮時代,但隨著計算機工業(yè)的成熟,工程師將會逐漸成為新新人類,他們可能沒有黑客那么迷人,但他們將會是軟件的根基。

  綜上所述,最重要的是繼續(xù)努力前行,繼續(xù)努力創(chuàng)造新的事物,不管你是一名黑客還是一名工程師,因為是創(chuàng)造者(Maker)在推動這個世界發(fā)展。

上一頁123全文

本文導航