狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

開(kāi)發(fā)與研發(fā)【轉(zhuǎn)】

admin
2011年3月14日 16:45 本文熱度 3465
按:這幾天我一直在寫(xiě)這篇東西,本來(lái)是胸有成竹,沒(méi)想到后來(lái)越寫(xiě)越發(fā)現(xiàn)自己在這個(gè)題目下有太多話想說(shuō),而以我現(xiàn)在的能力又不能很好地概括總結(jié),以至于越寫(xiě)越長(zhǎng),文章結(jié)構(gòu)也變得混亂,到后來(lái)修改的時(shí)候每次都要考慮好久才能下筆,所以決定拆成兩部分來(lái)發(fā),以便閱讀。這篇寫(xiě)得我心力交瘁,質(zhì)量不算好,湊合著看吧。

同樣是寫(xiě)程序,不同的崗位工作內(nèi)容不一樣,對(duì)程序質(zhì)量以及工程師的要求也不一樣。程序開(kāi)發(fā)大概可以劃分成兩類:開(kāi)發(fā)和研發(fā),相應(yīng)也就有開(kāi)發(fā)工程師和研發(fā)工程師。很多人覺(jué)得做開(kāi)發(fā)和做研發(fā)沒(méi)什么區(qū)別,“都是一樣對(duì)著電腦寫(xiě)程序啊”,但其實(shí)這兩者是完全不一樣的,下面我想拋開(kāi)公司對(duì)員工的期望、社會(huì)對(duì)工程師的需求等其它因素,單純從國(guó)內(nèi)互聯(lián)網(wǎng)行業(yè)“工程師個(gè)人發(fā)展”的角度來(lái)說(shuō)一下我個(gè)人對(duì)這兩類工作的看法。

開(kāi)發(fā)

開(kāi)發(fā)一般是指產(chǎn)品開(kāi)發(fā),開(kāi)發(fā)工程師直接為產(chǎn)品貢獻(xiàn)代碼。每個(gè)公司都有自己的產(chǎn)品線,拿 Google 來(lái)說(shuō)吧,它有 Gmail, Chrome 等產(chǎn)品,每個(gè)產(chǎn)品都有很多開(kāi)發(fā)工程師在后面支持,這些產(chǎn)品的開(kāi)發(fā)、維護(hù)以及升級(jí)都是由相應(yīng)的開(kāi)發(fā)工程師負(fù)責(zé)的。由于開(kāi)發(fā)工程師的工作直接關(guān)系到產(chǎn)品的質(zhì)量和在線情況,所以開(kāi)發(fā)工程師的責(zé)任是很重的,他可能經(jīng)常為了下個(gè)版本的發(fā)布而加班,為了產(chǎn)品的故障不得不在休假的時(shí)候打開(kāi)電腦工作,甚至在過(guò)年的時(shí)候都會(huì)接到領(lǐng)導(dǎo)的電話。所以你看到那些總抱怨加班太多,總是說(shuō)自己是“IT民工”的,大部分都是開(kāi)發(fā)工程師。在工程師當(dāng)中,大部分人都是做產(chǎn)品開(kāi)發(fā)的,畢竟公司都是要靠產(chǎn)品盈利,招聘的大部分人也要直接為產(chǎn)品服務(wù)。

做開(kāi)發(fā)是很辛苦,但也有好處,因?yàn)樾枰獙?duì)產(chǎn)品線負(fù)責(zé),所以會(huì)是公司的核心,裁員對(duì)你威脅不大,如果你負(fù)責(zé)的產(chǎn)品恰好又是盈利產(chǎn)品的話,那么加薪、獎(jiǎng)金、集體出游等福利都不會(huì)少。如果你足夠幸運(yùn)地加入了一家快速發(fā)展的創(chuàng)業(yè)公司,說(shuō)不定一下子就發(fā)家了。還有很重要的一點(diǎn)是,作為產(chǎn)品的開(kāi)發(fā)人員可以看到自己做的東西被那么多人使用,那是一種莫大的鼓勵(lì)和肯定。

苦悶的開(kāi)發(fā)工程師

盡管我很尊重開(kāi)發(fā)工程師,但是我不得不承認(rèn),在國(guó)內(nèi)大部分的公司,做開(kāi)發(fā)工程師是沒(méi)有前途的。首先,從微博到開(kāi)心,有多少國(guó)內(nèi)的產(chǎn)品不是山寨的?這也罷了,最惡心的是有一些產(chǎn)品經(jīng)理連產(chǎn)品設(shè)計(jì)圖都懶得自己畫(huà),直接去截取別人產(chǎn)品的圖片,假如我是一個(gè)人人網(wǎng)的開(kāi)發(fā)工程師,每天看到產(chǎn)品經(jīng)理把 Facebook 新上線功能的截圖拿過(guò)來(lái)讓我做,你讓我如何對(duì)產(chǎn)品有榮譽(yù)感和認(rèn)同感?而如果一個(gè)開(kāi)發(fā)工程師對(duì)自己做的東西沒(méi)有榮譽(yù)感和認(rèn)同感,那么他堅(jiān)守自己的崗位要么是因?yàn)楣窘o的錢(qián)多,要么是因?yàn)樗€沒(méi)有找到下家。我個(gè)人認(rèn)為,做開(kāi)發(fā)最大的一個(gè)好處就是可以親手實(shí)現(xiàn)一個(gè)“自己的作品”,就算平時(shí)很累,但最后完成它的時(shí)候也還是會(huì)無(wú)比滿足,這點(diǎn)被剝奪了之后,和飯店打工的服務(wù)員有什么兩樣?不一樣是為了糊口嗎?

我不知道別人怎樣,但我自參加工作以來(lái)就一直糾結(jié)于此——甚至開(kāi)發(fā)的大部分產(chǎn)品都不好意思寫(xiě)上自己的名字;直到前不久有機(jī)會(huì)去做一個(gè)公司內(nèi)部使用的平臺(tái),才終于有個(gè)作品讓自己覺(jué)得滿意。相信很多開(kāi)發(fā)工程師參加工作之前都對(duì)互聯(lián)網(wǎng)上很多諸如Gmail, Facebook 等優(yōu)秀的產(chǎn)品耳熟能詳,自己也常夢(mèng)想做出那樣的產(chǎn)品,但萬(wàn)萬(wàn)沒(méi)有想到的是,工作之后要學(xué)習(xí)的第一課就是“不要對(duì)自己做的東西有感情”——有了感情你就不愿意做廣告彈窗,不愿意看到它下線,不愿意為了短期利益?zhèn)τ脩簟Ec此同時(shí),你還要繼續(xù)聽(tīng)產(chǎn)品經(jīng)理和老大們滿懷激情地說(shuō)“我們一定要讓用戶喜歡我們的產(chǎn)品”。一個(gè)連開(kāi)發(fā)工程師本人都覺(jué)得無(wú)聊的產(chǎn)品如何讓用戶真正喜歡呢?拿搜索巨人來(lái)說(shuō)吧,Google 把社交網(wǎng)站看作是某種形式的娛樂(lè)而不是有用的工具,所以它會(huì)在社交領(lǐng)域失敗,再牛的技術(shù)也無(wú)法遮蓋情感上的空白。不過(guò)話說(shuō)回來(lái),這好像對(duì)于國(guó)內(nèi)大部分的公司都不是問(wèn)題,因?yàn)樗鼈冏鲆豢町a(chǎn)品只是想從用戶那里拿到錢(qián),如果以后用戶流失了就下線,然后再開(kāi)發(fā)一個(gè)新的。他們要的不是用戶的長(zhǎng)期感情,而是一/夜/情,開(kāi)發(fā)工程師就是一/夜/情的工具。

其次,國(guó)內(nèi)幾乎所有公司的技術(shù)流程和技術(shù)積累都做得很爛,大部分都只是片面地追求開(kāi)發(fā)速度。我們?cè)诖髮W(xué)里受到的教育是“文檔和注釋很重要”,工作之后才發(fā)現(xiàn)文檔和注釋是很稀有的東西,只有特別負(fù)責(zé)任的工程師才會(huì)擠時(shí)間去寫(xiě)。有一個(gè)很有意思的現(xiàn)象是,國(guó)內(nèi)很多產(chǎn)品發(fā)布之后會(huì)特別自豪地說(shuō)“XX 是我們開(kāi)發(fā)團(tuán)隊(duì)在時(shí)間緊迫的情況下,封閉開(kāi)發(fā)了X 天就完成的!只有最牛的工程師才能創(chuàng)造這樣的奇跡!!多少個(gè)凌晨,XX寫(xiě)字樓上只有我們辦公室的燈還亮著……”,然后你會(huì)覺(jué)得“好感動(dòng)啊”,但冷靜下來(lái)想一想,這種拼命趕工做出來(lái)的東西質(zhì)量會(huì)過(guò)硬嗎?拋開(kāi)產(chǎn)品質(zhì)量不談,沒(méi)有時(shí)間寫(xiě)文檔、沒(méi)有時(shí)間寫(xiě)注釋、沒(méi)有時(shí)間做 code review, 沒(méi)有時(shí)間做階段總結(jié)……沒(méi)有了這些,作為一個(gè)開(kāi)發(fā)工程師你通過(guò)這個(gè)項(xiàng)目可以提升多少呢?所以好多開(kāi)發(fā)工程師一開(kāi)始是“代碼民工”,過(guò)了幾年還是“代碼民工”,而一個(gè)人年富力強(qiáng)的時(shí)間又有幾年呢?怪不得那么多人說(shuō)工程師和妓/女一樣,都是吃青春飯的。

發(fā)展方向

我個(gè)人認(rèn)為,國(guó)內(nèi)的開(kāi)發(fā)工程師大概有三個(gè)發(fā)展方向:1.做管理。 2. 去做架構(gòu)等與產(chǎn)品關(guān)系不那么緊密的研發(fā)。3. 提升其它方面的能力,做 “A+ Player”,然后自己創(chuàng)業(yè)。我對(duì)管理沒(méi)有研究,也沒(méi)有興趣,這里就不說(shuō)了。研發(fā)我會(huì)在下篇中細(xì)說(shuō),這里主要說(shuō)一下第三條。

為什么要關(guān)注代碼之外的事情

如果你只會(huì)埋頭寫(xiě)代碼,那么代碼寫(xiě)得再好也可能不會(huì)是一個(gè)好的開(kāi)發(fā)工程師。做開(kāi)發(fā)不是做學(xué)術(shù)研究,你的任務(wù)不是去鉆研技術(shù),而是利用自己的技術(shù)把產(chǎn)品做出來(lái)。盡管技術(shù)能力是基礎(chǔ),但如果無(wú)法把能力很好地應(yīng)用到開(kāi)發(fā)當(dāng)中,那么你在團(tuán)隊(duì)中就沒(méi)什么價(jià)值。舉個(gè)例子,如果你不能很好地理解產(chǎn)品需求,那么就會(huì)根據(jù)自己的理解去做技術(shù)方面的架構(gòu)和編碼,等到后來(lái)發(fā)現(xiàn)了再去修改就特別麻煩,這個(gè)時(shí)候技術(shù)能力強(qiáng)反而成了壞事,南轅北轍的故事我想大家都聽(tīng)說(shuō)過(guò)。

很多開(kāi)發(fā)工程師屬于那種“很本分”的人,從來(lái)不會(huì)提出意見(jiàn),不關(guān)心產(chǎn)品形態(tài)和細(xì)節(jié),只是去做產(chǎn)品經(jīng)理提出的需求。我覺(jué)得別人把工程師叫做“代碼民工”也就算了,但是工程師對(duì)自己做的東西完全沒(méi)有看法,那就是甘心淪落為民工了。這也有文化的原因,國(guó)內(nèi)的公司都喜歡那些不愛(ài)抱怨的員工,因?yàn)樗麄兟?tīng)話而且符合中國(guó)傳統(tǒng)的價(jià)值觀,但我更喜歡那些愛(ài)抱怨并且抱怨得有道理的人,因?yàn)閲?guó)內(nèi)(不只是互聯(lián)網(wǎng)上面)粗制濫造的東西實(shí)在太他媽的多了,不抱怨才不正常,有不滿才會(huì)去思考如何做得更好。

曾經(jīng)聽(tīng)到有人談?wù)撊绾喂芾砑夹g(shù)人員的時(shí)候說(shuō):“管理技術(shù)人員很簡(jiǎn)單,找一個(gè)比他們都牛的人就行了。” 這個(gè)人很了解工程師的脾氣。工程師去判斷其他工程師的時(shí)候,往往只看他的技術(shù)能力,覺(jué)得誰(shuí)的技術(shù)好誰(shuí)就最牛,其它的都無(wú)所謂。沒(méi)錯(cuò),技術(shù)牛的工程師寫(xiě)的代碼質(zhì)量很高,但這只是一個(gè)方面而已,判斷一個(gè)人在團(tuán)隊(duì)中是不是“很牛”要看他對(duì)團(tuán)隊(duì)對(duì)產(chǎn)品的整體貢獻(xiàn),而不是他的個(gè)人能力。他能很好地理解產(chǎn)品需求嗎?能很好地理解設(shè)計(jì)師的意圖嗎?和團(tuán)隊(duì)其他成員溝通順利嗎?寫(xiě)出的代碼方便測(cè)試嗎?會(huì)對(duì)產(chǎn)品提出好的建議嗎?……這些都是判斷一個(gè)開(kāi)發(fā)工程師的標(biāo)準(zhǔn),整體素質(zhì)越高在團(tuán)隊(duì)中的價(jià)值也就越大。

所以要想做一個(gè)好的開(kāi)發(fā)工程師,就要在寫(xiě)好代碼的同時(shí)努力提高其它方面的能力。我知道大部分的工程師都喜歡和機(jī)器而不是和人打交道,所以遇到和產(chǎn)品經(jīng)理、設(shè)計(jì)師以及 QA 等部門(mén)協(xié)調(diào)溝通的時(shí)候就皺眉頭。協(xié)調(diào)溝通確實(shí)是一件鬧心的事情,但從另一方面來(lái)說(shuō),這是開(kāi)發(fā)工程師的一個(gè)得天獨(dú)厚的優(yōu)勢(shì):你可以深入接觸產(chǎn)品生產(chǎn)線上的所有環(huán)節(jié)。需求評(píng)審的時(shí)候,你可以了解產(chǎn)品設(shè)計(jì);開(kāi)發(fā)界面的時(shí)候,你可以了解到視覺(jué)和交互設(shè)計(jì);測(cè)試的時(shí)候,你可以了解到產(chǎn)品測(cè)試的細(xì)節(jié);上線的時(shí)候,你也可以多觀察 Ops 同事的操作。如果你可以在協(xié)調(diào)溝通的時(shí)候?qū)W會(huì)換位思考,多從對(duì)方的角度看問(wèn)題,多想一下“他為什么要這么做”,那么不知不覺(jué)就會(huì)對(duì)各個(gè)領(lǐng)域有一些了解,進(jìn)而發(fā)現(xiàn)原來(lái)每個(gè)領(lǐng)域都大有學(xué)問(wèn),就不會(huì)因?yàn)橹車切W(xué)藝不精的人而輕視他們所在的領(lǐng)域。

學(xué)習(xí)設(shè)計(jì)

對(duì)于工程師來(lái)說(shuō),測(cè)試和上線都是技術(shù)性的工作,和開(kāi)發(fā)有很多相通的地方,而產(chǎn)品設(shè)計(jì)、交互設(shè)計(jì)和視覺(jué)設(shè)計(jì)等設(shè)計(jì)領(lǐng)域則比較陌生。對(duì)于自己不了解的東西,我們的看法往往會(huì)趨于兩個(gè)極端:要么是看得高深莫測(cè),要么是看得一文不值。其實(shí)對(duì)于大部分的東西,只要不笨并且愿意下功夫?qū)W習(xí),總是可以學(xué)會(huì)的。盡管達(dá)到大師的水平可能需要傳說(shuō)中的“天賦”,但做到中等水平并不是特別困難。關(guān)于設(shè)計(jì)領(lǐng)域我一直在斷斷續(xù)續(xù)地在學(xué)習(xí),到現(xiàn)在可能連略窺門(mén)徑也算不上,這里只是說(shuō)一下我個(gè)人對(duì)設(shè)計(jì)的理解和心得,供大家參考。

產(chǎn)品設(shè)計(jì)

產(chǎn)品設(shè)計(jì)看上去比較簡(jiǎn)單,因?yàn)橹灰宄约合胍鍪裁矗敲醋匀豢梢月蠢粘霎a(chǎn)品的形態(tài)和功能。要做好產(chǎn)品設(shè)計(jì),就需要平時(shí)多下一些功夫,多研究一下互聯(lián)網(wǎng)上那些已有的產(chǎn)品,另外還需要多看一些諸如社會(huì)學(xué)、歷史等“閑書(shū)”,舉個(gè)例子,假如你想開(kāi)發(fā)一款針對(duì)臺(tái)灣用戶的產(chǎn)品,那么了解一下臺(tái)灣的文化肯定是有必要的。總之,學(xué)習(xí)產(chǎn)品設(shè)計(jì)是慢功夫,沒(méi)有什么速成的捷徑,只有一點(diǎn)一滴地不斷積累才能培養(yǎng)出敏銳的產(chǎn)品意識(shí)和深刻的洞察力。

工程師學(xué)習(xí)產(chǎn)品設(shè)計(jì)有一個(gè)優(yōu)勢(shì),那就是設(shè)計(jì)出來(lái)的產(chǎn)品是自己親手實(shí)現(xiàn)的,你可以在實(shí)現(xiàn)的過(guò)程中不斷重新反思原來(lái)的設(shè)計(jì),然后加以修改和完善。這就好像寫(xiě)文章一樣,很多時(shí)候你寫(xiě)東西的時(shí)候并不清楚自己具體要寫(xiě)什么,但只要是下筆開(kāi)始寫(xiě),寫(xiě)著寫(xiě)著就會(huì)發(fā)現(xiàn)新的想法,寫(xiě)作的過(guò)程同時(shí)也是思考的過(guò)程。寫(xiě)作和寫(xiě)代碼很像,它們不僅可以表達(dá)想法,還可以創(chuàng)造想法。

視覺(jué)設(shè)計(jì)

很多工程師聽(tīng)到視覺(jué)設(shè)計(jì)會(huì)立刻退避三舍,覺(jué)得自己“不會(huì)畫(huà)畫(huà)”、“不懂配色”是不可能學(xué)習(xí)視覺(jué)設(shè)計(jì)的。誠(chéng)然,視覺(jué)設(shè)計(jì)是需要更多藝術(shù)方面的基本功,要完全掌握需要長(zhǎng)期的訓(xùn)練,但我們還是可以從簡(jiǎn)單的學(xué)起,慢慢培養(yǎng)對(duì)設(shè)計(jì)的感覺(jué)。我個(gè)人在這方面所知非常有限,但是對(duì)視覺(jué)設(shè)計(jì)中的完美主義印象深刻。

編程的時(shí)候,如果你的某行代碼多了一個(gè)空行可能不會(huì)有什么問(wèn)題,但在視覺(jué)設(shè)計(jì)中差了 1 個(gè)像素或者 10% 的透明度就是不可容忍的,很多設(shè)計(jì)師要求的都是 “Pixel-Perfect”——像素級(jí)別的完美。如果你不苛刻地追求完美,幾個(gè)這樣的“小瑕疵”就可以把整個(gè)作品毀掉。在我沒(méi)有接觸過(guò)視覺(jué)設(shè)計(jì)的時(shí)候很難理解這一點(diǎn),切頁(yè)面的時(shí)候并不會(huì)特別仔細(xì)地去看設(shè)計(jì)圖,而且為了降低技術(shù)難度會(huì)想當(dāng)然地篡改設(shè)計(jì)師的意圖,比如把一些微小的漸變用純色代替,這是很無(wú)知的做法。所以當(dāng)設(shè)計(jì)師要求你做一個(gè) 1px 的修改的時(shí)候,即使會(huì)花掉你幾個(gè)小時(shí)的時(shí)間也要聽(tīng)他的——只有這樣才可以把界面做到百分之一百的完美。當(dāng)然,設(shè)計(jì)師自己做不到完美另當(dāng)別論。

此外,作為一個(gè)頁(yè)面設(shè)計(jì)師,從職位名稱上來(lái)看他的最終作品應(yīng)該是頁(yè)面,而不只是視覺(jué)效果圖。所以我覺(jué)得頁(yè)面設(shè)計(jì)師應(yīng)該精通 CSS,只有自己才可以精確實(shí)現(xiàn)自己的設(shè)計(jì)意圖。對(duì)于那些沒(méi)有受過(guò)設(shè)計(jì)訓(xùn)練的工程師來(lái)說(shuō),很難注意到頁(yè)面上色彩、字體和漸變的細(xì)節(jié),讓他們精確實(shí)現(xiàn)一個(gè)設(shè)計(jì)師的意圖幾乎是不可能的。精通 CSS 對(duì)于頁(yè)面設(shè)計(jì)師來(lái)說(shuō)并不算一個(gè)過(guò)分的要求,很多國(guó)外的設(shè)計(jì)師甚至可以自己用 PHP 寫(xiě)出產(chǎn)品原型,相比之下,國(guó)內(nèi)的頁(yè)面設(shè)計(jì)師進(jìn)化得實(shí)在太慢了。

交互設(shè)計(jì)

交互設(shè)計(jì)是有關(guān)行為的設(shè)計(jì),它更關(guān)注如何讓產(chǎn)品更好用。舉個(gè)例子,網(wǎng)頁(yè)中一般都有很多超鏈接,當(dāng)你把鼠標(biāo)移動(dòng)到超鏈接上的時(shí)候,鼠標(biāo)形狀會(huì)變成手型,暗示它是可以點(diǎn)擊的,而且訪問(wèn)過(guò)的超鏈接和普通超鏈接的顏色是不同的,這樣就很好地引導(dǎo)了用戶行為。

之前我一直把設(shè)計(jì)和“視覺(jué)設(shè)計(jì)”等同起來(lái),但在深入了解了之后發(fā)現(xiàn),對(duì)于互聯(lián)網(wǎng)產(chǎn)品來(lái)說(shuō),交互設(shè)計(jì)要比視覺(jué)設(shè)計(jì)重要得多,而且交互設(shè)計(jì)相對(duì)于視覺(jué)設(shè)計(jì)也更加有跡可循,對(duì)“感覺(jué)”要求沒(méi)那么高,工程師完全可以把重點(diǎn)放在交互設(shè)計(jì)上。如果交互設(shè)計(jì)做得好,視覺(jué)設(shè)計(jì)遵循一些標(biāo)準(zhǔn),那么完全可以做出一款“不難看并且好用”的產(chǎn)品。沒(méi)有人特別夸贊 Google 的產(chǎn)品“好看”,但它們都特別好用,Google 注重的是易用、快速,用戶體驗(yàn)是很棒的。

互聯(lián)網(wǎng)行業(yè)的大部分頁(yè)面設(shè)計(jì)師(Web Designer)都是學(xué)習(xí)平面設(shè)計(jì)出身的,但我覺(jué)得網(wǎng)頁(yè)和軟件設(shè)計(jì)更像是“顯示器里面的工業(yè)設(shè)計(jì)”。很多平面設(shè)計(jì)師設(shè)計(jì)出的頁(yè)面很好看,好像海報(bào)一樣,非常適合打印出來(lái),但往往對(duì)交互方面重視不夠。不太好看影響不會(huì)很大,但不好用就沒(méi)有辦法留住用戶,而且有時(shí)候太注重外觀的視覺(jué)效果反而會(huì)分散用戶的注意力進(jìn)而影響產(chǎn)品的使用,這種 “eye candy” 是糟糕的設(shè)計(jì)。現(xiàn)在專門(mén)培養(yǎng)交互設(shè)計(jì)師的機(jī)構(gòu)不多,我很希望對(duì)互聯(lián)網(wǎng)有興趣的工業(yè)設(shè)計(jì)師們到這個(gè)行業(yè)中來(lái)。

關(guān)于設(shè)計(jì)我就說(shuō)這么多,以后有機(jī)會(huì)再另外撰文專門(mén)探討這些主題。值得一提的是,沒(méi)有人可以真正把設(shè)計(jì)和開(kāi)發(fā)全部精通,如果深入到細(xì)節(jié),無(wú)論設(shè)計(jì)和開(kāi)發(fā)都會(huì)占用你大量的時(shí)間和腦力。單從設(shè)計(jì)來(lái)說(shuō),需要掌握的就有顏色、字體排印(Typography)、排版(Layout)、交互設(shè)計(jì)等,其中每一種技能又涵蓋無(wú)數(shù)細(xì)節(jié),真的是要皓首窮經(jīng)才可以在其中的某個(gè)領(lǐng)域成為大師。不過(guò),即使你對(duì)這些知識(shí)只是有一個(gè)大致的了解,以后在看一款產(chǎn)品的時(shí)候也可以從功能、交互、排版、頁(yè)面代碼、整體性能以及URL語(yǔ)義化等各個(gè)方面進(jìn)行全面而細(xì)致的分析,明白它哪里做得好,哪里做得不好,而不是在那里想當(dāng)然地說(shuō)“真酷”或者“狗屎”。真正了解什么是好的什么是差的,自己做東西的時(shí)候才會(huì)心中有數(shù)。

一專多能的好處

很多人可能會(huì)說(shuō):“一個(gè)人要是可以把所有事情都搞定,那還要其他人干嘛?我更相信團(tuán)隊(duì)的力量。” 沒(méi)錯(cuò),一個(gè)人就算從設(shè)計(jì)到開(kāi)發(fā)都精通,如果只有他一個(gè)人做東西,開(kāi)發(fā)效率也不會(huì)高。但是若你真的花心思去了解那些“與代碼無(wú)關(guān)的事情”,你就會(huì)在寫(xiě)代碼的時(shí)候更多考慮到產(chǎn)品經(jīng)理/設(shè)計(jì)師的想法,對(duì)產(chǎn)品經(jīng)理/設(shè)計(jì)師疏忽的地方也可以及時(shí)提醒,讓自己真正地融入整個(gè)團(tuán)隊(duì)。目標(biāo)并不一定要實(shí)現(xiàn),它是用來(lái)指明方向的。開(kāi)發(fā)工程師提高自己的產(chǎn)品意識(shí)和設(shè)計(jì)能力絕對(duì)不會(huì)是白費(fèi)心血,不然的話你就只是一個(gè)實(shí)現(xiàn)產(chǎn)品的工具。你只會(huì)回答別人提出的問(wèn)題,而好的問(wèn)題要比好的答案有價(jià)值得多。

當(dāng)你各方面能力提高得差不多的時(shí)候,應(yīng)該就可以出來(lái)創(chuàng)業(yè)了(注意,我說(shuō)的是創(chuàng)業(yè),不是去創(chuàng)業(yè)公司打工)。因?yàn)閷?duì)各個(gè)領(lǐng)域都有一定的了解,平時(shí)也經(jīng)常接觸到各個(gè)領(lǐng)域的人,那么在創(chuàng)業(yè)的時(shí)候你就很清楚自己需要什么樣的產(chǎn)品經(jīng)理/設(shè)計(jì)師,知道具有什么樣能力的產(chǎn)品經(jīng)理/設(shè)計(jì)師才是最好的,這樣就可以從一開(kāi)始就保證團(tuán)隊(duì)的質(zhì)量和氣質(zhì)。很多互聯(lián)網(wǎng)的業(yè)界前輩都說(shuō)過(guò)“要招聘最好的人”,但問(wèn)題是你如何判斷一個(gè)人是不是該領(lǐng)域最好的呢?如果一個(gè)人對(duì)程序和設(shè)計(jì)一竅不通,滿腦子都是商業(yè)運(yùn)作,你覺(jué)得他有可能找出最好的工程師和設(shè)計(jì)師嗎?有一次和一個(gè)創(chuàng)業(yè)公司的CEO聊天,他和我講他們“只招聘 Geek”,后來(lái)我才發(fā)現(xiàn)他其實(shí)根本不知道什么是 Geek,只是不知道從那里聽(tīng)到 Geek 這個(gè)詞,他真正想要的應(yīng)該是那種只知道寫(xiě)代碼愿意沒(méi)日沒(méi)夜任勞任怨給他當(dāng)牛做馬的人。國(guó)內(nèi)大部分的創(chuàng)業(yè)公司就是這樣,老大們喊著技術(shù)密集型的口號(hào),實(shí)際上做著勞動(dòng)密集型的事情,金玉其外,敗絮其中。你可以和他們不一樣。

我自己并沒(méi)有創(chuàng)業(yè)的經(jīng)歷,也沒(méi)有創(chuàng)業(yè)的打算,所以對(duì)創(chuàng)業(yè)的理解可能很片面而且天真。但是我相信,找到最好的人永遠(yuǎn)都是關(guān)鍵,不然即便后來(lái)成功了,也不過(guò)是多了一家靠人數(shù)取勝的血汗工廠。假如你選擇成為移動(dòng)互聯(lián)網(wǎng)的獨(dú)立開(kāi)發(fā)者,對(duì)一個(gè)產(chǎn)品各個(gè)環(huán)節(jié)的全局把握也是有必要的。如果一個(gè)團(tuán)隊(duì)的每個(gè)人都能獨(dú)當(dāng)一面并且可以很好地理解其他人的意圖和專業(yè)技能,就算最后在商業(yè)上失敗了,那也會(huì)是一個(gè)幸福的團(tuán)隊(duì),比那些除了盈利之外找不到任何亮點(diǎn)的團(tuán)隊(duì)好太多。

對(duì)產(chǎn)品經(jīng)理的偏見(jiàn)

在“開(kāi)發(fā)”這個(gè)小節(jié)的最后,我想多說(shuō)一點(diǎn)自己對(duì)產(chǎn)品經(jīng)理這個(gè)角色的看法。在國(guó)內(nèi)絕大多數(shù)公司,開(kāi)發(fā)工程師的作用就是把產(chǎn)品經(jīng)理的想法以代碼的方式寫(xiě)出來(lái),“代碼民工”這個(gè)稱呼倒是很恰當(dāng)。我對(duì)互聯(lián)網(wǎng)行業(yè)的產(chǎn)品經(jīng)理們一直感到很奇怪:他們沒(méi)有能力把自己的想法實(shí)現(xiàn)出來(lái),但是卻幾乎總是認(rèn)為自己比其他人更理解產(chǎn)品;當(dāng)工程師對(duì)產(chǎn)品提出自己的意見(jiàn)的時(shí)候,他們往往會(huì)心中不屑但盡量保持禮貌擠出微笑說(shuō)一句:“呵呵,工程師不是普通用戶”。一個(gè)產(chǎn)品本來(lái)就是需要很多人齊心協(xié)力一起完成的,產(chǎn)品經(jīng)理和工程師的地位也是平等的,但是由于產(chǎn)品經(jīng)理在工作流的上游,所以情況往往演變成工程師在為產(chǎn)品經(jīng)理工作。如果產(chǎn)品經(jīng)理真的對(duì)產(chǎn)品負(fù)責(zé)也就罷了,可惜的是大公司的產(chǎn)品經(jīng)理大部分是對(duì)KPI負(fù)責(zé),小公司的產(chǎn)品經(jīng)理大部分是對(duì)老板的個(gè)人好惡負(fù)責(zé),結(jié)果就是工程師跟在產(chǎn)品經(jīng)理屁股后面做一些莫名其妙的事情。我接觸到的幾乎所有開(kāi)發(fā)工程師都對(duì)他們的產(chǎn)品經(jīng)理頭疼不已,據(jù)他們說(shuō),好的產(chǎn)品經(jīng)理就像真正的愛(ài)情,是極為稀有和可遇不可求的。

按照現(xiàn)在大部分公司的分工方式,產(chǎn)品經(jīng)理是產(chǎn)品的總負(fù)責(zé)人。根據(jù)我個(gè)人的理解,產(chǎn)品經(jīng)理之于產(chǎn)品,應(yīng)該相當(dāng)于導(dǎo)演之于電影,建筑師之于建筑。一個(gè)導(dǎo)演如果對(duì)拍攝一竅不通,那么就很難控制鏡頭的表現(xiàn)力;一個(gè)建筑師如果對(duì)建筑材料和結(jié)構(gòu)一無(wú)所知,就不可能把握建筑整體的感覺(jué)。那為什么那么多人會(huì)覺(jué)得產(chǎn)品經(jīng)理可以不懂技術(shù)不懂視覺(jué)設(shè)計(jì),只需要寫(xiě)好文檔畫(huà)個(gè)框圖然后交給別人去做就可以做出好的產(chǎn)品呢?本來(lái)是一個(gè)需要對(duì)各個(gè)領(lǐng)域融會(huì)貫通最難做得好的角色,現(xiàn)在反而被很多人視為清閑的差事,不愛(ài)干活的人紛紛想要轉(zhuǎn)去做產(chǎn)品經(jīng)理,實(shí)在是可悲至極。

我一直堅(jiān)信好的工程師是不需要產(chǎn)品經(jīng)理的。如果一個(gè)產(chǎn)品非要有一個(gè)什么產(chǎn)品經(jīng)理的話,Google 的很多產(chǎn)品都不會(huì)出現(xiàn),DropBox 這種只招聘工程師的公司也早就完蛋了。很多偉大的產(chǎn)品都是幾個(gè)工程師想到一個(gè)點(diǎn)子然后慢慢做出來(lái)的,比如 Paypal 和 Google. 但需要說(shuō)明的是,我討厭產(chǎn)品經(jīng)理并不是說(shuō)我推崇“技術(shù)導(dǎo)向”——無(wú)論怎樣產(chǎn)品都應(yīng)該是讓用戶使用的,而不是用來(lái)炫耀技術(shù)的,只不過(guò)工程師不需要產(chǎn)品經(jīng)理也可以設(shè)計(jì)好一個(gè)產(chǎn)品并且實(shí)現(xiàn)它。產(chǎn)品設(shè)計(jì)不是產(chǎn)品經(jīng)理的專利。

想知道懂得設(shè)計(jì)的工程師沒(méi)有產(chǎn)品經(jīng)理的時(shí)候可以做出什么東西嗎?去看一下 Livid 做的 V2EX 就知道了。在國(guó)內(nèi),設(shè)計(jì)和代碼都有品味的網(wǎng)站可不多,我覺(jué)得 Livid 同學(xué)真是開(kāi)發(fā)工程師的典范。

 

研發(fā)

相對(duì)于開(kāi)發(fā)來(lái)說(shuō),我個(gè)人更喜歡研發(fā)一點(diǎn)。研發(fā)和開(kāi)發(fā)的一個(gè)不同之處就是研發(fā)有更多的“研究”成分在里面,也就是說(shuō)研發(fā)的時(shí)候會(huì)有更多“光明正大”的學(xué)習(xí)時(shí)間,這對(duì)于那些對(duì)技術(shù)本身有追求的工程師來(lái)說(shuō)是很有吸引力的。有一些人做工程師是為了可以創(chuàng)造出好的產(chǎn)品,然后掙大錢(qián)或者改變世界;也有一些人做工程師是因?yàn)閷?duì)技術(shù)本身有興趣,想要好好研究。可以憑借技術(shù)名利雙收變身成功人士固然很有吸引力,但不關(guān)心世事鉆研一些自己喜歡的東西也自有它的樂(lè)趣在。

如果說(shuō)開(kāi)發(fā)產(chǎn)品是“輸出”,那么學(xué)習(xí)思考就是“輸入”,只有輸出沒(méi)有輸入整個(gè)人就會(huì)廢掉,完全淪為一顆螺絲釘。在很多公司尤其是那種經(jīng)常加班趕項(xiàng)目的公司,你每天都會(huì)處于很忙碌的狀態(tài),腦子里想的都是趕緊把指定的任務(wù)完成上線。因?yàn)闀r(shí)間緊,所以你在開(kāi)發(fā)過(guò)程中遇到什么問(wèn)題都是只求解決,沒(méi)有心思和時(shí)間去搞明白為什么會(huì)出現(xiàn)那種問(wèn)題,在這樣的工作狀態(tài)下完全沒(méi)有辦法積累工作經(jīng)驗(yàn),看上去好像工作了五年,其實(shí)是工作了一年,然后重復(fù)了四年。

做研發(fā)一般不會(huì)直接為產(chǎn)品貢獻(xiàn)代碼,更多做的是一些基礎(chǔ)架構(gòu)或者實(shí)驗(yàn)性的產(chǎn)品,所以它有幾個(gè)很明顯的好處。首先,很少開(kāi)會(huì)。其次,沒(méi)有產(chǎn)品經(jīng)理。第三,一般都會(huì)把質(zhì)量放在第一位,時(shí)間不會(huì)特別緊。這是三個(gè)非常巨大的優(yōu)勢(shì),這意味著你絕大部分時(shí)間都可以安心學(xué)習(xí)、思考、設(shè)計(jì)、編程,幸福指數(shù)會(huì)飆升。如果你是做基礎(chǔ)架構(gòu),那么代碼質(zhì)量就會(huì)有硬性要求,你不得不寫(xiě)得健壯、易用、松耦合并且易于調(diào)試,要花心思和時(shí)間細(xì)細(xì)打磨,對(duì)個(gè)人的能力提高、習(xí)慣養(yǎng)成和經(jīng)驗(yàn)積累都非常有幫助;如果你是做實(shí)驗(yàn)性的產(chǎn)品,那么你就有大量的機(jī)會(huì)和時(shí)間去調(diào)研最新的技術(shù),而且最棒的是你可以在產(chǎn)品當(dāng)中使用它們——這對(duì)于開(kāi)發(fā)線上產(chǎn)品的工程師來(lái)說(shuō)是不太可能的,因?yàn)椴怀墒斓男录夹g(shù)存在太多未知的風(fēng)險(xiǎn)。

此外,做研發(fā)對(duì)工程師的素質(zhì)要求很高,需要很好的技術(shù)基礎(chǔ)、學(xué)習(xí)能力和研究能力——我把它看作是一個(gè)優(yōu)點(diǎn)。從個(gè)人角度來(lái)說(shuō),我寧愿一家公司招聘非常嚴(yán)格需要竭盡全力才可以進(jìn)去,因?yàn)閲?yán)格的招聘可以保證團(tuán)隊(duì)所有成員的質(zhì)量,不用擔(dān)心進(jìn)去之后會(huì)“和臭棋簍子下棋”。既然選擇去做研發(fā),那么基本可以說(shuō)明你是一個(gè)對(duì)技術(shù)有追求的人,也肯定希望周圍是一群和你一樣的人,而不是連基礎(chǔ)知識(shí)都不夠熟悉的家伙。只有這樣一群“互相看得起”的人在一塊研究、學(xué)習(xí)、思考、切磋才會(huì)其樂(lè)無(wú)窮,才能夠產(chǎn)生更多創(chuàng)意,做出好玩的東西。

當(dāng)然,做研發(fā)也有不好的地方。只有大公司才有研發(fā)部門(mén),這些公司一般都已經(jīng)上市或者員工已經(jīng)很多,你不太可能有機(jī)會(huì)一夜暴富。當(dāng)你埋頭做了幾年研發(fā)之后,某一天去參加同學(xué)會(huì),發(fā)現(xiàn)大學(xué)時(shí)候那個(gè)數(shù)據(jù)結(jié)構(gòu)不及格總是求你讓他拷貝編程作業(yè)的張三衣著光鮮四處敬酒。他所在的公司剛剛上市,因?yàn)檫M(jìn)去得早,現(xiàn)在他變成了百萬(wàn)富翁而且榮升高層。于是你忽然開(kāi)始懷疑自己當(dāng)初的選擇,連學(xué)習(xí)和編程的樂(lè)趣都變得很不真實(shí)。所以,如果你渴望建功立業(yè),那么就不要選擇做研發(fā),或者做幾年研發(fā)之后就出來(lái)闖蕩。成功需要的條件很多,而編程只是你的優(yōu)勢(shì)之一,只有這一個(gè)優(yōu)勢(shì)你需要太多的運(yùn)氣才可以得到你想要的。

不過(guò),我們也可以換個(gè)角度看。“亂世放不下一張安靜的書(shū)桌”,現(xiàn)在到處都無(wú)比浮躁,有個(gè)地方可以讓你安安心心做一些自己喜歡的事情已經(jīng)非常難得,多少人拼命掙錢(qián)就是為了可以和你一樣做自己喜歡的事情。盡管那么多人在叫嚷“搞原子彈的不如賣茶葉蛋的”,但總有一些人愿意去追求人類最高財(cái)富——知識(shí)和藝術(shù)家般的技藝。

本來(lái)做研發(fā)成就感會(huì)少一點(diǎn),作為一個(gè) Twitter 的開(kāi)發(fā)工程師看到那么多人在用 Twitter 肯定會(huì)特別開(kāi)心,相比之下某個(gè)在 Google 做基礎(chǔ)研究的工程師的成就感可能沒(méi)那么強(qiáng)烈。不過(guò)在國(guó)內(nèi)環(huán)境比較神奇,開(kāi)發(fā)工程師非但成就感不多,反而會(huì)不少挨罵,還經(jīng)常會(huì)有負(fù)罪感,相信做過(guò)郵件推廣和廣告彈窗的工程師都深有體會(huì)。這樣一來(lái),研發(fā)工程師的“清苦”反而變成了一個(gè)優(yōu)點(diǎn),可以遠(yuǎn)離很多“不得不做”的違背良心的事情。

相信很多工程師在入行之前是喜歡技術(shù)的,但是工作之后發(fā)現(xiàn)完全不是自己當(dāng)初想象的那個(gè)樣子,然后就變得失望麻木,不再對(duì)技術(shù)有熱情。其實(shí)你可以把熱情延續(xù)下去,只不過(guò)要去做研發(fā),而不是做開(kāi)發(fā)。大部分由于興趣而不是生計(jì)學(xué)習(xí)編程的人,內(nèi)心真正渴望的都是去做研發(fā),只不過(guò)沒(méi)有人告訴他們開(kāi)發(fā)和研發(fā)的巨大差別。現(xiàn)在不少大公司都有自己的研發(fā)部門(mén),有一些還成立了自己的研究院,想要一直做技術(shù)的同學(xué)不妨嘗試一下。

如何選擇

很多人在大學(xué)里之所以會(huì)選擇計(jì)算機(jī)為自己的專業(yè),并不是因?yàn)樽约簩?duì)計(jì)算機(jī)和編程有興趣,而是因?yàn)橛?jì)算機(jī)是“熱門(mén)專業(yè)”,在畢業(yè)之后也渾渾噩噩地找了一份工作進(jìn)入了這個(gè)行業(yè),做著自己并不喜歡的事情;還有一些人則是畢業(yè)之后找不到工作,然后看到一些培訓(xùn)機(jī)構(gòu)的廣告就去報(bào)名學(xué)習(xí)編程,希望廣告上描繪的“月薪過(guò)萬(wàn)”不只是一場(chǎng)夢(mèng)。于是就有了越來(lái)越多的“代碼民工”,在形形色色的大小公司做著又臟又累的工作,只為了“混口飯吃”。

我并不想批評(píng)這些人,畢竟在這個(gè)大環(huán)境下有著太多無(wú)奈,逼得我們無(wú)從選擇。對(duì)于這樣一些只想找一份好工作的人,是被騙到這個(gè)行業(yè)中來(lái)的。仔細(xì)回憶一下,這些年來(lái)我們看到的業(yè)界新聞,了解到的互聯(lián)網(wǎng)公司文化,大部分都是有關(guān)諸如 Google, Facebook 等國(guó)外公司的;我們平時(shí)學(xué)習(xí)和使用的技術(shù),幾乎都是國(guó)外發(fā)明的。這讓我們深信互聯(lián)網(wǎng)就是那樣美好,那些激動(dòng)人心的東西觸手可及,但請(qǐng)你關(guān)上電腦出門(mén)好好看一下周圍:這是在中國(guó)。互聯(lián)網(wǎng)沒(méi)有國(guó)界,但互聯(lián)網(wǎng)公司有。Google 和 Facebook 這樣的公司看上去離我們很近,我們每天也使用它們的產(chǎn)品,但國(guó)內(nèi)的互聯(lián)網(wǎng)公司可能要幾百年之后才會(huì)有那樣的氣質(zhì)和文化。所以如果你不幸誤入了這個(gè)行業(yè),還是及早打算改行或者轉(zhuǎn)型做管理比較好,這樣就不需要再學(xué)習(xí)自己并不喜歡的“枯燥”技術(shù)了。

對(duì)于那些“真的”對(duì)技術(shù)有興趣的人,要么去做一個(gè)同時(shí)具備軟件設(shè)計(jì)能力的開(kāi)發(fā)人員,也就是富有創(chuàng)造力的 Hacker;要么去做一個(gè)自得其樂(lè)的研發(fā)工程師。雖然環(huán)境惡劣,但是任何東西都擋不住真正的熱愛(ài)。在這個(gè)幾乎人人都把金錢(qián)作為衡量標(biāo)準(zhǔn)的社會(huì)里,你真是得到了上天的眷顧,不僅能夠以自己喜歡的事情謀生,而且收入還過(guò)得去。

Hacker 是適合創(chuàng)業(yè)的,因?yàn)樗麚碛袆?chuàng)造一個(gè)產(chǎn)品的全部能力。電影《社交網(wǎng)絡(luò)》讓很多以寫(xiě)代碼為生的人產(chǎn)生了幻覺(jué),F(xiàn)acebook 創(chuàng)始人傳奇般的經(jīng)歷好像在向全世界宣布:世界是程序員的。很多人只是激動(dòng)地看到扎克伯格的技術(shù)能力,但是卻忽視了他的軟件設(shè)計(jì)能力和對(duì)產(chǎn)品細(xì)節(jié)的重視程度,好像只要埋頭編程就可以做出 Facebook。除了優(yōu)秀的技術(shù)能力之外,扎克伯格的思考能力和創(chuàng)造力同樣出類拔萃,可以感受得到他眼里的世界是不一樣的。我們的工程師又有多少人對(duì)生活中的事物有獨(dú)特而深刻的理解呢?獨(dú)立思考也應(yīng)該是 Hacker 的必備技能。

很多工程師都覺(jué)得自己會(huì)編程,只是缺少一個(gè)“好的 idea”;很多非技術(shù)人員則覺(jué)得自己有一個(gè)“好的 idea”,但是缺少編程能力來(lái)實(shí)現(xiàn)。要做一個(gè)產(chǎn)品,好的 idea 和實(shí)現(xiàn)它的能力缺一不可。然而,我們可以看到最后成功的往往是那些非技術(shù)人員,因?yàn)樗麄兛梢郧宄乜吹骄幊淌且患梢詫W(xué)習(xí)的事情;而工程師們則往往天真地認(rèn)為好的 idea 靠的是“靈機(jī)一動(dòng)”,不會(huì)有意識(shí)地培養(yǎng)自己的觀察能力和想象力。很多好的 idea 都是來(lái)自于平日對(duì)生活的敏銳觀察和思考,然后這些點(diǎn)在某個(gè)時(shí)候忽然連成了一條線,把它簡(jiǎn)單地歸結(jié)為“天才”是懶惰的做法。

“成為一個(gè) Hacker”和“做研發(fā)”,很難說(shuō)二者哪一個(gè)更困難。Hacker 在技術(shù)上可以不是一流,但他運(yùn)用技術(shù)創(chuàng)造產(chǎn)品的綜合能力肯定是一流的;而研發(fā)更注重技術(shù)上的造詣和理解程度,關(guān)注的是深度而不是廣度。如果想要做研發(fā),那么就要好好把基礎(chǔ)知識(shí)研究透徹,比如數(shù)據(jù)結(jié)構(gòu)、算法和網(wǎng)絡(luò)協(xié)議等,不然很容易就會(huì)遇到瓶頸。我遇到過(guò)的每一位研發(fā)工程師都是技術(shù)上的大牛,在很多技術(shù)問(wèn)題上都有非常深刻的見(jiàn)解;他們會(huì)從本質(zhì)上分析問(wèn)題,而不只是糾結(jié)于語(yǔ)言細(xì)節(jié)。

如果你想要通過(guò)自己的作品改變世界,那么就好好提高一下編程之外的能力,做一個(gè)好的 Hacker;如果只想埋頭技術(shù),就應(yīng)該選擇去做研發(fā)。不過(guò),無(wú)論是想要做一個(gè) Hacker 還是一個(gè)研發(fā)工程師,都需要長(zhǎng)年累月地不斷學(xué)習(xí)和思考。聽(tīng)上去好像非常辛苦,不過(guò)每一個(gè)熱愛(ài)技術(shù)的人應(yīng)該都會(huì)把學(xué)習(xí)和思考當(dāng)作一種樂(lè)趣,而不是一種苦役。如果你無(wú)法享受學(xué)習(xí)和思考的樂(lè)趣,那么還是不要在技術(shù)這條路上走下去了,你會(huì)活得特別累,并且毫無(wú)幸福可言。

在這個(gè)充斥著“代碼民工”并且缺乏“技術(shù)文化”的國(guó)度,我們只是關(guān)心怎么樣可以活得更舒服,似乎忘記了編程本身所具有的迷人色彩。Joel Spolsky 說(shuō)過(guò),許許多多的人選擇編程,首要的原因就是,他們寧愿將自己的時(shí)間花在一個(gè)公平有序的地方,一個(gè)嚴(yán)格的能者上庸者下的地方,一個(gè)只要你是對(duì)的就能贏得任何爭(zhēng)論的地方。此外,我覺(jué)得選擇編程還可以獲得最大限度的自由和獨(dú)立。因?yàn)檎夜ぷ鞯臅r(shí)候只需要憑借自己的編程能力,所以不需要見(jiàn)人說(shuō)人話見(jiàn)鬼說(shuō)鬼話,不需要去結(jié)交權(quán)貴達(dá)人,不需要去為了所謂人脈去混圈子,也不需要看到郵件列表里有領(lǐng)導(dǎo)的郵件就去“頂”。平日里寫(xiě)寫(xiě)代碼,其它時(shí)間喝酒吃肉,只交性情相投的朋友,武俠小說(shuō)里的暢快適意也不過(guò)如此。這種獨(dú)立和自由是極為寶貴的,你可知道有多少人在醉酒之后哭喊“安能摧眉折腰事權(quán)貴,使我不得開(kāi)心顏”?

所以說(shuō),編程這件事情關(guān)乎公平,關(guān)乎自由,關(guān)乎美。而作為一個(gè)擁有編程能力的人,你可以親手創(chuàng)造美。只有藝術(shù)家才可以創(chuàng)造美。希望有越來(lái)越多的人可以真正領(lǐng)會(huì)到編程的魅力所在,喜歡上這種藝術(shù)。正如 Raymond 所說(shuō),軟件設(shè)計(jì)和實(shí)現(xiàn)應(yīng)該是一門(mén)充滿快樂(lè)的藝術(shù),一種高水平的游戲。你需要用心。你需要去游戲。你需要樂(lè)于探索。

黑客事業(yè)之未來(lái), 全依賴我們今日之創(chuàng)造。

最后推薦一些文章和書(shū),這些文章和書(shū)大部分都與技術(shù)細(xì)節(jié)無(wú)關(guān),它們討論的是基于編程的令人心醉的文化,也適合非技術(shù)人員閱讀。

1. 如何成為一名黑客。所有學(xué)習(xí)編程的都應(yīng)該多看幾遍這篇文章,至少把 Hacker 和 Cracker 的區(qū)別弄清楚。

2. 大教堂和市集。這是一篇關(guān)于 Linux 的經(jīng)典文章。這里需要聲明一下,我對(duì)那些 Windows 程序員沒(méi)有偏見(jiàn),只是我覺(jué)得作為一個(gè)以編程為職業(yè)的人,如果不參觀一下 Linux/Unix 的深邃世界,未免太過(guò)狹隘。

3. UNIX編程藝術(shù)。這本書(shū)雖然名字叫做“編程藝術(shù)”,但里面并不講授如何編程,而是全面展示了迷人的 Unix 哲學(xué)和文化。看完之后你會(huì)發(fā)現(xiàn),那些看上去不修邊幅、整日對(duì)著電腦屏幕編寫(xiě)代碼的邋遢程序員,對(duì)于美竟然會(huì)有那么高的追求。“美在計(jì)算機(jī)科學(xué)中的地位,要比在其他任何技術(shù)中的地位都重要,因?yàn)檐浖珡?fù)雜了。美是抵御復(fù)雜的終極武器。” 這本書(shū)的作者 Raymond 同樣是《如何成為一名黑客》和 《大教堂和市集》的作者。

4. 黑客與畫(huà)家。這篇文章是 Paul Graham 寫(xiě)的,文中詳細(xì)描述了黑客與畫(huà)家的相似之處。這里所說(shuō)的“黑客”和《如何成為一名黑客》中所說(shuō)的“黑客”略有不同,但你可以看到他們很多共同點(diǎn)。本文也已經(jīng)被收錄到 《Hackers and Painters》一書(shū),該書(shū)的中文版《黑客和畫(huà)家——Paul Graham文集》由阮一峰翻譯,應(yīng)該很快就會(huì)面世,我十分期待。

5.創(chuàng)造者的品味。作者同樣是 Paul Graham,文章觀點(diǎn)獨(dú)到,見(jiàn)解深刻,每讀一次都有新的收獲。

6. 軟件隨想錄:程序員部落酋長(zhǎng)Joel談軟件。這本書(shū)是 Joel Spolsky 的精華文章結(jié)集,作者寫(xiě)文章寫(xiě)得非常有趣,擅長(zhǎng)講故事,前幾天我翻譯的那篇《程序員阿士頓的故事》就是他的手筆。本書(shū)由阮一峰翻譯,翻譯質(zhì)量非常高,有興趣的可以先去試讀幾篇。

7. About Face3交互設(shè)計(jì)精髓。本書(shū)是交互設(shè)計(jì)領(lǐng)域的經(jīng)典著作,作者之一 Alan Cooper 原來(lái)也是知名程序員,被稱為 “Visual Basic 之父”,所以這本書(shū)里面對(duì)程序員的批評(píng)還是很中肯的。另外,書(shū)中“設(shè)計(jì)體貼的軟件”的核心思想非常棒,值得程序員好好閱讀和思考。

該文章在 2011/3/14 16:45:49 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved