程序員、黑客與開發(fā)者之別
50 2017-04-19
程序員、黑客與開發(fā)者究竟有何區(qū)別?這個問題往往會引發(fā)踴躍的討論與辯論。但是我看到的很多說法往往至少在一個重大方面是有瑕疵的,所以在此我愿給出我的定義,希望這個定義能夠更準確些。
程序員是能夠通過操縱計算機代碼解決問題的人。他們的技能水平可高可低—從掌握基本腳本的入門級到可利用任何一門語言的絕對巫師都算是。黑客是做東西的人。在本文背景下,是指通過對計算機編程做東西的人。這是對這個術(shù)語的原創(chuàng)、純粹的定義,比方說,你有了一個想法以后就設(shè)法“解答”某個東西讓它可以工作。這個詞也可用到修改東西使其功能發(fā)生重大改變的人身上,但是不像前面的定義用得那么多。開發(fā)者是正規(guī)培訓的程序員。他們并不僅僅要解決問題或者創(chuàng)造東西,而是按照一套設(shè)計和實施原則去做事。這些事情包括性能、維護、伸縮、健壯性以及安全等。簡而言之,這三者都利用代碼去解決問題。程序員是一個涵括性術(shù)語,帶有問題解決者的含義,黑客是創(chuàng)造者/多面手,開發(fā)者是正規(guī)培訓的程序員,他們不僅解決問題,而且是采用(很可能是通過正規(guī)教育學到的)結(jié)構(gòu)化和按照規(guī)定的方式去做解決問題。
小編關(guān)系一個人可以是上述三種角色的組合。以下就是這三者的相互關(guān)系
黑客和開發(fā)者都是程序員許多程序員,甚至開發(fā)者的創(chuàng)意都不足以被視為是黑客許多程序員,甚至也包括黑客,其教育程度或者經(jīng)驗均不足以被看作是開發(fā)者。理想情況下一個人當然想同時成為這三種角色,比方說足夠有創(chuàng)意成為一名黑客,受到的正規(guī)訓練和經(jīng)驗足夠多可以設(shè)計軟件而不僅僅是解答東西。不過即便你不是很有創(chuàng)意,并且/或者缺乏教育以及/或者經(jīng)驗來正確開發(fā)大規(guī)模應(yīng)用,你仍然應(yīng)該對自己是一名程序員感到自豪。利用代碼解決問題本身就是一種超級能力。小編附注:黑客的類型很寬泛,可應(yīng)用到任何領(lǐng)域,不僅僅是計算機。而本文主要是針對軟件類型。“coder”基本上等同于程序員解答往往跟質(zhì)量差相關(guān)聯(lián),但并不總是這樣。這是因為解答通常都是大刀闊斧一想到就開干效果最好而不是一點點的慢工出細活。在黑客也是開發(fā)者或者雖然不是開發(fā)者但還需要盯住設(shè)計和質(zhì)量的情況下,事后回過頭來看看自己的創(chuàng)作并且解決存在問題幾乎是免不了的。
確定誰可以叫做黑客,誰不能被稱為黑客是一件認知見仁智者見智的事情。大都同意的基本規(guī)則包括1)你得做出1件或以上大家覺得有用的東西,2)其他黑客覺得你是黑客。在安全界,黑客還意味著多件事情。對于測試者來說這通常意味著這個人理解系統(tǒng)并且能攻克其安全控制。不過頂級安全對黑客的定義要更加純粹,比方說創(chuàng)建了供他人使用的安全軟件或工具的人就是黑客。在流行文化里面,黑客意味著計算機犯罪。在安全界此類演員往往被稱為是“攻擊者”。著名程序員,同時也是最早的計算機社區(qū)名人之一的EricRaymond是這樣定義黑客的,“聰明、有創(chuàng)意、思想開放,享受問題解決和學習,樂意分享知識高于一切的人。”“軟件工程師”等同于開發(fā)者。意味著受到過有關(guān)軟件架構(gòu)、設(shè)計的正規(guī)教育以及必要的預(yù)教育。
掃一掃
獲取更多福利
獵學網(wǎng)企業(yè)微信
獵學網(wǎng)訂閱號
獵學網(wǎng)服務(wù)號