如何挑一本好書,學習ASP.NET。個人觀點,非戰文。
不瞞您說,小弟也出過幾本書(電腦書),以我的身份來說這些事,其實很不客觀。
大家看看就好,不要開戰吵起來。......反正 Blog就是給大家各自表述的園地
以ASP.NET為例,什麼樣的電腦書適合「初學者」來閱讀呢?
-------------------------------------------------------------------------------------------------------------
1. 使用 Visual Studio來學習ASP.NET,不要用其他怪軟體
時代已經過去了,以前寫程式有很多開發工具能選擇。
現在的 Borland去哪裡了?微軟不光是OS、AP、現在就連 "開發工具"都一家獨大了。http://www.zdnet.com.tw/news/software/0,2000085678,20129203,00.htm
要學習 .NET,還在用 Express版,將來出社會,會有軟體公司用這種「精簡版」來開發程式嗎?
到時候重新學一遍,也是浪費時間。
去面試時,說自己只會用 Express版,哪個老闆敢用你?
更誇張的是:有人竟然用 DreamWeaver來學習 ASP.NET.......我真的只能用 Orz來形容。
DreamWeaver很強,是很棒的HTML網頁編輯器。但它用 User Control來方式推出自己的
「初學者」用他來學習 ASP.NET,你將來怎麼辦?連正統語法都還沒學熟悉,就用第三方軟體的怪標籤,將來怎麼改?
的確,為了幫學校、學生省錢,很多電腦書採用這種免費下載的 Express版軟體,
但我個人認為:千省萬省,不要省工具(工欲善其事,必先利其器)。
微軟的官方下載網站 download.microsoft.com 可以下載試用版。就算每30 or 60天要重新安裝一次,「初學者」也要破釜沈舟搞定。
不然的話,連工具都選錯,將來怎麼辦?
不學第一手的知識,難道要學第二手的嗎?要學被修改、重整過的嗎?......形勢比人強,現在就是微軟包山包海的時代。
除非不學 .NET改走 Java路線。不然的話,還是以「正統資源」為主
2. 書本的範例放在哪裡?
很多書每一個功能都講了,最後幾章放幾個大的範例。
「初學者」遇見這種書,下場大概只有一個。
- COPY範例直接改,發現不會動......因為自己底子差(沒從頭開始讀書),也不知如何下手修改。
- 然後,就有人開始罵書本寫的爛!!!以後只要是放購物車、聊天室當作書後範例的都是爛書!?
我要反駁一下:
如果我們改一改,把聊天室的範例,放在 Application/Session/Cookie這一章來解說,
根據我實際授課的經驗,學生不但學得好,而且很快就理解 Application/Session的差異與用法。
為什麼會這樣呢?
因為剛學完理論,立刻作一個有用的「習題」。學生記得牢,有感覺。
這範例(有用的「習題」)不是九九乘法表這種無趣的數學題,是真正網路上看的見的功能。....學生當然有興致。
把「大型範例」一股腦的全放在書本後面,「初學者」能力不夠,一遇見困難,根本不知道自己該回到哪一章去補強這些知識。
所以,與其提供一個超完美的聊天室(大型功能、鉅細靡遺),當成書本後面的「大型範例」。
倒不如把功能簡化,只求這個範例能「活用」目前的重點即可。
3. 什麼都講過一遍,但看完書之後,什麼功能都兜不起來
很多老師上課也是一樣,教程式總是要學生去解數學題,例如:找最大公因數、九九乘法表...等等。
每一種基礎語法都講了,結果真正寫程式時,愣住了。不知道要用什麼來寫?
等到我出社會,我才發現:基礎語法學"IF判別式"與"迴圈"兩個就夠用了。
學自己最需要的,學最實用的。與其「貪多嚼不爛」,不如學適合自己的。
那麼,初學者那裡知道自己需要什麼呢?......這問題很大,真的很大了。.....
我的建議是:多買書、多看,跟著書本進度來走。
一旦書本看的多,就會知道哪些「重點」是大家必提的共識!
4. 除了教科書之外,懶得買書,只想不勞而獲。
這兩年的電腦書市場,非常低迷不振。原因是學生不想買書,只想上網隨便看幾篇免費文章,抄抄改改就算了。
但因為「初學者」能力不夠,就算有大師分享範例,能力不夠一樣看不懂。
啥?您不信?......上網找找黃忠成老師的「 GridView 範例集」,我看看有幾個人能看懂八成以上。
(除非基礎很扎實,學得好,不然的話,高階的範例就算人家願意公開,我們都沒能力吸收起來)
也因為學生不想買書,所以書商大量推出「教科書」內容,減少店頭販售的電腦書(偏偏店頭賣的電腦書,走向都專業一點)。
這種「教科書」內容,大致如下:
- 適合一學期教學(所以內容不可能太多)。
- 講「淺」不談「深」。有些談、有些不談。(我不清楚出版社為何挑中這幾章的內容來談?)
- 功能大部分都有講,但前後不易整合。
我看過一本ASP.NET教科書,裡面不談ADO.NET與GridView的,想想看,這種教科書能學到什麼?
但很奇怪喔,裡面卻談了AJAX、Master Page與File。(我也不清楚:初學ASP.NET,書裡面為何要放這幾章?為何某些內容又不提?.....我也不懂。似乎純粹只是為了一學期講完來考量的)
以我為例好了,我當年學ASP,花最多時間在ADO上面。 .NET剛出來,我也是花最多時間看ADO.NET的東西。
當年,市面上每一本中文書,我都買了(不論內容深淺)。原文書能找到電子檔的,我盡量找來看。
(書本內容沒有好壞,只有「自己有沒有認真看完」!中文書,再怎麼說都是自己母語,閱讀速度最快,入門最簡單)
所以,聽到出版社的人員跟我反應:現在資訊科系學生不愛去店頭買書的。......我真的嚇一跳,連書都不買了,那「初學者」要怎麼從頭學起?
寫程式這條路,1. 絕對不可能只學一兩學期的,2. 更不可能一本書就能搞定(寫程式的道路上,沒有一本搞定的聖經)。
如果您心裡面有上面這兩個念頭,那死期將近。
「初學者」要把程式學好,就是要不斷地看書、找資料、參考別人範例、參與討論.....。
業界的工程師因為有案子的壓力,自然而然會做這些事,所以能力累積得很快。
初學者與學生沒有立即的壓力,如果手邊又沒書參考,那麼經驗的累積會非常~非常~慢~
如果自己又不看書,那麼成長幾乎是停滯不動的
=======================================================
越寫越擔心,很怕有人立刻開戰........幹剿起來
=======================================================
提了這些問題,那麼我的解法在那邊?
其實,2001年我就遇見這問題了。那時候我寫了一段時間的Web程式,被調去資策會的教育訓練中心當講師。
我心裡也毛毛的。尤其是前一位老師,聽班主任說:上第一節課就被學生抗議轟下台。
(因為500小時的就業輔導班,學費很貴,要價十幾萬。學生很認真的~)
我那時候,基本程式只談IF判別式與迴圈。SQL指令只談基本語法(因為有其他專任老師教過資料庫與SQL了)
第一、二個範例,就是 Master-Detail。
第三個範例,就是資料新增。
....然後是簡單的搜尋引擎、會員註冊與功能(Session & Cookie)、留言版、關連式資料庫、其他常見的網站功能。
那時的班主任也很怕,我下這種猛藥(前三個範例,前三節課的內容)。學生一旦學不會立刻又抗議了
沒想到情況出奇的好!因為這些範例,每個網站都有,都用的到。所以學生學習興致高。
我又刻意把範例的難度降低。日後慢慢加入新功能,最後補齊。學生學起來都不錯,回家作業都能完成。
最後,要畢業前的專題,竟然通通都選Web專案來作。可見他們對於Web Programming有興趣、也有信心能做好。
=======================================================
後來出書,也想依循這個範例與進度。
但是作不太到。
因為出版社還是希望保留「概論、介紹、基礎語法、基礎SQL」等等,這些章節不能少。如此一來,篇幅又佔去不少
要求一本書不能超過600頁。......加上學校老師又給一堆建議(有趣的是,不同的老師給的建議還相互抵觸).......
最後,一碗湯要上桌前,多少還是走味了
如同黃忠成老師所說的:「書的讀者層 也是一個讓計劃無法如期實行的原因,
教會讀者們如何運用一個技術是一回事,培養他們成為高級設計師又是另一回事,
Step by Step是一個入口,Deep Inside是一個出口,兩個門都得有人帶,
但是!!走進來的人 多過於 走到出口的人,一大半的人都是轉頭而去的。」
原文出處:http://www.dotblogs.com.tw/code6421/archive/2008/05/07/3855.aspx
實在是心有戚戚焉。
不論如何,初學者多買書、逼自己多學習、多看......是必要的。
這年代,想要前五年薪資比人家高,工作比人家好找。
資訊軟體科系是熱門的,絕對沒問題。No Pain, No Gain!
=======================================================
ASP.NET 2.0與3.5十分雷同。如果我粗淺的分類,ASP.NET 3.5 = ASP.NET 2.0 + AJAX + LINQ + 新的控制項
那麼許多 ASP.NET 2.0的書還是很有購買的價值。
初學者,要學的簡單、學得廣泛。
董大偉老師的書,厲害!(博碩出版,ASP.NET 2.0深度剖析範例集)
能力夠了,聖殿祭司的書可以補強(基峰出版,ASP.NET 2.0專家技術手冊)。
這兩本都很讚。(但順序如果相反,我不保證不會走火入魔,因為聖殿祭司的書,部份章節有難度)
黃忠成老師的書,也是很難得的鉅作。除了可以學到很多底層的細節之外,更可以考驗自己的能力到達什麼位階。
最後打一點廣告,我的書快出來了
=======================================================
覺得市面上的書都不好,怎麼辦?
=======================================================
當您覺得市面上的中文書都不好的時候,有些方向供您參考:
第一,直接看原文書。用英文寫書,很直接,會比中文更能直指核心。這一點,相信在大學看過原文書的人,都有感覺。
第二,直接看微軟MSDN的文件,有中文的(但是,翻譯得很不順,有些細節講得太細。但範例&程式碼都很值得學習)。
第三,上網討論,很多論壇的問與答,都是很難得的經驗。這些討論,很難有書本會講得這麼細節。(小朱在「旗標」有出版一本問題集,很不賴。http://www.microsoft.com/taiwan/msdn/books/asp.net/asp.net4.htm)
有本事覺得市面上的中文書,都搔不到自己癢處。 我想您的基本能力應該是沒問題了。
但是,很可惜的,我最常看見的「初學者」,都是不買書,甚至書都沒看就亂問一通了。
沒有基本能力,就想上網找免費資源了。
看過武俠小說的人都知道,底子不好又四處亂練功,下場就是......(科科~~)
並不是我們藏私。而是BLOG、討論區或是網頁,要做到「圖文並茂」真的好難好難。
沒有基礎能力的話,我講到嘴破,甚至直接給程式碼,還是無法解惑
總之,打好自己的底子,培養基本能力,是每一個初學者的基本功。
沒有一種能力,是會憑空得來。是不需努力就會有的。
投資自己,是一輩子最有積效的事。
相關的文章:
http://www.allenkuo.com/EBook5/view.aspx?TreeNodeID=7&id=9
http://blog.blueshop.com.tw/topcat/archive/2007/12/06/53569.aspx