《程序员修炼之道》给所有毕业生的18条建言
2020畢業季已到,一大批新人程序員正在進入職場。
職場不像學校,有人在這里獲得了成功,也有人工作了很多年依舊默默無聞,甚至被埋沒。從校園到職場的環境轉變,從大學生到程序員的身份轉變,你準備好了嗎?面對這份職業,究竟應如何開始?
博文菌又重新認真翻閱了《程序員修煉之道:通向務實的最高境界(第2版)》一書,并中摘出了18條建言作為畢業寄語送給剛剛走上職場的你。
希望書中前輩的思想能帶給你啟迪,幫助你迅速完成身份轉換,建立起正確的原則,為你的職業成長道路開個好頭。
本書是一本暢銷了 20 年的書
其中很多道理都是編程的底層原則
雖然它不是一本技術書
但可以讓你的技術發揮更大的作用
如果想更深的感悟理解某條建言
你可以根據提示數字(如 提示3)
在書中找到對應的詳細講解
▼
1
提示3 你有權選擇
你的工作環境很糟糕?你的工作很無聊?嘗試糾正它。不過,不要一直試下去。正如軟件開發教父Martin Fowler 說的,“你可以去改變組織,或是讓自己換一個組織。”
如果你的技術過時了,安排時間(你自己的時間)學習一些看起來有趣的新東西。這是一種自我投資,只有為此而加班才是合理的。?
想遠程工作?要求過了嗎?如果他們說不行,就去找個說行的人。?
這個行業給了你一系列非凡的機遇。積極主動點,掌控這些機遇。
2
提示4??提供選擇,別找借口
如果你打算跟別人解釋為什么做不完、為什么延期、為什么搞砸了,在此之前先等等,聽一下自己的內心。講給你顯示器上的橡皮鴨聽聽,或是先對著貓說一遍。你的那些借口聽起來合理嗎?還是很愚蠢?你的老板聽到會怎樣?
把談話在心里過一遍。其他人可能說什么?他們會問,“你試過這樣做嗎……”“為什么你不考慮一下那樣做?”而你怎么回答?在你跑去告訴他們壞消息前,還有什么你可以再試試的?有時,你已經能知道他們會說什么,那么就直接幫他們搞定。
給出選擇,而不是找借口。不要說搞不定;解釋一下要做些什么才能挽救這個局面。打算敷衍搪塞前,試著驅走這些念頭。如果實在做不到,那么就先和你的貓通個氣。畢竟你想讓這只可憐的小貓背鍋……
3
提示 8? 將質量要求視為需求問題
令人驚訝的是,許多用戶寧愿今天就用上一個毛糙的軟件,也不愿意多等上一年再用那個打磨光亮、功能齊備的版本(而且,實際上他們一年后真正需要的東西可能完全不同)。許多預算緊張的IT部門會同意這樣的說法。今天就還不錯的軟件通常比構想中的明天那個完美的軟件更討人喜歡。如果你早點給用戶一點東西玩,他們的反饋常常能引領你做出更好的最終方案。
4
提示10??批判性地分析你讀到和聽到的東西
永遠不要低估商業主義的力量。網絡搜索引擎有時僅僅是把熱門的東西列在最前面而已,并不能說明這是你的最佳選擇,而且內容提供商也可以花錢把它們的東西排到前列。書店有時僅僅是把一本書擺在顯著的位置而已,并不能說明這是一本好書,甚至不能說明這本書很流行,可能只是有人花錢把它擺在了那里。
5
提示16? 讓復用變得更容易
你要努力的方向,應該是孕育出一個更容易找到和復用已有事物的環境,而不是自己
重新編寫。如果復用不容易,人們就不會這么做。如果你未能復用,就有重復知識的風險。
6
提示29??去解決問題,而不是責備
Bug ?是你的錯還是別人的錯并不重要。無論是誰的錯,問題仍然要你來面對。
7
提示30?? 不要恐慌
人們很容易陷入恐慌,尤其是當最后期限逼近,或是老板或客戶站在背后緊張凝視之下拼命找出問題原因時。然而,這時非常重要的是要退后一步冷靜思考。對于那些你覺得是Bug 引起的癥狀,認真想想,到底是什么會導致這個樣子。?
如果你在看到? Bug ?或? Bug ?報告時的第一反應是“這不可能”,那你就大錯特錯了。不要在“但那不可能發生”的思路上浪費哪怕一個神經元,因為很明顯它會發生,而且已經發生了。?
調試時要注意不要短視。不要僅僅去糾正你所看到的癥狀:更有可能的是,實際的錯誤可能與你所觀察到的尚有幾步之遙,并且可能涉及到許多其他相關的事情。永遠要去發掘問題的根本原因,而不僅僅停留在問題的表面現象。
8
提示 31? ?修代碼前先讓代碼在測試中失敗
這是調試最重要的原則。有時,只要強制自己對暴露? Bug ?的環境進行隔離,就能獲得對如何修? Bug ?的洞察力。寫測試這個動作,就會揭示出解決方案。
9
提示 43 避免占卜
很多時候,明天看起來會和今天差不多。但不要指望一定會這樣。
10
*提示 65? ?盡早重構,經常重構?*
隨著時間的推移,代碼中的附帶損害有可能致命。重構,和大多數事情一樣,在問題很小的時候做起來更容易,要把它當作編碼日常活動。你并不需要“用一周時間去重構”一塊代碼——那是在全面重寫。即使重寫這種程度的破壞性工作是必要的,也很可能無法立即完成。你要做的是,確保這個過程已被安排在日程表上,確保受影響代碼的用戶知道重寫的計劃,以及這么做會對他們有何影響。
11
提示 66? ?測試和找Bug無關
我們相信,測試獲得的主要好處發生在你考慮測試及編寫測試的時候,而不是在運行測試的時候。
12
提示 70? 要對軟件做測試,否則只能留給用戶去做
毫無疑問,測試是編程的一部分,不該留給其他部門的人去做。測試、設計、編碼——都是在編程。
13
提示 75??無人確切知道自己想要什么
需求很少停留在表面。通常情況下,它們被埋在層層的假設、誤解和政治之下。更糟糕的是,需求通常根本不存在。
14
提示 76? 程序員幫助人們理解他們想要什么
新手開發人員經常犯的錯誤是,把這種對需求的聲明照單全收,然后實現對應方案。?
根據我們的經驗,最初對需求的聲明,往往并非絕對化的要求。客戶可能沒有意識到這一點,但一定希望你能一起去探索。
15
提示 81 ?不要跳出框框思考——找到框框
問題不在于你是在框框里思考還是在框框外思考。問題在于找到框框——識別真正的約束條件。
當面對一個棘手的問題時,把你面前所有可能的解決途徑都列舉出來。不要忽略任何東西,無論聽起來多么無用或愚蠢。現在遍歷列出的清單并逐條解釋為什么不能選擇這條路。你確定嗎?你能證明嗎?
16
提示 83? 敏捷不是個名詞,敏捷有關你如何做事
敏捷是一個形容詞:它指向你做事情的方式。你可以成為一名敏捷的開發人員。你可以加入一個采用敏捷實踐的團隊,一個對變化和挫折做出敏捷反應的團隊。敏捷指你的風格,并不指你這個人。
17
提示 88?在用戶需要時交付
如果交付周期是幾年,試著把周期縮短到幾個月。如果是幾個月,就減少到幾周。如果是一個四周的沖刺,那么試一下兩周。如果是兩周的沖刺,試試一周。然后到每天。最后是即期交付。請注意,能夠即期交付并不意味著你必須每天每分鐘都交付。只有當這樣做在業務上有意義時,才有必要在用戶需要時即期交付。?
18
提示 94??每個Bug? 只找一次
如果有某個Bug ?成了現有測試的漏網之魚,那么就需要添加一個新測試,以保證下一次能將其捕獲。
一個Bug 一旦被人類測試員發現,這就應該是它被該人類測試員發現的最后一次。要立即修改自動化測試,以便這個特定的Bug,從此往后每次都被檢查到——不能有任何例外,無論它多么瑣碎,也無論開發者有多抱怨,或是不停嘮叨“哦,永遠不會再發生了”。?
因為還會再發生的。我們只是沒有時間追著Bug ?跑,明明可以讓自動化測試幫忙將其找出來。我們的時間必須用于編寫新的代碼——以及新的Bug。
★? 關 于 本 書??★
▊《程序員修煉之道:通向務實的最高境界(第2版)》
【美】David Thomas,Andrew Hunt 著
云風 譯
屹立 20 年影響力大作
雄踞 “全球程序員讀物”頂端
面向未來重寫全部內容,開發新兵走向卓越領袖
《程序員修煉之道》之所以在全球范圍內廣泛傳播,被一代代開發者奉為圭臬,蓋因它可以創造出真正的價值:或編寫出更好的軟件,或探究出編程的本質,而所有收獲均不依賴于特定語言、框架和方法。時隔20年的新版,經過全面的重新選材、組織和編寫,覆蓋哲學、方法、工具、設計、解耦、并發、重構、需求、團隊等務實話題的最佳實踐及重大陷阱,以及易于改造、復用的架構技術。本書極具洞察力與趣味性,適合從初學者到架構師的各階層讀者潛心研讀或增廣見聞。
4周精讀《程序員修煉之道》報名開啟啦
在這里,可以分享自己的學習筆記,了解他人的閱讀感悟。與廣大讀者相互交流、相互促進,掌握本書精髓,共同從開發新兵走向卓越領袖!活動期間還可獲取豐厚福利!
7月10日正式開始,第一周任務已發布,即刻上車!
博文菌●互動時間
關于畢業
你有哪些難忘的回憶呢?
快來留言去和大家分享吧
更多科技資訊請見微信公眾號:博文視點Broadview(微信號:bvbooks)
總結
以上是生活随笔為你收集整理的《程序员修炼之道》给所有毕业生的18条建言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信清除缓存数据方法
- 下一篇: 2013八大免费杀毒软件排行榜