作為一個程序員是幸福的,我們見證了互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)和大數(shù)據(jù)時代的變遷,從來沒有一個行業(yè)可以有這么多激動人心的產(chǎn)品,可以這樣改變整個人類的生活,我們很幸運身處在這個行業(yè)中,可以親身參與那么多令人興奮和挑戰(zhàn)的工作。
同時,作為一個程序員也是迷茫的。這個行業(yè)還太年輕,變化太快,無休止的加班,學(xué)不完的東西,學(xué)完的知識又馬上被淘汰。我們好像總是疲于奔命,卻不知道未來的路在哪里。很多人說技術(shù)這個職業(yè)是青春飯,確實,快速的工作節(jié)奏,對身體的消耗也是巨大的,歲數(shù)越大越會感到壓力。
程序員就是這樣一個痛并快樂著的職業(yè),隨著信息技術(shù)對人們生活的滲透,在我們可見的未來里,這個職業(yè)仍然是非常有前景的。
程序員的工作像是藝術(shù)和工程的結(jié)合體,一方面,他不是純粹的藝術(shù),他是有明確的用戶需求的,是要在有限的時間點和資源的情況下,為用戶交付高質(zhì)量的產(chǎn)品。
另一方面,他也不完全是工程化的項目,我們要為用戶打造激動人心的產(chǎn)品,就需要有創(chuàng)意的思考,就需要打破常規(guī),給用戶驚喜。而創(chuàng)意的來源恰恰和藝術(shù)是想通的,就需要我們具有細膩的感知力。
那么,怎么做好這個職業(yè)呢?怎么才能不焦慮呢?我想起了日本的壽司之神,到今年已經(jīng)90多歲的小野二郎,做了一輩子的壽司,他并不覺得做壽司是一件無聊的事情,而是樂在其中,而且每個環(huán)節(jié)都精益求精。用時下時髦的詞來說,他是一個匠人。我們做程序開發(fā)不也是如此嗎?要尋找這個答案,我們就需要觀察頂尖的程序員,看他們是如何思考的,如何做事的,如何打磨自己的手藝并樂在其中的。
下面的章節(jié),我們會分為四個部分來聊這個話題。第一個部分,我們會聊怎么打磨好代碼開發(fā)這個手藝。比學(xué)習(xí)更多的知識更重要的是掌握編寫好代碼的心法,學(xué)會其中的思維方式。第二個部分,我們會聊怎么讓團隊緊密的協(xié)作,程序開發(fā)是一個需要團隊合作的事情,怎么讓大家愿意跟你合作至關(guān)重要。第三個部分,怎么做出激動人心的產(chǎn)品,或者優(yōu)雅的架構(gòu)設(shè)計,這些都需要創(chuàng)意,程序員應(yīng)該磨煉自己的創(chuàng)意能力。最后一部分,怎么成為一個優(yōu)秀的匠人,專注到當(dāng)下,而不是被紛繁的欲望和焦慮困擾,這需要我們向內(nèi)求,了解自己,改變自己。
我觀察身邊的很多頂尖的程序員,他們跟普通程序員的差異并不在知識上,而是在思考方式和做事方式上,但是反而是這些基本的原則,經(jīng)常會被我們遺忘,一直堅持下來卻很難。我們這四個部分就是想聊一下這些基本原則,期望他能成為程序員的窮查理寶典,能引起大家的一點點共鳴。