|
老羅的Smartisan T1手機(jī)發(fā)布會(huì)很多人應(yīng)該都看了,發(fā)布會(huì)的最后老羅凝視著自己的工匠自畫像,半晌沒說(shuō)話,隨后轉(zhuǎn)過(guò)身,慢慢離開舞臺(tái),屏幕下方只留下一句話:
我不是為了輸贏,我就是認(rèn)真。
這一瞬間讓我想起93年「獅城舌戰(zhàn)」的主角蔣昌建,在「人性本善還是人性本惡」的總結(jié)陳詞最后,以顧城的名句,「黑夜給了我黑色的眼睛,我卻用它尋找光明」,把整個(gè)辯論賽的氛圍推向高潮。
而老羅的這句話,和這句話背后的工匠背景,卻以另外一種無(wú)聲的卻震人心魄的力量,敲打著每一個(gè)在場(chǎng)的,或是觀看著整個(gè)發(fā)布會(huì)的觀眾的心緒。
「工匠情懷」,我深有體會(huì),就像我在 面向GC的Java編程 一文中所提到的:
優(yōu)秀程序員的價(jià)值,不在于其所掌握的幾招屠龍之術(shù),而是在細(xì)節(jié)中見真著。
如果我們可以一次把事情做對(duì),并且做好,在允許的范圍內(nèi)盡可能追求卓越,為什么不去做呢?
追求卓越,追求完美,追求細(xì)節(jié)的極致。小時(shí)候看到那些修表匠,握著一個(gè)小螺絲刀,或是看著電工,用烙鐵沾著錫和松香,在那一小寸的世界里,把壞了的地方修好,那種專注的眼神,覺得很厲害。
現(xiàn)在再去回想那些工匠工作的場(chǎng)景,越發(fā)覺得欽佩。在我老家有一家刻章的店,在我上幼兒園的時(shí)候就已經(jīng)在那開了很多年了。前段時(shí)間需要刻一個(gè)章,發(fā)現(xiàn)那家店還在,于是走進(jìn)去,門口坐著一個(gè)老人,我確實(shí)記不得當(dāng)年是不是他,不過(guò)看這歲數(shù)八九不離十。我以前在別的地方刻的章,都是在電腦里設(shè)計(jì)完圖案后,激光刻蝕。但那次老人卻是用的手刻,我著實(shí)驚呆了。只看他拿出一塊紅色的印底,右手持著刻刀,開始一下一下地刻著。雖然老人連話都不怎么說(shuō)得清了,但是工作時(shí)那專注的神情,和精湛的手藝,以及最后成品那比機(jī)器更完美的效果,著實(shí)讓我心里非常動(dòng)容。
一、技術(shù)人的執(zhí)著
我見過(guò)很多人,也見過(guò)很多程序員,都有如此的「工匠情懷」。
做產(chǎn)品需求評(píng)審,有的人善于快速提供技術(shù)解決方案,在最短的時(shí)間內(nèi)解決問題。
但我見過(guò)的很多牛人,他們除了能在腦海里最快地形成方案原型,并且更深入地考慮各種細(xì)節(jié)點(diǎn),最終能給出一個(gè)更趨于完善的技術(shù)方案。
在他們身上,我看到了對(duì)這項(xiàng)職業(yè)的自我尊重,對(duì)自我價(jià)值的追求,也有對(duì)「卓越」的理解和渴求。
《精通正則表達(dá)式》的譯者余晟老師寫過(guò)他和正則表達(dá)式的 緣起 。只是因?yàn)轫?xiàng)目經(jīng)理讓他「多用Google,查查正則表達(dá)式的資料」,余老師打開了正則的大門,讀完了英文原版的《Mastering Regular Expression》,如今成為了國(guó)內(nèi)最了解正則表達(dá)式的人之一。
看完那篇文章其實(shí)我想起了我的實(shí)習(xí)經(jīng)歷。那時(shí)候我剛?cè)ス緝扇欤幸惶煳依习逭椅易屛已芯恳幌氯绾斡?a href=/itjie/Javajishu/ target=_blank class=infotextkey>Java里的MappedByteBuffer做文件內(nèi)存映射來(lái)讀取大文件。盡管我們當(dāng)時(shí)要處理的文件很大,以我在學(xué)校編碼的經(jīng)驗(yàn)看,用普通的Reader也是可以很好地解決的。
于是我說(shuō),「這個(gè)其實(shí)用Reader也能做,更簡(jiǎn)單一些,沒那么麻煩。」
老板反問我,「什么叫沒那么麻煩,這是一個(gè)做技術(shù)的人的態(tài)度嗎?」
那幾天我花了很多時(shí)間,去從Linux一直到JVM,去了解什么是內(nèi)存映射,底層原理是什么,和其它技術(shù)的比較、優(yōu)缺點(diǎn),并和其它幾種讀文件的技術(shù)做了性能對(duì)比。
雖然最后項(xiàng)目沒有采用這個(gè)方案,但是那句反問直到現(xiàn)在一直在我腦海里,時(shí)時(shí)地提醒我:「做技術(shù)的人,對(duì)待技術(shù),應(yīng)該擁有什么樣的態(tài)度?」
所以其實(shí)我很感謝我的老板,以前他教我們這些新人優(yōu)秀的職場(chǎng)習(xí)慣,有一條是每天的郵件必須沒有未讀數(shù),即便是不需要閱讀的郵件,也要一鍵置為已讀,不要留一個(gè)未讀的數(shù)字在那。現(xiàn)在想起來(lái),有點(diǎn)像ios App右上角那個(gè)提醒數(shù)的角標(biāo),有些強(qiáng)迫癥的人怎么也忍受不了有個(gè)紅圈圈在那。開個(gè)玩笑,雖然有些習(xí)慣看起來(lái)可有可無(wú),無(wú)關(guān)緊要,但這確實(shí)映射了一種態(tài)度和思維習(xí)慣。
完美有多遠(yuǎn)?我不知道,但我愿意多往前走一步。
二、拾起初衷
我們的生活,每天很忙碌。有時(shí)候忙得自己都忘記了為什么在此處,有時(shí)候忙得只能不斷地用直覺、用以往的經(jīng)驗(yàn)去設(shè)計(jì)一個(gè)解決方案,而沒有時(shí)間去思考需求是不是合理,方案是不是最佳,我們以為自己設(shè)計(jì)的是最佳實(shí)踐,誰(shuí)知道呢?
這個(gè)社會(huì),這個(gè)世界,處在一個(gè)以不可思議的速度向前直奔的時(shí)間線上,我們處在這個(gè)時(shí)代的浪潮之上,每個(gè)人都感到了那種令人窒息的緊迫感。
父母都是不希望孩子太累的,我們見過(guò)很多這樣的話:
差不多就行了。
糊弄糊弄就完事了。
不要與眾不同。
順其自然。
但是你應(yīng)該問問自己,是不是真的要 順其自然 ?
我記得在上大二的時(shí)候,聽一個(gè)叫端木恒的人說(shuō)過(guò)一句話,大意是,這個(gè)世界上,政治可以改變很多事情,而科技,可以通過(guò)促進(jìn)信息的流通,最終去推動(dòng)政治的變革,去改變整個(gè)世界。
當(dāng)時(shí)覺得這事兒太酷了,是的,所以我當(dāng)時(shí)的想法是,要去一個(gè)技術(shù)足夠強(qiáng)大,并且對(duì)人們的生活有實(shí)質(zhì)影響的公司。希望用技術(shù)的力量去讓更多人生活地更好。
這當(dāng)然是一種不自量力,但又如何呢?只是一個(gè)普通人小小的想法,不斷追求卓越,愿意比別人多往前走一步而已。
就像馮大輝說(shuō)的:
所有人都說(shuō)你做不成,都告訴你不要去做,不靠譜,嘲諷你,而你最后真的把事情做起來(lái)了,這就是牛逼。
做成了,其實(shí)牛不牛逼對(duì)你自己而言已經(jīng)不重要了。
沒做成,所有人都笑你是傻逼,但起碼也對(duì)得起自己的內(nèi)心。
再說(shuō),如果 青年人 想的都是養(yǎng)老和退休,那做事的人在哪?
三、發(fā)現(xiàn)更好的自己
老羅最后的一個(gè)問題是:
在一個(gè)完美主義者的眼里,這是一個(gè)怎樣的世界?
這個(gè)社會(huì)上很多人在生活上追求更高的品質(zhì),但愿意對(duì)自己手頭所做的事情堅(jiān)持高標(biāo)準(zhǔn)堅(jiān)持卓越理念的人已經(jīng)不多見了,以至于我們發(fā)現(xiàn)花再多的錢也買不到安全的食品了,花了一輩子的積蓄買的房子卻有各種質(zhì)量問題。捫心自問自己在工作中是否能堅(jiān)持某些東西,大部分人的態(tài)度都差不多,只是你糊弄一下不會(huì)怎樣,而他馬虎一點(diǎn)就會(huì)死人,區(qū)別僅僅在于這里。
M·斯科特·派克說(shuō)過(guò)一句話:
規(guī)避問題和逃避問題的趨向,是人類心理疾病的根源。
很多人把隨大流把妥協(xié)作為一種「成熟」的標(biāo)志,小時(shí)候敢想敢說(shuō)可能也敢做,長(zhǎng)大以后懂得了人情世故,懂得向現(xiàn)實(shí)妥協(xié),45度角仰望天空說(shuō)自己終于長(zhǎng)大了。再看身邊那些「冥頑不靈」、「認(rèn)死理」的所謂完美主義者,認(rèn)為這些人才是不正常的群體,把這些人要么當(dāng)做傻逼要么當(dāng)做裝逼。
天哪,我都想問,「這是一個(gè)怎樣的世界?」
肯定有人會(huì)說(shuō),站著說(shuō)話不腰疼。誠(chéng)然,在生活中,有的人是為了活下去,有的人是為了活得更好,有的人是為了幫助別人活得更好。這是不同的人生階段,每個(gè)人的情況不一樣,但這并不影響每個(gè)人內(nèi)心的精神寄托和對(duì)信念的追求。
我從不指望去改變別人,但我相信我可以改變自己,雖然也很難。
學(xué)生都喜歡問,如何最快地告訴自己的能力。說(shuō)實(shí)話,我真的不知道什么是捷徑,我的經(jīng)驗(yàn)就是和比你優(yōu)秀的人一起工作,經(jīng)常請(qǐng)教比你資深的人,不斷挑戰(zhàn)過(guò)去的自己(每天審視自己太緊張了,只要比前段時(shí)間的自己更好就可以了)。
四、細(xì)節(jié)是魔鬼
Devils are in the details,細(xì)節(jié)是魔鬼,這句話很多人都聽過(guò),但要在工作中時(shí)時(shí)刻刻注意?難。
前幾天給同事做Code Review,就幾行代碼,發(fā)現(xiàn)了一個(gè)問題。
場(chǎng)景是我們發(fā)現(xiàn)某個(gè)系統(tǒng)中存在占用內(nèi)存超大的HTML字符串,需要統(tǒng)計(jì)HTML字符串的長(zhǎng)度,于是為了獲得準(zhǔn)確的字節(jié)長(zhǎng)度,這段代碼調(diào)用的是String.getBytes().length,一眼看起來(lái)并沒有什么大問題。
但是考慮到本身這個(gè)字符串就比較大,聯(lián)想到Java內(nèi)部是用UTF-16存儲(chǔ)字符串的,而getBytes()會(huì)轉(zhuǎn)換為系統(tǒng)默認(rèn)編碼(GBK或是UTF-8等等),這里必然存在底層字符數(shù)組的拷貝(可以去參考String.getBytes()的源代碼證實(shí)),一個(gè)本身就很大的字符串,經(jīng)過(guò)拷貝,將會(huì)占用更多的內(nèi)存,加劇這個(gè)問題,而在HTML中,中文其實(shí)只占了非常小的一部分,所以直接用String.length(),雖然會(huì)少數(shù)幾個(gè)字符,但對(duì)統(tǒng)計(jì)結(jié)果影響其實(shí)并不大,并且這里不存在任何數(shù)組分配的開銷。
另外建議所有調(diào)用String.getBytes()的地方通通顯式傳入編碼,這是個(gè)大坑。
另外一個(gè)案例,也是在Code Review的時(shí)候發(fā)現(xiàn)的。
某個(gè)調(diào)用場(chǎng)景下,每次都會(huì)新建一個(gè)解析器對(duì)象去解析結(jié)果,盡管解析器沒有任何實(shí)例變量不會(huì)產(chǎn)生線程安全問題,創(chuàng)建的開銷也并不大,但我還是堅(jiān)持要改成單例,使用同一個(gè)實(shí)例去處理,這也符合面向GC編程的思想。
這些場(chǎng)景,每天我們都在遇到,也許我們會(huì)說(shuō)這些都是很小的問題,無(wú)傷大雅,差不多就行了。但就像前面說(shuō)的,這是一種態(tài)度,一種思維習(xí)慣,當(dāng)你堅(jiān)持用最高的標(biāo)準(zhǔn)去要求自己,去要求自己的工作時(shí),你才有可能漸漸接近卓越。細(xì)節(jié)是魔鬼,它會(huì)在完全察覺不到的時(shí)刻,把人拉回平庸。
「我不是為了輸贏,我就是認(rèn)真。」這不代表我們不在乎輸贏,從頭至尾我都堅(jiān)信,只有堅(jiān)持完美,堅(jiān)持品質(zhì),堅(jiān)持那些我們?cè)?jīng)了解現(xiàn)在可能已經(jīng)放棄了的美好的東西,像一個(gè)老工匠,把一種專注、追求極致的情懷融入我們的作品里,也許有一天,就有人,追尋著 夢(mèng)想 ,發(fā)現(xiàn)了 生活更多的可能性 ,像喬布斯、像貝索斯,改變整個(gè)行業(yè),改變?nèi)澜纭?/p>
我們是被這個(gè)時(shí)代推上浪潮之巔的人,是去做一個(gè)見證者,或是一個(gè)沖在最前面也不怕被拍死的傻瓜,是我們每個(gè)人選擇的權(quán)利。
只是不要忘記,那些傻瓜,不是真的不怕死,他們只是認(rèn)真。
it知識(shí)庫(kù):「我只是認(rèn)真」——聊聊工匠情懷,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。