【代码大全2】第33章 个人性格
目錄
1. 個人性格與本書主題有關(guān)
2. 聰明與謙卑
3. 好奇心
4. 理性誠實(shí)
5. 溝通與合作
6. 創(chuàng)造力與規(guī)范
7. 懶惰
8. 沒有想象中那么重要的性格因素
9. 習(xí)慣
總結(jié):
? ? ? ? 軟件工程師,基本的建造材料就是頭腦,自己的聰明才智,重要工具就是身手。
1. 個人性格與本書主題有關(guān)
編程非常耗費(fèi)腦力,因而個性就顯得尤為重要。?
(1)不好的經(jīng)歷
? ? ? ? a. 前一天過于專注而導(dǎo)致第二天精疲力盡,或者前一個月過于耗神而導(dǎo)致本月精力透支
? ? ? ? b. 早上8點(diǎn)工作到下午2點(diǎn),然后直接累垮。不過又堅(jiān)持到下午5點(diǎn),然后這周剩余的時間,都在修改這3個小時修改的代碼
(2)編程工作的本質(zhì)上是無法管理的,因?yàn)闆]有人真正知道你在做什么?
? (3) 雇主不能強(qiáng)迫你成為一名優(yōu)秀的程序員,很多時候,雇主甚至無法判斷你是否優(yōu)秀。
? ? ? ? a. 如果想變得偉大,得自個兒成全自個兒。這取決于你的個人性格。
(4)一旦決定要成為一名優(yōu)秀的程序員,就有了巨大的進(jìn)步空間
? ? ? ? a. 創(chuàng)造一個程序所需要的時間,不同的人有10倍的差異
? ? ? ? b. 調(diào)試一個程序所需要的時間有10倍之差,產(chǎn)生的程序規(guī)模、速度、錯誤率和檢測到的錯誤數(shù)量也有10倍的差異
? ? ? ? c. 常識表明,智力無法改變,但性格是可以改變的,事實(shí)證明,要想成為一名優(yōu)秀的程序員,性格更是一個決定性因素
2. 聰明與謙卑
(1)智力似乎和性格無關(guān),事實(shí)上真的無關(guān)。巧合的是,高智商與成為一名優(yōu)秀的程序員并沒有太大關(guān)系
? ? ? ? a. 人再怎么聰明,也比不上電腦。
? ? ? ? b. 如何集中智力比智力水平有多高更重要?
(2)良好的編程實(shí)踐旨在減少大腦的負(fù)載
? ? ? ? a. 分解系統(tǒng)的目的是使其更容易理解
? ? ? ? b. 評審、檢查和測試的目的是補(bǔ)償預(yù)期的人為錯誤
? ? ? ? ? ? ? ? i. 這些評審技術(shù)起源于“無無編程”
? ? ? ? ? ? ? ? ii. 如果從來沒有犯過錯,就不需要檢查自己的軟件
? ? ? ? ? ? ? ? iii. 因?yàn)橹雷约旱闹橇τ邢?#xff0c;所以需要借助于別人的智力來提高自己的智力水平
? ? ? ? c. 保持日?;顒映R?guī)化和簡單化,可以減輕大腦的負(fù)擔(dān)
? ? ? ? d. 根據(jù)問題領(lǐng)域而不是底層的實(shí)現(xiàn)細(xì)節(jié)來編程,可以減少腦力勞動
? ? ? ? e. 通過使用各種問題約定,可以將大腦從編程的繁瑣細(xì)節(jié)中解放出來,盡管相應(yīng)的回報(bào)很少
3. 好奇心
(1)? 想要成為高級程序員,對技術(shù)主題的好奇心必須放在首位
(2) 采取的一些行動,來培養(yǎng)和加強(qiáng)好奇心,并把學(xué)習(xí)放在首位?
? ? ? ? a. 加深對開發(fā)過程的了解
? ? ? ? b. 在競爭激烈的軟件行業(yè),工作中用到的知識,有一半在三年后過時
? ? ? ? c. 不堅(jiān)持學(xué)習(xí),勢必會落伍
(3) 對編程和開發(fā)過程做試驗(yàn),是學(xué)習(xí)編程的有效途徑之一
(4) 閱讀解決問題的有關(guān)方法
? ? ? ? a. 解決問題司軟件開發(fā)過程中的核心行為
(5) 在行動之前做分析和計(jì)劃
? ? ? ? a. 分析和行動是一對矛盾綜合體。有時,必須停止收集數(shù)據(jù),馬上采取行動。
(6) 學(xué)習(xí)成功項(xiàng)目開發(fā)經(jīng)驗(yàn)
? ? ? ? a. 學(xué)習(xí)編程,有個特別好的途徑是研究高手寫的程序
? ? ? ? b. 準(zhǔn)備一杯白蘭地,點(diǎn)上一根雪茄,像看優(yōu)秀小說那樣來研讀別人的代碼。
? ? ? ? c. 找專家指點(diǎn)一下自己的代碼,找一流的程序員來評論自己的代碼,剔除主觀成分,注重解決切中要害問題,從而改善編程質(zhì)量
?(7) 閱讀文檔
?(8) 閱讀其他書籍和期刊
?(9) 同業(yè)內(nèi)人士交往,向?qū)I(yè)開發(fā)看齊
- 1級:入門
- 新手會運(yùn)用某語言的基本功能,能寫類、子程序、循環(huán)和條件語句? ?
- 2級:中級
- 能夠利用多種語言的基本功能,并會得心應(yīng)手地至少使用一門語言
- 3級:熟練
- 對語言或環(huán)境有著專業(yè)技能,精通很多細(xì)節(jié),對很多API如數(shù)家珍
- 4級:技術(shù)帶頭人
- 具有很強(qiáng)的專業(yè)才學(xué)
- 明白編程工作中只有15%用來和計(jì)算機(jī)交互,其余都是在與人打交道
- 程序員一般只花30%的時間單獨(dú)工作,與計(jì)算機(jī)交互的時間則更少
- 技術(shù)帶頭人會為人寫代碼,而非機(jī)器
- 真正高手寫的代碼,像水晶一樣晶瑩剔透,還配有文檔
- 不會浪費(fèi)寶貴的腦力去重新組織一句注釋就能說清楚的某塊代碼的邏輯
4. 理性誠實(shí)
編程生涯成熟的部分標(biāo)志是養(yǎng)成一種“理性誠實(shí)”的品格,通常表現(xiàn)在以下幾個方面
- ?如果還不是專家,就要拒絕假裝自己很內(nèi)行
- 聞過則喜
- 試圖理解編譯器警告,而不是視而不見
- 清楚地理解程序,而不是通過編譯來查看它是否工作
- 提供真實(shí)的狀態(tài)報(bào)告
- 提供切合實(shí)際的進(jìn)度估計(jì),并在管理層要求調(diào)整時立場堅(jiān)定
(1) 最好假裝什么都不知道
? ? ? ? 聽別人解釋,從他們那里學(xué)習(xí)新東西,了解他們是否真的清楚所討論的話題
(2) 經(jīng)??剂孔约簩δ承﹩栴}的確定程度。
? ? ? ? 如果總是感到毋庸置疑,那可是個不妙的信號
(3) 拒絕認(rèn)錯是個特別令人討厭的習(xí)慣
(4) 狀態(tài)報(bào)告是一個令人反感的口是心非的地方
? ? ? ? a. 如果你感覺不到自己的進(jìn)度,可以嘗試加強(qiáng)對工作的了解,但問題如果是你想取悅管理層而并沒有說出自己的想法,那就另當(dāng)別論了。
? ? ? ? b. 管理層通常希望了解項(xiàng)目狀態(tài)的真實(shí),即使并非他們想聽到的。
? ? ? ? c. 如果你的匯報(bào)經(jīng)過深思熟慮,那么盡量冷靜地私下說出來,管理部門需要有準(zhǔn)確的信息來協(xié)調(diào)開發(fā)活動,充分配合提前。
(5) 不準(zhǔn)確的項(xiàng)目估計(jì)?
? ? ? ? a. 估算產(chǎn)品的工作量司沒有商量的余地。
? ? ? ? b. 一個項(xiàng)目承諾4個月內(nèi)完成,而實(shí)際上是要6個月內(nèi)完成,這不會比他承諾在6個月完成更讓經(jīng)理更高興。
# 他會因?yàn)橥讌f(xié)而失去信譽(yù),他會因?yàn)閳?jiān)持自己的估計(jì)而贏得尊重。
# 他會因?yàn)橥讌f(xié)而失去信譽(yù),他會因?yàn)閳?jiān)持自己的估計(jì)而贏得尊重。
# 他會因?yàn)橥讌f(xié)而失去信譽(yù),他會因?yàn)閳?jiān)持自己的估計(jì)而贏得尊重。
(6) 如果上司施壓,要求改變估算
? ? ? ? a. 就應(yīng)該明白要由他最終決定要不要做這個項(xiàng)目
? ? ? ? b. 可以這樣說:“項(xiàng)目費(fèi)用預(yù)算就是這么多,我不能說這對公司是否值得,因?yàn)檫@得你說了算。但我可以告訴你,開發(fā)軟件需要多少時間,這是我的職責(zé)。我無法跟你商量項(xiàng)目要花費(fèi)多少時間和金錢,就像不能通過商量來確定一公里等于多少米一樣,自然規(guī)律是沒的商量余地的”
? ? ? ? c. “不過,我們可以協(xié)商影響項(xiàng)目進(jìn)度的其他方面,重新評估進(jìn)度,我們可以少一些特性,降低性能,分階段開發(fā)項(xiàng)目,少些人但是時間延長一些,或者多些人手時間短些”?
5. 溝通與合作
? ? ? ? a. 真正優(yōu)秀的程序員知道怎么樣與其他隊(duì)友愉快地工作和娛樂。
? ? ? ? b. 代碼容易看懂,這是對團(tuán)隊(duì)成員要求之一。
? ? ? ? c. 作為一項(xiàng)可讀性原則,應(yīng)該首先考慮修改代碼的人。編程首先要與人交流,然后才是與計(jì)算機(jī)交流?
6. 創(chuàng)造力與規(guī)范
? ? ? ? a. NASA軟件工程實(shí)驗(yàn)室工作15年的人,認(rèn)為規(guī)范性的方法和工具非常有效。
? ? ? ? b. 許多非常有創(chuàng)造力的人都很遵守紀(jì)律或規(guī)范?
7. 懶惰
懶惰表現(xiàn)在以下幾個方面
- 不喜歡的任務(wù)盡可能往后拖
- 快速完成不喜歡的任務(wù),以便盡早脫身
- 寫一個工具來完成不喜歡的任務(wù),以免下次還要做這樣的事情
? ? ? ? a. 第一種的人,實(shí)在懶,沒有任何好處
? ? ? ? b. 第二種,相對好些,畢竟完成了任務(wù),解決了問題
? ? ? ? c. 第三種,是最具有產(chǎn)值的偷懶形式,節(jié)約了時間
不戴有色眼鏡看問題,就可以看到懶惰的另一面了?
? ? ? ? a. 勤奮與苦干,并非自帶光環(huán),而是一種徒勞、大可不必的努力。?
? ? ? ? b. 只能說明你心急,并不是工作效率高。
? ? ? ? c. 人們很容易混淆行動和進(jìn)展,混淆忙碌與多產(chǎn)。
? ? ? ? d. 有效編程中最重要的是思考,而人在陷入思考時,通??瓷先ゲ粫苊?。
? ? ? ? e. 如果和我共事的程序員總是忙個不停,我會認(rèn)為他不是個優(yōu)秀的程序員,因?yàn)樗麤]有在用自己最有價值的工具--“大腦”(這個觀點(diǎn)的方向本人認(rèn)同,但是如果作者在中國互聯(lián)網(wǎng)公司工作過,可能會對這個觀點(diǎn)加個地區(qū)限制條件)
8. 沒有想象中那么重要的性格因素
(1) 堅(jiān)持
? ? ? ? a. 根據(jù)環(huán)境的不同,堅(jiān)持可能帶來財(cái)富,也可能造成負(fù)擔(dān)
? ? ? ? b. 如果想表達(dá)貶義,可以說固執(zhí)己見或頑固不化
? ? ? ? c. 如果想表達(dá)褒義,可以說有毅力或有恒心
? ? ? ? d. 大多數(shù)時候,軟件開發(fā)中的堅(jiān)持其實(shí)就是沒有什么好處的固執(zhí)。
? ? ? ? e. 通常情況下,如果15分鐘沒有進(jìn)展,就該放棄,讓潛意識來發(fā)揮作用。
? ? ? ? f. 可以這樣嘗試:
? ? ? ? ? ? ? ? i. 想個其他法子把問題繞開
? ? ? ? ? ? ? ? ii. 從頭寫有問題的代碼段,理清思緒后再做
? ? ? ? ? ? ? ? iii. ?和計(jì)算機(jī)斗氣是不明智的,更好的辦法是避開它們,惹不起,還躲不起嗎
(2)經(jīng)驗(yàn)
? ? ? ? a. 與其他行業(yè)相比,軟件開發(fā)行業(yè)的經(jīng)驗(yàn)比書本知識的價值要小得多,原因有幾個:
? ? ? ? ? ? ? ? i. 其他行業(yè)基礎(chǔ)知識變化慢,軟件行業(yè)基礎(chǔ)知識變化快
? ? ? ? ? ? ? ? ii. 舊的編程語言的思維模式,對于新的技術(shù),經(jīng)驗(yàn)反而可能是一種負(fù)擔(dān)
? ? ? ? b. 如果工作10年,得到的是10年的經(jīng)驗(yàn)還是1年經(jīng)驗(yàn)的10次重復(fù)
? ? ? ? ? ? ? ? i. 只有時時刻刻如履薄冰,保持內(nèi)省,才能獲得真正的經(jīng)驗(yàn)。
? ? ? ? ? ? ? ? ii. 只有堅(jiān)持不懈地學(xué)習(xí),才能獲得經(jīng)驗(yàn)。
? ? ? ? ? ? ? ? iii. 如果不這樣,就不能獲得經(jīng)驗(yàn),無論工作年限有多長
(3) 編程狂人
? ? ? ? 這種編程行為簡直是胡鬧,幾乎注定會失敗。
? ? ? ? ?a. 通宵達(dá)旦“肝”代碼,讓人感覺自己儼然是世上最好的程序員,殊不知,接下來卻要花幾個星期糾正由此而留下的坑。
? ? ? ? b. 可以熱愛編程,但熱情代替不了扎實(shí)而熟練的基本功。
? ? ? ? c. 采取行動之前,先分清重點(diǎn)。
9. 習(xí)慣
? ? ? ? 好的習(xí)慣很重要。
(1)學(xué)習(xí)亞里士多德版本編程品德?
? ? ? ? a. 人們并非天生好與糟,類似的,設(shè)定的道路使人成為好或糟的程序員,做的好與糟,主要看行為。
? ? ? ? b. 行為養(yǎng)成習(xí)慣,習(xí)慣成自然,年復(fù)日久,這些好壞習(xí)慣決定了你是個怎樣的程序員。
(2)比爾蓋茨說,任何出色的程序員在入行的前幾年就能夠做的很好,從那以后,就定型了。
? ? ? ? a. 用新的好習(xí)慣,就可以自然代替舊的壞習(xí)慣了
總結(jié):
- 人的個人性格對其編程能力有直接的影響
- 關(guān)系最大的性格是謙遜、好奇心、理性誠實(shí)、創(chuàng)造力和自律以及高明的懶惰
- 優(yōu)秀程序員的性格與天賦無關(guān),而是與主動參與個人發(fā)展有關(guān)
- 出乎意料的是,小聰明、經(jīng)驗(yàn)、堅(jiān)持和瘋狂是雙刃劍,既有利也有害
- 很多程序員不愿意主動吸收新技術(shù)和知識,只靠工作時偶爾接觸新信息。如果能抽出少量時間閱讀和學(xué)習(xí)編程知識,要不了多久,就能鶴立雞群
- 優(yōu)秀品格與培養(yǎng)正確的習(xí)慣關(guān)系很大。要想成為一名優(yōu)秀的程序員,先養(yǎng)成良好的習(xí)慣,之后,其他的自然水到渠成。
總結(jié)
以上是生活随笔為你收集整理的【代码大全2】第33章 个人性格的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机械硬盘显示拒绝访问要怎样办啊
- 下一篇: Java将汉字转为拼音