程序員的修煉:從優(yōu)秀到卓越 - 讀書筆記

程序員的修煉 - 從優(yōu)秀到卓越

本書是筆者上一篇讀書筆記高效能程序員的修煉的姊妹篇,同樣介紹了一些程序員需要了解的,有關(guān)于編程本身以外的一些事情。

和上一篇讀書筆記的風(fēng)格類似,筆者摘錄了幾段原書內(nèi)容并結(jié)合了作者的感悟?qū)懴铝诉@篇讀書筆記。筆者還是深切希望各路英雄能提出寶貴的意見和想法。


關(guān)于 To-Do list

這個(gè)冗長的To-Do列表始終存在著,像一把懸掛在我頭頂上的利刃,而且每天都在變得更加沉重和鋒利。

每天早上使勁想出這天你需要做的最重要的3件事。

其實(shí)對(duì)于待辦事項(xiàng)列表,筆者也讀過相關(guān)的書籍,一般都是不推薦使用待辦事項(xiàng)列表的。筆者總結(jié)出原因有二:

  • 待辦事項(xiàng)列表上面的待辦事項(xiàng)只是列出了還未完成的事情而已,并不帶有“何時(shí)開始進(jìn)行”和“何時(shí)完成“的信息。簡單說,就是只有“what to do”而沒有“when to do”和“when to finish”。也就是它本身能帶給列表主人的驅(qū)動(dòng)力不夠高。

  • 正是因?yàn)榇k事項(xiàng)列表帶給主人的驅(qū)動(dòng)力不高,那么結(jié)果就是它們一直會(huì)躺在列表里持續(xù)很長時(shí)間。那么它們的主人在潛意識(shí)中一直掛念著它們,分散了主人的精力。因?yàn)橹魅恕爸馈笨傆幸恍┦虑檫€是沒有完成的。


關(guān)于探索的態(tài)度

比起專業(yè)技能或者智商,成功更需要一種探索的態(tài)度,它是一種對(duì)于可能性和失敗后果的執(zhí)著。那些具備良好潛質(zhì)的人總是會(huì)做出類似的回答“我總是在犯一些作物。昨天剛發(fā)生了一件挺嚴(yán)重的事情,前因后果是這樣的。。?!?。

相反,那些回答“我并沒有犯過大錯(cuò)誤”或者“我犯過一些嚴(yán)重的錯(cuò)誤,但是錯(cuò)誤的原因并不在于我”的人是不會(huì)成為杰出的外科醫(yī)生的。

探索的態(tài)度對(duì)于程序員也是尤為重要的。筆者在開始寫代碼的時(shí)候總是以“解決問題就萬事大吉”的標(biāo)準(zhǔn),遇到了可能的坑卻睜一只眼閉一只眼。但是每每這樣的時(shí)候,后來總是會(huì)出bug。

其實(shí)這就是逃避,就是一種缺乏探索精神的表現(xiàn)。其實(shí)我把那些坑弄懂了也不需要多少時(shí)間嘛。弄懂了,以后再遇到就穩(wěn)穩(wěn)當(dāng)當(dāng)搞定了。沒弄懂,就還是踩坑。突然想到了一句話:遇到問題,你硬著頭皮解決了一半,就只剩下一半的問題。但是你逃避,就是兩個(gè)問題了。

不管你在做什么項(xiàng)目,懷揣著學(xué)習(xí)和鍛煉的態(tài)度去完成它吧,這是絕對(duì)值得的!與項(xiàng)目結(jié)果相比,過程才是最大的財(cái)富。如果你沒能從一個(gè)項(xiàng)目的過程中學(xué)到一點(diǎn)東西,這才是真正失敗的項(xiàng)目。


關(guān)于專家

這個(gè)世界上只有少數(shù)的專家,卻有大量的普通人。當(dāng)你想要建立一個(gè)包含各種信息的網(wǎng)站時(shí),這些普通人的貢獻(xiàn)是最重要的。這是一個(gè)不規(guī)則的世界,里面裝滿了無窮無盡的細(xì)節(jié)。

作為專家,重要的是不是告訴別人你知道什么。而是要清楚你應(yīng)該問什么樣的問題,并且靈活運(yùn)用你所掌握的知識(shí)去解決眼下的具體問題。作為專家,你的作用是提供明確的,可執(zhí)行的方向。

讀到這些,筆者覺得專家理應(yīng)受到種種質(zhì)疑,而為了能經(jīng)得起這些質(zhì)疑,那么就不應(yīng)該跟人家說“我讀了神馬神馬著作,精通神馬神馬技術(shù),你看我的論文,你看我的研究成果等等”,真正證明自己是專家的途徑,一般只有幫助非專家人士或者別的專家高效地解決問題。

其實(shí),龐大的知識(shí)體系也是對(duì)解決問題幫助很大的:因?yàn)檫@些有著龐大知識(shí)體系的專家的晶體智力水平很高,很多時(shí)候,他們并不需要?jiǎng)幽X子(也就是流體智力),直接調(diào)出相應(yīng)知識(shí)就能解決。所以說,那些自稱專家的人如果連連無法解決問題的話,那么真的是low爆了。


關(guān)于軟件項(xiàng)目管理

鼓勵(lì)并強(qiáng)制要求程序員創(chuàng)建一張他們所要做的全部事情的列表,然后盡可能添加所有的子項(xiàng),這樣就能估算這個(gè)任務(wù)話費(fèi)多少時(shí)間了。

如果有人問你的時(shí)間表,你應(yīng)該拿出一張你要做的所有事情的列表。如果拿不出來,你所要做的第一件事情,就是要做出這么一張列表。

這種列表和待辦事項(xiàng)列表稍有不同。這種列表屬于“時(shí)間表”,它的目的是監(jiān)控進(jìn)度:所以說,它的時(shí)間總長度是不變的。但是待辦事項(xiàng)列表的時(shí)間總長度是趨于“無限的”(當(dāng)然,只對(duì)于執(zhí)行力很差的人來說)。


關(guān)于“一夜成名”

一夜成名的傳說容易讓人誤入歧途,并且遺毒不淺。如果你打算做一個(gè)全新的東西,要有打持久戰(zhàn)的準(zhǔn)備。

勤于練習(xí):不是一遍又一遍的簡單重復(fù),而是要不斷挑戰(zhàn)略微超出自身能力之外的任務(wù)-努力嘗試,并在做的同時(shí)以及之后對(duì)自己的表現(xiàn)進(jìn)行評(píng)估,然后糾正錯(cuò)誤,如此反復(fù)。

這里談到了程序員對(duì)自己本身的迭代:快速迭代。其實(shí)同軟件開發(fā)是一個(gè)道理:軟件迭代的速度遠(yuǎn)重要于迭代的質(zhì)量。也就是說,我們?cè)趯W(xué)習(xí)的過程中,對(duì)自己的提升也應(yīng)該是快速而輕盈的。

切忌一口氣吃個(gè)胖子,肯定是吃不消的。應(yīng)該結(jié)合自己已有的知識(shí)水平,再尋找對(duì)自己來說稍微有點(diǎn)挑戰(zhàn)性的技術(shù)來攻克,一來學(xué)習(xí)效率高,二來可以提升自信,進(jìn)入到新一輪的學(xué)習(xí)中去。


關(guān)于優(yōu)秀和平庸程序員之間的鴻溝

  • 成為更加優(yōu)秀的程序員的方法是拋開編程。
  • 你的興趣越廣泛,就能越勝任你的工作。
  • 為了真正地成為一名更好的程序員,你必須培養(yǎng)自己對(duì)于編程周邊所有事情的熱情。
  • 單單靠編程,你只能補(bǔ)足或者增強(qiáng)自己已有的變成技能,永遠(yuǎn)也無法成為一名優(yōu)秀的程序員。你需要嘗試去了解你的客戶,你所處的行業(yè)以及相關(guān)的業(yè)務(wù)。
  • 聰明的開發(fā)者知道,他們的工作遠(yuǎn)遠(yuǎn)不止編寫代碼和發(fā)布產(chǎn)品:他們的工作是開發(fā)出人們真正想要使用的軟件。這當(dāng)然包括編碼,但還有大量全局性的其他事情,比如撰寫技術(shù)文檔,交互設(shè)計(jì),培養(yǎng)用戶社區(qū),乃至產(chǎn)品愿景,這些對(duì)于軟件的全貌成功都是至關(guān)重要的。

關(guān)于修復(fù)bug

在對(duì)報(bào)告數(shù)據(jù)的廣泛分析之后,我們看到:80%的客服問題在修復(fù)了用戶報(bào)得最多的20%的bug之后就得到解決。即使修復(fù)用戶報(bào)的最多的1%的bug,也能解決50%的客服問題。這個(gè)分析結(jié)果通常對(duì)于各家公司都是成立的。

如果你修復(fù)了一個(gè)真實(shí)用戶永遠(yuǎn)也碰不到的bug,那你修復(fù)有什么價(jià)值呢?

你越快將你的軟件推到真實(shí)用戶面前,就會(huì)得到越多的數(shù)據(jù)來改進(jìn)你的軟件。問題不在于你在發(fā)布軟件的時(shí)候帶去了多少bug,而是在于你能多快地修復(fù)那些bug。

因此,筆者認(rèn)為在bug管理的問題上,要注意兩點(diǎn):

  • 不要怕將bug暴露在用戶面前,盡早地收集用戶的反饋數(shù)據(jù)是關(guān)鍵。
  • 而且,在收到大量的反饋數(shù)據(jù)之后,也應(yīng)遵循二八定律,要以bug的影響程度來劃分bug的優(yōu)先級(jí),不應(yīng)盲目排列修改bug的順序。

關(guān)于衡量軟件的成功

多少用戶在真正使用你的軟件?這才是衡量成功的終極標(biāo)準(zhǔn)。

其實(shí)無論交互多絢麗,功能多么吊炸天,一旦用戶不需要,用戶不喜歡,不掏錢,其實(shí)是沒有任何卵用的。而且在一定的技術(shù)水準(zhǔn)上,如果無法“說服”大量客戶使用產(chǎn)品,也同樣是讓人心痛的。

  • 技術(shù)再牛也要從用戶體驗(yàn)出發(fā),少做一些中看不中用的東西。想出數(shù)百個(gè)功能很容易,但是從中挑出幾個(gè)可以提升用戶體驗(yàn),真正能吸引用戶,讓用戶掏腰包的功能實(shí)在不易。
  • 產(chǎn)品做出來了,產(chǎn)品有沒有人用,營銷和推廣同時(shí)占有舉足輕重的作用。突然想到以前在一本營銷書籍看到的:能做出比麥當(dāng)勞好吃的漢堡包很容易,但是能比麥當(dāng)勞賣得好卻是很難得,眾人難以模仿麥當(dāng)勞整體的營銷模式。相同的,像ZARA品牌的生產(chǎn)模式和營銷模式之高效,是其他品牌無法超越的,這也是其風(fēng)靡全球的原因。

關(guān)于用戶的謊言

  • 我們必須根據(jù)用戶的實(shí)際行為模式來設(shè)計(jì)產(chǎn)品。
  • 他們會(huì)說喜歡你的軟件。但是我們應(yīng)該去觀察他們是否使用了軟件,以及他們是怎么使用的。基于行為數(shù)據(jù)去設(shè)計(jì)軟件,而不是靠用戶說的“謊言”。

筆者認(rèn)為,我們很少能從用戶言語上得到用戶特別真實(shí)的感受。那些善良的客戶們有時(shí)礙于面子,有時(shí)想當(dāng)和事老,憑著“你好我好大家好”的原則,說一些心里沒有的,善意的謊言。

所以那些問卷調(diào)查什么的,走街串巷訪問什么的其實(shí)意義不大。真正能“窺視”用戶內(nèi)心的是那些技術(shù)埋點(diǎn)。我記得有一次參加一個(gè)分享會(huì),觸寶科技的CEO跟大家分享了他們的埋點(diǎn):他們通過埋點(diǎn)的方式,甚至?xí)缹?dǎo)致用戶刪掉app的是哪幾個(gè)界面和動(dòng)作。這讓我感觸很大,既然能做到這些,那么如果想知道用戶喜歡點(diǎn)擊那里,喜歡看哪里,喜歡做那幾個(gè)動(dòng)作,豈不是輕而易舉?知己知彼,百戰(zhàn)豈殆?


最后作者推薦的書籍

  1. 《代碼大全(第二版)》
  2. 《點(diǎn)石成金:訪客至上的網(wǎng)頁設(shè)計(jì)秘籍》
  3. 《人件》
  4. 《程序員修煉之道:從小工到專家》
  5. 《軟件工程的事實(shí)與謬誤》

其中第1本和第4本筆者在看。第1本對(duì)于非科班出身的筆者來說實(shí)在是晦澀難懂。不過既然作者說讀完此書就能超過90%的程序員,那么不失為一個(gè)節(jié)省時(shí)間的好方法。以后有機(jī)會(huì)的話,希望能和各路英雄討論討論個(gè)中奧妙。


筆者最后的話

其實(shí)還是希望能和各位相互討論,其實(shí)相比于文章被“喜歡”,筆者更希望諸位能留下評(píng)論,毫不留情地指出小弟想法中的不妥之處,這些是遠(yuǎn)比“打賞”和“喜歡”更讓小弟高興的呢!

本文已經(jīng)同步到我的個(gè)人博客:傳送門,歡迎常來^^


本文已在版權(quán)印備案,如需轉(zhuǎn)載請(qǐng)?jiān)L問版權(quán)印。48422928

獲取授權(quán)

-------------------------------- 2018年7月16日更新 --------------------------------

注意注意?。?!

筆者在近期開通了個(gè)人公眾號(hào),主要分享編程,讀書筆記,思考類的文章。

  • 編程類文章:包括筆者以前發(fā)布的精選技術(shù)文章,以及后續(xù)發(fā)布的技術(shù)文章(以原創(chuàng)為主),并且逐漸脫離 iOS 的內(nèi)容,將側(cè)重點(diǎn)會(huì)轉(zhuǎn)移到提高編程能力的方向上。
  • 讀書筆記類文章:分享編程類,思考類心理類,職場類書籍的讀書筆記。
  • 思考類文章:分享筆者平時(shí)在技術(shù)上,生活上的思考。

因?yàn)楣娞?hào)每天發(fā)布的消息數(shù)有限制,所以到目前為止還沒有將所有過去的精選文章都發(fā)布在公眾號(hào)上,后續(xù)會(huì)逐步發(fā)布的。

而且因?yàn)楦鞔蟛┛推脚_(tái)的各種限制,后面還會(huì)在公眾號(hào)上發(fā)布一些短小精干,以小見大的干貨文章哦~

掃下方的公眾號(hào)二維碼并點(diǎn)擊關(guān)注,期待與您的共同成長~

公眾號(hào):程序員維他命
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容