程序員的修煉:從優(yōu)秀到卓越 - 讀書(shū)筆記
程序員的修煉 - 從優(yōu)秀到卓越 本書(shū)是筆者上一篇讀書(shū)筆記高效能程序員的修煉的姊妹篇,同樣介紹了一些程序員需要了解的,有關(guān)于編程本身以外的一些事情。
關(guān)于 To-Do list
這個(gè)冗長(zhǎng)的To-Do列表始終存在著,像一把懸掛在我頭頂上的利刃,而且每天都在變得更加沉重和鋒利。
每天早上使勁想出這天你需要做的最重要的3件事。
其實(shí)對(duì)于待辦事項(xiàng)列表,筆者也讀過(guò)相關(guān)的書(shū)籍,一般都是不推薦使用待辦事項(xiàng)列表的。筆者總結(jié)出原因有二:
待辦事項(xiàng)列表上面的待辦事項(xiàng)只是列出了還未完成的事情而已,并不帶有“何時(shí)開(kāi)始進(jìn)行”和“何時(shí)完成“的信息。簡(jiǎn)單說(shuō),就是只有“what to do”而沒(méi)有“when to do”和“when to finish”。也就是它本身能帶給列表主人的驅(qū)動(dòng)力不夠高。
正是因?yàn)榇k事項(xiàng)列表帶給主人的驅(qū)動(dòng)力不高,那么結(jié)果就是它們一直會(huì)躺在列表里持續(xù)很長(zhǎng)時(shí)間。那么它們的主人在潛意識(shí)中一直掛念著它們,分散了主人的精力。因?yàn)橹魅恕爸馈笨傆幸恍┦虑檫€是沒(méi)有完成的。
關(guān)于探索的態(tài)度
比起專業(yè)技能或者智商,成功更需要一種探索的態(tài)度,它是一種對(duì)于可能性和失敗后果的執(zhí)著。那些具備良好潛質(zhì)的人總是會(huì)做出類似的回答“我總是在犯一些作物。昨天剛發(fā)生了一件挺嚴(yán)重的事情,前因后果是這樣的。。。”。
相反,那些回答“我并沒(méi)有犯過(guò)大錯(cuò)誤”或者“我犯過(guò)一些嚴(yán)重的錯(cuò)誤,但是錯(cuò)誤的原因并不在于我”的人是不會(huì)成為杰出的外科醫(yī)生的。
探索的態(tài)度對(duì)于程序員也是尤為重要的。筆者在開(kāi)始寫(xiě)代碼的時(shí)候總是以“解決問(wèn)題就萬(wàn)事大吉”的標(biāo)準(zhǔn),遇到了可能的坑卻睜一只眼閉一只眼。但是每每這樣的時(shí)候,后來(lái)總是會(huì)出bug。
其實(shí)這就是逃避,就是一種缺乏探索精神的表現(xiàn)。其實(shí)我把那些坑弄懂了也不需要多少時(shí)間嘛。弄懂了,以后再遇到就穩(wěn)穩(wěn)當(dāng)當(dāng)搞定了。沒(méi)弄懂,就還是踩坑。突然想到了一句話:遇到問(wèn)題,你硬著頭皮解決了一半,就只剩下一半的問(wèn)題。但是你逃避,就是兩個(gè)問(wèn)題了。
不管你在做什么項(xiàng)目,懷揣著學(xué)習(xí)和鍛煉的態(tài)度去完成它吧,這是絕對(duì)值得的!與項(xiàng)目結(jié)果相比,過(guò)程才是最大的財(cái)富。如果你沒(méi)能從一個(gè)項(xiàng)目的過(guò)程中學(xué)到一點(diǎn)東西,這才是真正失敗的項(xiàng)目。
關(guān)于專家
這個(gè)世界上只有少數(shù)的專家,卻有大量的普通人。當(dāng)你想要建立一個(gè)包含各種信息的網(wǎng)站時(shí),這些普通人的貢獻(xiàn)是最重要的。這是一個(gè)不規(guī)則的世界,里面裝滿了無(wú)窮無(wú)盡的細(xì)節(jié)。
作為專家,重要的是不是告訴別人你知道什么。而是要清楚你應(yīng)該問(wèn)什么樣的問(wèn)題,并且靈活運(yùn)用你所掌握的知識(shí)去解決眼下的具體問(wèn)題。作為專家,你的作用是提供明確的,可執(zhí)行的方向。 讀到這些,筆者覺(jué)得專家理應(yīng)受到種種質(zhì)疑,而為了能經(jīng)得起這些質(zhì)疑,那么就不應(yīng)該跟人家說(shuō)“我讀了神馬神馬著作,精通神馬神馬技術(shù),你看我的論文,你看我的研究成果等等”,真正證明自己是專家的途徑,一般只有幫助非專家人士或者別的專家高效地解決問(wèn)題。
其實(shí),龐大的知識(shí)體系也是對(duì)解決問(wèn)題幫助很大的:因?yàn)檫@些有著龐大知識(shí)體系的專家的晶體智力水平很高,很多時(shí)候,他們并不需要?jiǎng)幽X子(也就是流體智力),直接調(diào)出相應(yīng)知識(shí)就能解決。所以說(shuō),那些自稱專家的人如果連連無(wú)法解決問(wèn)題的話,那么真的是low爆了。
關(guān)于軟件項(xiàng)目管理
鼓勵(lì)并強(qiáng)制要求程序員創(chuàng)建一張他們所要做的全部事情的列表,然后盡可能添加所有的子項(xiàng),這樣就能估算這個(gè)任務(wù)話費(fèi)多少時(shí)間了。
如果有人問(wèn)你的時(shí)間表,你應(yīng)該拿出一張你要做的所有事情的列表。如果拿不出來(lái),你所要做的第一件事情,就是要做出這么一張列表。
這種列表和待辦事項(xiàng)列表稍有不同。這種列表屬于“時(shí)間表”,它的目的是監(jiān)控進(jìn)度:所以說(shuō),它的時(shí)間總長(zhǎng)度是不變的。但是待辦事項(xiàng)列表的時(shí)間總長(zhǎng)度是趨于“無(wú)限的”(當(dāng)然,只對(duì)于執(zhí)行力很差的人來(lái)說(shuō))。
關(guān)于“一夜成名”
一夜成名的傳說(shuō)容易讓人誤入歧途,并且遺毒不淺。如果你打算做一個(gè)全新的東西,要有打持久戰(zhàn)的準(zhǔn)備。
勤于練習(xí):不是一遍又一遍的簡(jiǎn)單重復(fù),而是要不斷挑戰(zhàn)略微超出自身能力之外的任務(wù)-努力嘗試,并在做的同時(shí)以及之后對(duì)自己的表現(xiàn)進(jìn)行評(píng)估,然后糾正錯(cuò)誤,如此反復(fù)。
這里談到了程序員對(duì)自己本身的迭代:快速迭代。其實(shí)同軟件開(kāi)發(fā)是一個(gè)道理:軟件迭代的速度遠(yuǎn)重要于迭代的質(zhì)量。也就是說(shuō),我們?cè)趯W(xué)習(xí)的過(guò)程中,對(duì)自己的提升也應(yīng)該是快速而輕盈的。
切忌一口氣吃個(gè)胖子,肯定是吃不消的。應(yīng)該結(jié)合自己已有的知識(shí)水平,再尋找對(duì)自己來(lái)說(shuō)稍微有點(diǎn)挑戰(zhàn)性的技術(shù)來(lái)攻克,一來(lái)學(xué)習(xí)效率高,二來(lái)可以提升自信,進(jìn)入到新一輪的學(xué)習(xí)中去。
關(guān)于優(yōu)秀和平庸程序員之間的鴻溝
成為更加優(yōu)秀的程序員的方法是拋開(kāi)編程。
你的興趣越廣泛,就能越勝任你的工作。
為了真正地成為一名更好的程序員,你必須培養(yǎng)自己對(duì)于編程周邊所有事情的熱情。
單單靠編程,你只能補(bǔ)足或者增強(qiáng)自己已有的變成技能,永遠(yuǎn)也無(wú)法成為一名優(yōu)秀的程序員。你需要嘗試去了解你的客戶,你所處的行業(yè)以及相關(guān)的業(yè)務(wù)。
聰明的開(kāi)發(fā)者知道,他們的工作遠(yuǎn)遠(yuǎn)不止編寫(xiě)代碼和發(fā)布產(chǎn)品:他們的工作是開(kāi)發(fā)出人們真正想要使用的軟件。這當(dāng)然包括編碼,但還有大量全局性的其他事情,比如撰寫(xiě)技術(shù)文檔,交互設(shè)計(jì),培養(yǎng)用戶社區(qū),乃至產(chǎn)品愿景,這些對(duì)于軟件的全貌成功都是至關(guān)重要的。
關(guān)于修復(fù)bug
在對(duì)報(bào)告數(shù)據(jù)的廣泛分析之后,我們看到:80%的客服問(wèn)題在修復(fù)了用戶報(bào)得最多的20%的bug之后就得到解決。即使修復(fù)用戶報(bào)的最多的1%的bug,也能解決50%的客服問(wèn)題。這個(gè)分析結(jié)果通常對(duì)于各家公司都是成立的。
如果你修復(fù)了一個(gè)真實(shí)用戶永遠(yuǎn)也碰不到的bug,那你修復(fù)有什么價(jià)值呢?
你越快將你的軟件推到真實(shí)用戶面前,就會(huì)得到越多的數(shù)據(jù)來(lái)改進(jìn)你的軟件。問(wèn)題不在于你在發(fā)布軟件的時(shí)候帶去了多少bug,而是在于你能多快地修復(fù)那些bug。 因此,筆者認(rèn)為在bug管理的問(wèn)題上,要注意兩點(diǎn):
不要怕將bug暴露在用戶面前,盡早地收集用戶的反饋數(shù)據(jù)是關(guān)鍵。 而且,在收到大量的反饋數(shù)據(jù)之后,也應(yīng)遵循二八定律,要以bug的影響程度來(lái)劃分bug的優(yōu)先級(jí),不應(yīng)盲目排列修改bug的順序。
關(guān)于衡量軟件的成功
多少用戶在真正使用你的軟件?這才是衡量成功的終極標(biāo)準(zhǔn)。
其實(shí)無(wú)論交互多絢麗,功能多么吊炸天,一旦用戶不需要,用戶不喜歡,不掏錢,其實(shí)是沒(méi)有任何卵用的。而且在一定的技術(shù)水準(zhǔn)上,如果無(wú)法“說(shuō)服”大量客戶使用產(chǎn)品,也同樣是讓人心痛的。
技術(shù)再牛也要從用戶體驗(yàn)出發(fā),少做一些中看不中用的東西。想出數(shù)百個(gè)功能很容易,但是從中挑出幾個(gè)可以提升用戶體驗(yàn),真正能吸引用戶,讓用戶掏腰包的功能實(shí)在不易。 產(chǎn)品做出來(lái)了,產(chǎn)品有沒(méi)有人用,營(yíng)銷和推廣同時(shí)占有舉足輕重的作用。突然想到以前在一本營(yíng)銷書(shū)籍看到的:能做出比麥當(dāng)勞好吃的漢堡包很容易,但是能比麥當(dāng)勞賣得好卻是很難得,眾人難以模仿麥當(dāng)勞整體的營(yíng)銷模式。相同的,像ZARA品牌的生產(chǎn)模式和營(yíng)銷模式之高效,是其他品牌無(wú)法超越的,這也是其風(fēng)靡全球的原因。
關(guān)于用戶的謊言
我們必須根據(jù)用戶的實(shí)際行為模式來(lái)設(shè)計(jì)產(chǎn)品。
他們會(huì)說(shuō)喜歡你的軟件。但是我們應(yīng)該去觀察他們是否使用了軟件,以及他們是怎么使用的。基于行為數(shù)據(jù)去設(shè)計(jì)軟件,而不是靠用戶說(shuō)的“謊言”。
筆者認(rèn)為,我們很少能從用戶言語(yǔ)上得到用戶特別真實(shí)的感受。那些善良的客戶們有時(shí)礙于面子,有時(shí)想當(dāng)和事老,憑著“你好我好大家好”的原則,說(shuō)一些心里沒(méi)有的,善意的謊言。
所以那些問(wèn)卷調(diào)查什么的,走街串巷訪問(wèn)什么的其實(shí)意義不大。真正能“窺視”用戶內(nèi)心的是那些技術(shù)埋點(diǎn)。我記得有一次參加一個(gè)分享會(huì),觸寶科技的CEO跟大家分享了他們的埋點(diǎn):他們通過(guò)埋點(diǎn)的方式,甚至?xí)缹?dǎo)致用戶刪掉app的是哪幾個(gè)界面和動(dòng)作。這讓我感觸很大,既然能做到這些,那么如果想知道用戶喜歡點(diǎn)擊那里,喜歡看哪里,喜歡做那幾個(gè)動(dòng)作,豈不是輕而易舉?知己知彼,百戰(zhàn)豈殆?
1、《代碼大全(第二版)》
2、《點(diǎn)石成金:訪客至上的網(wǎng)頁(yè)設(shè)計(jì)秘籍》
3、《人件》
4、《程序員修煉之道:從小工到專家》
5、《軟件工程的事實(shí)與謬誤》
筆者最后的話
其實(shí)還是希望能和各位相互討論,其實(shí)相比于文章被“喜歡”,筆者更希望諸位能留下評(píng)論,毫不留情地指出小弟想法中的不妥之處,這些是遠(yuǎn)比“打賞”和“喜歡”更讓小弟高興的呢!
本文轉(zhuǎn)載自異步社區(qū)
專家 開(kāi)發(fā)者
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。