
克里斯·里科米尼 德米特里·里亞博伊
對於剛剛成爲軟件工程師的新手來說,知道如何編寫代碼只是成功了一半。你可能很快就會發現,學校並沒有教授在現實世界中至關重要的技能和工作中必要的流程。本書恰恰填補了這一環節,它是作者十多年來在大型公司指導初級工程師工作的教程,涵蓋軟件工程的基礎知識和best實踐。 本書第1~2 章講解當你在公司開啓你的職業生涯時會發生什麼;第3~11 章會擴展你的工作技能,教你如何使用現有代碼庫、解決和防止技術債、編寫生產級軟件、管理依賴關係、有效地測試、評審代碼、交付軟件、處理On-Call 時的事故和構建可演進的架構等;剩餘章節涵蓋管理能力和職業階梯的提升等相關內容,例如敏捷計劃、與管理者合作以及成長爲資深工程師的必經之路。本書中非常重要的一部分內容是教你如何應對糟糕的管理,以及如何調整自己的節奏。 本書內容不僅淺顯易懂,還覆蓋整個軟件開發週期,是一本技術主管希望每名新入行的工程師在開始工作之前都能閱讀的書。
自從接觸計算機以來,我看過最多的就是readme文檔。 新手程序員上崗,如果能拿到一份readme手冊,也一定會少走很多彎路。 1、多讀源碼 代碼從不說謊,註釋有時卻會。去讀源代碼,因爲它並不總是與設計文檔相吻合!不要只讀你自己的代碼庫,還要去閱讀高質量的開源項目,特別是那些你使用的類庫。 2、T 型人才 軟件工程有許多專業領域:前端、後端、運維、數據倉庫、機器學習等。 T型工程師在大多數領域內都能有效地工作,並且至少是某一個領域的專家。 3、保守技術 成功公司留用舊代碼(如舊類庫、舊模式)是有原因的。 成功需要時間,而在技術上大動干戈會讓人分心。新技術的問題是,它不太成熟。 4、跳槽成長 如果你的價值更多來自過去的工作而不是現在的貢獻,那麼它就會阻礙你的成長。 更換公司並在一個新的環境中找到自己,可以重啓你的成長。 5、自我調節 工程師們有時會浪漫化14小時的工作時長和辦公桌下的睡袋,但馬拉松式的編程和缺乏睡眠會損害你的代碼、身體健康和個人社交。
讀完這本書的感覺,也是有點相見恨晚,確實讀這本書要趁早,很多知識大學和工作都不會有人教你,都需要你主動去學和請教他人。所以說,它比較全面的介紹成爲一名軟件工程師的過程內容,可以讓你少走很多彎路,比較全面的瞭解一個軟件生命週期的過程,培養你的個人能力和工作全局觀吧。特別是對新人剛入行的時候,有一個指導工作各個方面流程及實踐的教程,對個人的成長和融入團隊有非常大的幫助吧 印象深刻的幾個章節中講到:在進入職業生涯階段會遇到的一些問題及如何解決,比如自己遇到問題不好意思問同事,死磕琢磨很久浪費了很多時間,還有遇到生產事故自己緊張害怕的要死,慌不擇路只會適得其反等等類似的情況,作者建議我們應該“請保持開放的心態,好學深思,渴望提高,不懼破舊習,不懼提問題。”因爲優秀的工程師通常會以指導和協助他人爲榮,而且當你“向同事提問和學習是快速成長和習得新技能的有效方式”,所以不要吝嗇你的主動哈,珍惜這段時間,爭取最大努力快速提升自己咯。還有如何克服工作中常見的“冒充者綜合徵”和鄧寧-克魯格效應、如何閱讀開源項目、如何向同事提問方式等等,都有很多講解幫助 在提升工作技能方面:如何平衡“軟件的熵”和“技術債”也有一些講究和方法。如何代碼章節方面介紹了很多注意事項和技巧,包括經常聽到的“不要重複自己”(Don’t repeat yourself,DRY)是一個通常被教導的原則。如何晉級需要具備的幾個能力有技術知識、執行力、溝通能力、領導力,我是非常認可,畢竟自己也是計算機專業科班出身,對技術要求及作者說到這幾個能力都有刻意練習,比如寫作水平差就平時多練習寫技術調研方案文檔、業務相關講解文檔、技術相關講解或指南文檔等等並分享團隊閱讀,收集改進反饋提升自己 在 On-Call 階段印象深刻的一句話是:“你最好的能力是隨時響應。”這句老話是成功On-Call 的關鍵。跟我輪值時候的一些解決問題方式不謀而合,自己平時也有應用類似的方式解決,但不夠成體系的、規範的執行,也是自己做的不夠好的地方。對於向上管理方面,如何對自己成長負責和工作彙報有更深刻的理解,之前以爲自己做好手上的工作就行,還需要站在更高的角度思考問題及思考團隊貢獻、自身向上成長問題。對於職業規劃方面,如何成爲 T 型人才,未來發展等,但有些講解不夠全面,蜻蜓點水而已,可以結合《遠見:如何規劃職業生涯 3 大階段》一起學習 還有其他方面也是很不錯的,比如測試方面相關知識、設計文檔撰寫、代碼評審、軟件交付等等章節都非常詳細,對於我這個工作幾年的人,都還有很多不懂的或者沒有遵守相關編寫代碼規則去做,有點慚愧,哈哈哈 總體來說,還是很不錯的程序員指南,新人和老手閱讀都會有受益,但可能新人閱讀會受益更大吧,還有就是保持持續學習💪🏻
我是被書名《程序員的README》吸引而點開了這本書:這是一個對碼農充滿體貼和關懷的標題,像精心維護軟件項目一樣關注軟件開發者自身的狀態和成長。讀來覺得作者不是隻會誇誇其談的培訓專家,他肯定有豐富的軟件工程實踐經驗。 這本README語言簡練易懂(譯者肯定也下了不少功夫,儘管偶有不當,也是瑕不掩瑜),內容有道也有術。讀到許多與自己觀點一致的內容時,一方面增強了自己的信心,一方面也加深了對書籍內容的認可。我沒有大廠、大團隊的工作經驗,不過這本書給了我一點管中窺豹,時見一斑的體驗。 “小步快跑、快速迭代”是一項廣泛適用的原則。首先敏捷開發遵循這一原則。其次,對於日常開發工作,如代碼修改和代碼評審,作者也提倡小幅度的、獨立的提交,方便聚焦問題、代碼評審,甚至回滾。爲了減少軟件熵、償還技術債,也應該“邊做邊解決,着手做小幅的重構”,對系統實施持續的優化。甚至在團隊協作中也可應用這一原則。比如作者在“技術設計流程”一章建議從最初做研究開始,就應該從相關利益方獲取早期的反饋,考慮各方的需求和意見,禮貌且漸進地讓人們瞭解自己的方案,使得討論時大家都有發言權,不僅更容易催生出更好的設計,而且更容易讓大家成爲最終方案的擁護者。
在Claude Code可以根據你的Spec實現整個功能代碼併爲你貼心的附上完整的單元測試的時候,讀這本書好像有點過時,但不讀這些書,寫最初Spec和判斷功能代碼能不能用的能力都沒有,畢竟AGI現在還沒實現,或者說至少最近兩年還沒實現,所以對某些人讀這些技術書還是有必要的。至於本書,雖然後幾章有點不符合國內實際開發情況, 但整體讀下來還是能讓你對軟件開發過程有個大概的瞭解。如果你初入這行,不要讀這本書,轉行。如果你幹了很多年,也沒必要讀,只是起了個拾遺補缺的效果。如果你只是幹了一段時間還打算再幹幾年,可以讀。
如書名,這是一本程序員要讀的README,計劃做程序員的人應該儘早讀一讀這本書,以及是程序員的也應該讀一讀這本書,相信會有不少收穫,對於準備成爲程序員的人來說,可能一些翻譯會跟實際略有差別,但從業後自然就會得到修正。
我個人認爲這是一本應該達到90%以上推薦度的神書,這本書更適合有幾年工作經驗的人,能從中感受到共鳴。書中內容完全對得住書名 程序員的readme。 書中內容覆蓋了程序員職責生涯從小白到資深階段的方方面面,描繪了一個清晰的成長路徑。 第一是樹立自主的意識。自主學習,自主探索,自主發問等等。 第二是描繪了代碼技術的方方面面。代碼技巧,代碼規範,可觀測性等等。非常全面。 第三是介紹如何進行運Oncall。提出的指導選擇和方法措施非常受用。 第四就是更高一級主題:方案設計和演進式系統設計。算是幫我全面梳理了一知識點,幫我係統化這裏的知識了。 第五就是職業成長。對我來說全書最重要的部分,向上管理的章節中的經驗對我來說幫助非常大。這個向上管理感覺描述成向上溝通更合適,向上管理給人一種對領導拍馬屁的感覺,但是書中是真真實實的向上溝通的技巧。個人非常喜歡這一章節。 總之,整本書構建了開發人員的一條準確清晰明瞭的成長路徑,然後每一章節又提供了加油包擴展內容,方便在對應領域繼續深入探索,擴展深度。作者的經驗真是太豐富了,對工作2~4年的人非常受用。
原作不錯,但翻譯太爛了,比如第8章中的rollout被翻譯爲“展開”而不是“上線”或”投產”,input parameters被翻譯爲“輸入的數”而不是“參數”,Dark-launche翻譯爲“摸黑啓動”而不是“灰度發佈”...
豁然開朗,醍醐灌頂。真的學會後日常對話有更多樣的表達方式。工作日誌更好寫的更有價值。至少說的內容不用反覆出現相同的詞彙。誰說的閱讀拓寬眼界。這本書提供了栩栩如生的情景照片展示的話語權。
這本書作爲指引,非常有價值,特別是國內環境不太好的情況下,需要注意一些憑技術但是本身不適合做管理的人,遇到這種人,該撤得撤!
感覺Agent🦞時代看這本書會對如何調教Agents🦞很受用