在推薦書單之前,我想先分享一些學習的經驗,讓有有經驗、有潛力的程式設計師能夠快速上手,但針對缺乏程式設計經驗的人來說,這裡的建議也是有幫助的,只是需要更多時間看書、寫 Code、除錯、除錯、再除錯、然後改 Code、改 Code、再改 Code,改到自己滿意為止。
對於讀書這件事來說,沒人可以強迫你讀書的,一定要強烈的動機靜下心來讀,若不能自動自發有規律的吸收新知,進步是有限的。但我也相信有許多人不看書是因為網路資訊太多,有需要上網找就好,不過我是覺得網路資訊不連貫,若要串連起完整的觀念需要一段時間(可能好幾年),但透過書籍卻是有很清楚的知識脈絡可以遵循,我是覺得比較容易得到全面的資訊,但每個人的觀念見仁見智,你只要覺得有吸收到想知道的也行。
首先,我認為一直寫 Code 而不看書是不實際的,這樣的寫 Code 過程必須面對許多因為觀念不對而導致寫錯程式的狀況,必須不斷的嘗試錯誤、上 Google 查資料、改寫、Debug、完成,也許 Try and Error 的過程很有趣,是可以不斷的驗證自己的理解能力很強,成就感也很高,但是我個人認為過多的 Try and Error 是很浪費生命的。沒有完整的觀念會導致寫程式缺乏效率,光是查資料就花了許多時間,因為不斷打字也會對你的手造成負擔。雖然這種「一步到位」的寫程式不太可能,不過可以當成一個目標來追尋,等你的程式設計功力越來越強,就會感覺越來越深刻。
我知道大部分程式設計師都很忙,都在忙著寫 Code,真要讓所有人想清楚再寫是不太可能的,所以大多數的人都一樣先寫了再說,最後如果有時間再重整自己的程式碼,因為程式設計師都是蠻懶的,所以我還蠻懷疑有幾個人會主動重整自己的程式碼,大多應該是沒出 Bug 就得過且過吧!不過會自己主動重整自己程式碼的人大多是有潛力的人才,有沒有重整過看 Subversion 的 Log 就知道了。
簡言之,擁有豐富的基礎知識(例如: .NET 基礎觀念)不管對你寫程式來說或是學習新知,速度都會比較快,像我現在一個晚上花兩小時大約可以看 50 頁的技術原文書,五年前的我大概只能看 10 頁,我現在每天也都會上網看一些國內外知名的 Blog 文章,充實新知的速度也是慢慢培養訓練出來的。
想學習 ASP.NET 2.0 (以上),多少還是需要充實 .NET 的基本觀念,我會推薦由悅知文化出版的 Microsoft .NET Framework 2.0 應用程式開發基礎 系列,共兩本:
我學習 ASP.NET 2.0 進步最多的時候是看了一本名叫 Professional ASP.NET 2.0 Special Edition 的書,當初是先看到電子書,在某一個週末一口氣把整本書看完 (將近 1,500 頁),看這本書的時候我已經寫 ASP.NET 一年多了,對 ASP.NET 只瞭解一些些,大多是工作上用的技術範圍到才會去瞭解,且當時的中文書也都寫的很粗淺,很多經驗都是自己 Try and Error 出來的,但看完這本書後覺得寫的太好了,對於 ASP.NET 的各個領域都講解的很完整,雖然每個章節所提到的技術沒有很深入,但是夠全面,對初學者來說是個不可多得的好書,當時就是覺得電子書很難標記重點,所以就把原文書給買回來了,然後貼了一堆標籤在上面,但過了幾個月後才發現中文翻譯書已經出來了,但是只有翻譯這本書的一半而已,直到最近又出了另一本下集,有興趣的人可以去買來看。
如果你已經有點 Web 的開發經驗,也可以考慮底下這兩本書,可以幫你補強許多 ASP.NET 基本觀念,這兩本書中有許多印刷錯誤的地方喔,看書的時候不要「照單全收」,最好都要認真思考過,否則可能會被誤導:
而最近剛看完一本書 Programming Microsoft® ASP.NET 3.5 (原文書),這本書的作者 Dino Esposito 文筆很好,英文用詞淺顯易懂,很容易閱讀,書中提到的大部分都跟 ASP.NET 2.0 差不多,但是卻講了許多在開發實務上才會用到的細節與小技巧,我覺得很實用,有些壓根沒想到的用他他都有提出來討論,還有書中的許多備註的地方 ( Note ) 都有很多好東西,一定要看。
剛那本 Programming Microsoft® ASP.NET 3.5 看完後欲罷不能,又去買了 Dino Esposito 的另一本書叫做 Programming Microsoft® ASP.NET 2.0 Applications: Advanced Topics,當然也寫的不錯,只是這本已經非常進階了,如果你不熟 .NET 基礎的話,應該是看不下去的。
最近也剛在看一本書叫做 Developing More-Secure Microsoft® ASP.NET 2.0 Applications,才剛看完兩章而已,看的速度有點慢,但是很過癮,會讓你更加瞭解 ASP.NET 2.0 運作的所有細節,讓你開發出來的 ASP.NET 2.0 網站更加的安全、可靠、有效率。
現在 ASP.NET 3.5 越來越熱門,我們也已經都全面採用 ASP.NET 3.5 開發了,技術轉換的幅度不大,應該很容易上手,主要是針對 LINQ 語法的熟悉與 ASP.NET 3.5 的控制項,還有 LINQ to SQL 的部分都能夠掌握的話,就差不多夠了。
最後,就是多訂閱一些國內外知名的 Blog,每天吸收一些新知,還有我的 Blog 一定要每天看,以前的文章每一篇也都要看,包你功力大增。
2008-07-07 更新:
我另外介紹一本我覺得寫的很棒的書 Microsoft Visual C# 2008 Step by Step ,最近剛出中譯本,如下: