本書講的不是你寫的代碼,而是你賴以生存的密碼。
軟件開發行業的從業人員成千上萬,你如何保障自己出色地完成自己的工作?這本書里沒有浮夸的老生常談,作者匯集十余年來的軟件開發經驗,從各個角度審視這一行業,探討了保持健康工作狀態需要怎么去做。
如何在最漫長的項目中保持效率,如何建立一個適合自己而不是牽絆自己的工作流程,如何面對目標和你不一致的客戶……日常工作中遇到的許多問題,都出現在作者的筆端。有些問題如果處理得不好,哪怕是最有經驗、最有干勁的程序員也可能被擊垮。但有了正確的手段,你就可以克服這些難題,成為你夢想中的專業程序員。
在這五十多篇智慧小文中,你還會學到:
為什么軟件行業中針對流程和開發職務的很多傳統方法都是錯的,以及如何發現這些錯誤。
為什么你必須對消閑項目和沒有期限的項目說不。
如何把代碼生成融入你的開發流程,以及它有什么你想不到的好處。
客戶和最終用戶不同意你選擇的方法時怎么辦。
如何言傳身教,將知識傳授給下一代程序員。
如果你準備長期從事軟件開發行業的話,相信你會不斷地反復閱讀這本書的。
避免常犯的錯誤
養成優良的習慣
破解密碼,你也可以起來
Ka Wai Cheung
程序員、設計師,還是芝加哥We Are Mammoth(我們是猛犸)公司的聯合創始人。為各行各業的客戶制作應用軟件,也制作自有的一些基于網頁的軟件。
譯者介紹:
勞佳
上海交通大學電子工程系碩士,現在SAP美國任高級軟件支持顧問。業余愛好語言、數學、設計,近年合作翻譯出版了《周末讀完英國史》、《加州大學伯克利分校人文建筑之旅》等書。
第1章 引言
1.1 誰是21世紀的程序員
1.2 吸取及時手教訓
1.3 這本書寫的是我們自己
第2章 比喻
第1篇 謹慎使用比喻
第2篇 規劃完備,然后開工
第3篇 發行不過是第1版
第4篇 "象牙塔"架構師的傳說
第5篇 扔掉舊代碼
第6篇 多元化勝于專業化
第7篇 比喻漸欲迷人眼
第3章 動力
第8篇 工作即福利
第9篇 從喜歡處入手
第10篇 莫求全
第11篇 休止一下
第12篇 早起先測試
第13篇 別在臥室里工作
第14篇 及時印象也就那么回事
第15篇 軟件發行的情感價值
第16篇 找個爭論話題
第4章 生產力
第17篇 對消閑項目堅決說不
第18篇 限制所有的因素
第19篇 去掉時間表中的細節
第20篇 每天改進產品的兩個方面
第21篇 為良好的工作環境投資
第22篇 列一張個人待辦事項清單
第23篇 和團隊一起安排免打擾時間
第24篇 采用自治小團隊的工作形式
第25篇 提高生產力,避談"我們"
第5章 復雜性
第26篇 "嗅"出壞的復雜性
第27篇 關于"簡單"的悖論
第28篇 復雜性就像挑棍游戲
第29篇 把復雜性藏起來
第30篇 "難編"可能意味著"難用"
第31篇 知道何時重構
第32篇 確定編程的節奏
第6章 教學
第33篇 教學不同于編程
第34篇 當心"知識魔咒"
第35篇 用淺顯的例子
第36篇 為簡化不妨說謊
第37篇 鼓勵自主思維
第7章 客戶
第38篇 刁鉆的客戶無處不在
第39篇 軟件黑魔法揭秘
第40篇 設定軟件的目標
第41篇 激發熱情,相信自己
第42篇 寬容大度,和藹可親
第43篇 價值遠不只是工時
第44篇 尊重你的項目經理
第8章 代碼
第45篇 寫代碼是不得已而為之
第46篇 拿來主義的文化
第47篇 代碼是好的初級程序員
第48篇 把機器和人的工作區分開
第49篇 從核心開始生成代碼
第50篇 自主開發的情形
第9章 自豪感
9.1 形象是個問題
9.2 烹飪行業的一課
參考文獻
第1章
引言
我被代碼逼瘋過——兩次。
及時次,是我在大學一年級上的一門編程課。這是一門必修課,我就選了。結果這和我小時候看過無數次的電影場景是兩碼事。我并沒有敲上幾個簡單命令,按下回車,然后就看到一個垃圾桶樣的機器人和我說"你好"。
課堂上甚至連個垃圾桶機器人都沒有,而全是一堆什么指針啊,內存分配啊,對象實例化之類的。我為了弄清楚這都是些什么玩意兒搞得焦頭爛額。不過,有一件事是明擺著了——我根本不是編程的料。
我想成為一個藝術家,或者當個數學家。我想要有創造力還要能夠——就像人們說的,左腦右腦一起上。編程似乎太偏向左半球了,可是我也想不出什么其他的職業道路,同時能夠在兩個世界施展。我迷茫了。
短短幾年后,互聯網的大潮徹底改變了編程的景象。編程突然就變得那么實際,那么觸手可及,而且還和設計關系緊密。藝術和邏輯幾乎被看做同樣重要。及時次,我真的覺得能夠享受這份工作,可以把我對于創造力和邏輯的熱情都傾注到網絡應用上。所以,雖然心懷忐忑,我又回來編程了。
講句老實話,我回來是另有原因。在之前的兩年里,我學習了其他很多學科,都似乎有太多太多的未解之謎。是去構思粒子物理里的大統一理論,還是去找較大的素數?毫無疑問,這些任務簡直難到無法想象,讓人望而生畏。我實在干不了這個。還有,那個講存在主義的課也沒能把事情說清楚。我是個年輕人,我想要的是答案,而不是越來越多的問題。
編程。我曾經唯恐避之不及的那個科目,現在成了我的避風港。不管怎么說,計算機科學還是人搞出來的。所有的事情肯定都有個答案。我期待的職業生涯,應該能讓我這種尋求答案的人大展宏圖——你能把甘醇的代碼變成顧客、同事和客戶常在的笑臉。規則都已經定好了,我們只要做就是了。困難無非就是在代碼里面而已,我當時是這么想的。
我第二次來做編程,才發現又上當了——顯然,實際遠不是這么回事。
1.1誰是21世紀的程序員
就像我在接下來的十五年中發現的那樣,隱士不適合搞編程。什么有個超級技術狂,躲在幽暗的地下室里,揮汗如雨幾個月,然后拿出最終產品,石破天驚,盡享榮華。不是這么回事。
現在,應用程序是主流。即我們為每一位用戶做的那種??蛻艨赡芰私馕覀內绾喂ぷ?,也可能沒什么概念。我們的交付周期有時候是按照白駒過隙的星期來算的,而不是按照月或者年算的。人可能突然一下子就覺得疲憊不堪,而拖延可能是最容易走的那條路。對于我們——當今的開發人員來說,軟件生產中所涉及的障礙已經遠遠超出了開發環境。
我有個好朋友經常和我開玩笑。"你工作的時候到底都干了些啥?"她知道我是個程序員,但并不是很確定程序員具體都做些什么。她問我問題時的那種刻薄質問的口氣,就像《上班一條蟲》里的那個辦公室顧問Bob Slydell一樣。
我是這么和她說的:我是一個無認證但是超級有邏輯的心理學家、理療師、機械工、外交官、商人和教師,我所在的行業,迄今仍然每時每天都有著新的詮釋。
這就是我對當今的程序員能夠給出的最簡潔的定義了。
1.2吸取及時手教訓
我叫張家為。我是個程序員、設計師,還是芝加哥We Are Mammoth (我們是猛犸)公司的創始合伙人。我們為各行各業的客戶制作應用軟件,也制作我們自有的一些基于網頁的軟件。后面會再談到這一點。
這本書集合了我自己在行業里總結的及時手的教訓、體會和走過的彎路。對于編程老手來說,你可能會發現我寫的某些軼事自己也經歷過。我們可以一起大笑、歡呼或是流淚。對于剛剛開始征程的菜鳥來說,希望這本書能夠為你進入行業的頭幾年助上一臂之力。
過去十五年中,我得到的教訓數不勝數。下面僅舉幾個這本書里談到的話題。
? 為什么軟件行業中許多傳統的開發流程和職責分配已經過時了,以及如何找出這些問題。
? 為什么要對消閑項目說"不",為什么開放的時間表對生產力至關重要。
? 協作的工作環境如何大幅提高我們的效率,又如何大大降低我們的效率。
? 如何讓代碼生成成為開發流程中自然而然的一部分,以及它除了讓生成代碼更快還有什么好處。
? 如何更好地與不能面對面交流的客戶打交道,以及如何面對不管軟件做了什么新改動都會大發雷霆的客戶。
? 為什么大幅加薪和"員工是我們最寶貴的財富"這句古老的口號并不意味著更好的技術工作。
? 如何認識到軟件本身已經太過復雜了。
? 如何成為更好的老師,讓我們能夠把知識在程序員中一代代傳下去。
1.3這本書寫的是我們自己
這本書是寫給各種各樣的程序員的。不過,它和代碼本身關系不大。不管你用的是C#、Ruby、Python、PHP、Java、JavaScript抑或是ActionScript,都沒什么要緊的。也無論你是在搞數據庫,寫服務器端代碼,還是做界面腳本,都無所謂。這本書講的是在標識符和對象這個層面之外,專業程序員的方方面面。
這倒也不是說我們就把編程棄之一旁,會有些地方談到代碼。不過,在談到代碼的時候,我們會用一種不那么技術化的全局眼光來看。我們不會一下子給你列出一堆什么實踐或者設計模式之類的。這些東西有很多別的書都講得很好了,我們只會適時提到一些。
這本書講的是真正的、現代的程序員是怎樣讓我們的行業欣欣向榮的。我們開始吧。
……
"這是Pragmatic Programmers系列中的又一本書——對新手來說是指引,對專家來說是重溫,這是關于程序員技藝(和生活)的一本美妙的智慧集。"
——Derek Sivers,CD Baby和sivers.org的創始人
"Ka Wai Cheung先生為那些尋找自己賴以生存的代碼的專業開發人員寫了一本書。這本書不是用那些在任何博客中都能找到的傳統想法拼湊起來的,而是用強有力且有針對性的方法,講述專業編程的技藝和現實。
如果你想找一本新瓶裝舊酒的編程規則,那就不用看這本書了。但是,如果你正在尋找一種視角,看看軟件開發是什么,或者你想要一套由真實經驗提煉出的指導方針,那這本書正是你需要的。"
——Bob Walsh,作家、47 Hats的創始人
"充滿`美味`的經驗,每篇的大小也十分`適口`——在這本書里你可以學到很多?;ㄉ闲r間從過來人那里學學吧。"
——Adam Hoffman, 高級開發主管
"一本好書,有現代程序員從日新月異的世界中得到的提示、技巧和經驗教訓。從事開發或與開發人員合作的人士不可不看。"
——Caspar Dunant, Webfish
"這是Pragmatic Programmers系列中的又一本書——對新手來說是指引,對專家來說是重溫,這是關于程序員技藝(和生活)的一本美妙的智慧集。"
——Derek Sivers,CD Baby和sivers.org的創始人
"Ka Wai Cheung先生為那些尋找自己賴以生存的代碼的專業開發人員寫了一本書。這本書不是用那些在任何博客中都能找到的傳統想法拼湊起來的,而是用強有力且有針對性的方法,講述專業編程的技藝和現實。
如果你想找一本新瓶裝舊酒的編程規則,那就不用看這本書了。但是,如果你正在尋找一種視角,看看軟件開發是什么,或者你想要一套由真實經驗提煉出的指導方針,那這本書正是你需要的。"
——Bob Walsh,作家、47 Hats的創始人
"充滿`美味`的經驗,每篇的大小也十分`適口`——在這本書里你可以學到很多?;ㄉ闲r間從過來人那里學學吧。"
——Adam Hoffman, 高級開發主管
"一本好書,有現代程序員從日新月異的世界中得到的提示、技巧和經驗教訓。從事開發或與開發人員合作的人士不可不看。"
——Caspar Dunant, Webfish
好
書的內容很好,第一天就看了幾十頁。
very good!!下次再來買!!
程序員必讀
非常不錯
挺好,程序員一定要看~~~
好書
還沒來的及仔細看,應該也還不錯
不錯,送貨很快。
這本書非常好看,非常滿意!
不錯的書,有很多小技巧。
優雅的代碼,很贊!
這個沒怎么看呢還 不知道內容怎么樣
這個商品還可以
很好
好書,值得一讀?。。。。。?!
一般
內容不錯,值得一看。
這個整體感覺一般。
感覺還是不錯的
翻了一遍,感覺很水。沒有什么內容,邏輯也比較差。
各人可能讀出的味道不一樣吧,反正我是沒有什么感覺
很不錯的 給程序員 指出了很多 需要注意的地方
買回來一天就看完,經驗挺管用,不過需要花不少時間實踐。