本書獨家揭露了變成超級快手最重要的秘訣,在文章內喔…
暨上一本書跟一位很有創意的同事只花了兩天的時間,就出了一本書,從發想到完成書本很快,有種英雄相見恨晚的感覺,算算今年已經出了兩本書,算是寫書寫出心得了吧。
寫這本書源自於很多朋友一直希望我可以教他們寫程式,或是幫他們帶人寫程式,但帶人寫程式真的是一件不容易的事,很花時間,我只能就碰到的這些朋友或同事,給予目前他們遺漏或欠缺的部份,甚或是邏輯上的問題,給予作法上的建議,以加快他們目前的開發速度。
目前坊間的電腦書籍,大部分都是以程式語言的工具書為主,鮮少有如同事或是主管般,透過經驗傳授的方式,帶領一位工程師建立好的程式觀念;實際在工作上接觸的工程師,常常碰到的問題,就是工程師的觀念建立與培養,本書也是在這樣的想法上,期望提供工程師在每個時期可以參考的一本書。
基本上,我有將近十年的時間沒有在檯面上寫程式了,一方面我寫程式很特別,只想寫自己有興趣的程式,或是為了加快工作上面的速度,才會動手寫程式,所以前一家公司幾乎不知道我寫程式的能力,我隱藏的很好,哈!而且前一家公司做的平台不是單純的程式開發,很多架構性的思維無法用上,所以我也漸漸在工作中,讓自己忘記自己會寫程式,下班後才會記起來。
跟我熟識的朋友都知道,我寫的程式很快,基本上也沒什麼Bug,非常的穩定。這當然都是有原因的。因為應用需求,我曾經帶客戶寫程式,用客戶熟悉的程式,出了一個練習題,客戶從早上寫到下午,快下班前,我把我的NB螢幕投影到牆上,當場從頭開始寫起程式,在眾目睽睽之下,用二十分鐘把程式寫完;每個工程師眼睛睜的大大的,一臉佩服的樣子,是我當時最驕傲的時刻。
我在當開發工程師時,朋友找我救援一個案子,這個案子已經做了一兩年,時程早已延遲很久,岌岌可危,當時已經換過兩組團隊接手,系統仍是一堆問題,這個專案雖然只有幾百萬,但與客戶的合作案,每年金額超過上千萬,因此若是這個小案失敗,將可能影響雙方每年合作的案子。我快速看過整個程式架構後,發現裡面有很多人寫的程式,有功力不錯的,也有功力不好的;我花了一個多月,重新將底層改寫,整合每個人寫的程式,調整成函式庫,大大地增加系統穩定度,並救回了這個專案,連客戶高階主管都過來找我握手致意。
我當專案經理時,曾經管理一個專案,在業界相同的系統規格,競爭對手做了兩三年,仍然有一堆問題,無法上線,我卻用了十個月上線了,而且風評很好,功能非常好用,設計的很彈性;客戶說:這個案子是他們當時唯一準時且超前的案子。針對他們七十幾張報表,我規劃了一個簡單的報表產生程式,讓工程師在一個多月內寫完程式,並且產出七十幾張報表;並且原先他們規劃一年半自己做的報表,幾乎可以透過設定的方式,去完成這些報表。客戶說,我這個案子應該是要幾千萬的案子,我卻用幾百萬幫他們完成了。
另外,我碰過一些很奇特的案子;因為客戶需求,我與合作廠商說明客戶的期望功能的做,希望把現行的七、八十張網頁報表,可以透過一個網頁下不同參數,連結到不同的報表,並下參數給這些報表進行呈現;客戶說不行,對他們的架構來說要花很久的時間;並且想了一個外掛程式的方式,在每個瀏覽器加一個外掛;(心裡OS:現在都已經網頁時代,還搞Client-Server架構?更扯的是,他們CTO說做這個程式,因為他們是MVC架構,要改一年;在雙方高層無效溝通了一個多月,我乾脆請他們開主機權限,用兩個小時把他們號稱要做一年的程式做完了。(完全沒有動到他們的程式)(那時已經脫離工程師很久)同事說我真的打臉對方太大。
後來,因為一個案子有App程式及Web程式,TM規劃了4.5個人月開發網頁程式;我真的覺得太多了,我帶著一個剛出社會一年多的工程師,用一個月左右開發完一個特殊功能的App以及Web程式(只有他一個人寫,從來沒寫過Web程式,App也算初學)。不小心大勝了一組4,5個人的團隊的進度,年資都在三年以上。
另外,有時要整合一個系統,因為時間太趕,工程師做的太慢,只好自己動手,包含規劃一個整合API跟撰寫,因為很久沒寫程式了,所以邊教同事,邊寫,大概花了五分鐘的時間就做完,而且測試完,bug free.
經過了同事的慫恿,我就決定出了這一本書,希望對於購買本書的你們,可以獲得很多。
期望本書可以
1. 希望讓讀者知道程式怎麼樣可以又快又好
2. 寫程式最重要的部分是什麼
3. 邏輯很重要。
4. 怎麼快速學會一個程式語言。
5. 慢慢建立好的程式習慣
6. 快速寫一份文件(SA、使用手冊..)
壹、 自序. 5
一、 自序. 5
二、 怎麼看這本書比較快. 10
三、 購買本電子書的優點. 10
貳、 作者的經歷. 12
一、 大學的軟體開發經驗. 12
二、 接觸大型專案. 14
1. 第一份工作. 14
2. 很有想法的老闆. 16
3. 碰到13年開發經驗的國外工程師 18
三、 很棒的主管. 21
1. 很棒的主管. 21
2. 開發產品. 24
參、 變成超級快手最重要的秘訣. 26
肆、 怎麼把程式寫得又快又好. 28
一、 秘訣一:最重要也是每個人都做得到 28
二、 祕訣二: 有經驗的工程師都懂. 33
三、 祕訣三:初學或是剛踏進不同程式語言領域 35
四、 秘訣四:花一點點時間,就可以更快 36
五、 秘訣五:進階的秘訣. 38
六、 秘訣六:大家都知道的秘訣. 39
七、 秘訣七:晉升資深工程師的秘密. 43
八、 秘訣八:相當重要的秘訣. 44
九、 秘訣九:關鍵的成敗. 44
十、 秘訣十:優勝劣敗的最大關鍵. 45
伍、 軟體工程師需具備的特質. 46
一、 打字的速度與節奏. 46
二、 邏輯性. 48
三、 組織性. 49
四、 自我檢查. 50
五、 舉一反三. 51
陸、 程式優化架構案例. 54
一、 小案例:瞬間減少一半的Bug、一半的工時 54
二、 用一個多月,救了兩三年的陳年舊案 55
三、 兩三年的大專案,用十個月上線. 57
柒、 重要的觀念彙整. 59
一、 架構比寫程式的重要性優先且重要 59
二、 程式的邏輯:邏輯錯了,程式也不會正確 61
三、 工程師的品質很重要. 63
四、 測試要有方法. 64
五、 寫文件的技巧. 67
六、 多累積開發經驗. 69
七、 碰到問題. 70
八、 背語法與整理自己的程式庫. 72
捌、 給有經驗的工程師. 73
一、 訓練邊思考邏輯、邊下手. 73
二、 不要太快動手寫程式. 75
三、 看邏輯寫程式. 76
玖、 常見的問題. 77
一、 寫程式是不是真的要有天分?. 77
二、 當業務(客戶)直接問工程師問題. 84
三、 怎麼快速找到問題點?. 86
壹拾、 來,成為高手自我挑戰的題目:. 89
喜歡將經驗分享,從不藏私
著作過7本書,其中4本[程式快手]、[專案管理 葵花寶典]、[翻轉專案管理]、[學習快手]
是Google排行榜前100名常客。
[程式快手] 更曾到Google暢銷排行榜第一名很久。