天天看點

書是怎樣寫成的——《ASP.NET夜話》背後的故事

最初的藍本

在2007年的時候我進入一家開發公司,當時那家公司主要是以asp來開發網站,當時公司上司對我寄予了很大的希望,想我帶領公司開發人員由asp轉向ASP.NET,在2007年7月裡我開始對公司老員工和新近員工進行ASP.NET教育訓練,當時是上午給開發人員做教育訓練,下午的時間則讓開發人員動手做我布置的練習,我接着準備第二天的知識點并制作ppt和編寫示例代碼,經過半個多月的教育訓練之後就留下了一套關于ASP.NET系列的ppt,這套ppt涉及到HTML、CSS、JS、資料庫、C#基礎和ASP.NET基礎。這次教育訓練相當成功,教育訓練的新人很快就能上手工作了,不過不是為我所在的那家公司,因為其他公司開出的待遇更吸引人,中間我還郁悶過一段時間,公司上司看到我郁悶還讓我帶薪休假出去玩了幾天。

第二次派上用場

2008年3月我進入了一個IT教育訓練機構,當時這家教育訓練機構有一批即将要畢業的學生,這批學生出去找工作的時候發現在學校學到的知識與企業所需存在一定的差距,考慮到我一直在一線從事.net開發,了解企業用人标準(在進入該IT教育訓練機構之前我曾在企業負責技術面試),是以希望我對這批學生進行一個短期的實戰集訓,這樣我又把2007年整理的那套ppt重新搬出來了。

中間也有一些比較尴尬的事情。第一天的時候很多人慕名去聽課,容納60多人的教室座無虛席,到了第二天人就少了一些,等課程上到三分之一的時候教室就已經空了一半了。等到最後一天上課的時候,教室裡隻有4個學生。在上課之前我給他們講了一個笑話,算是自我解嘲吧。

我說:“有一個非常有名的牧師去一個地方布道,這個牧師心想憑自己的名氣教堂裡一定會座無虛席,可是到現場以後卻發現隻有一個馬夫。看到牧師的失望,馬夫安慰牧師說:‘牧師,即使我的馬廄裡隻有一匹馬我也會拿草料去喂的。’牧師聽了大受鼓舞,馬上滔滔不絕地講開了,等講完的時候馬夫剛剛從睡夢中醒來,馬夫對牧師說:‘牧師,如果馬廄裡隻有一匹馬的話,我是不會拿一整車的草料去喂它的。’”學生笑了,我也皆這個笑話開始了這尴尬的一課。

第一次的成功和第二次的失敗給了我一些經驗和教訓,我自己分析過原因。第一次教育訓練的人員都是在企業工作過一段時間的開發人員,雖然以前沒有接觸過ASP.NET,但是接觸過其它的程式設計語言,有一定的業務經驗和因為知道工作的艱辛是以有強烈的學習欲望,是以教育訓練收獲很大。而第二次教育訓練的是沒有任何業務經驗并且從未走出過校門的學生,并不知道工作的艱辛,同時心态的浮躁加上沒有正确的學習方法,是以教育訓練基本沒有什麼效果。

有過在IT職業教育訓練中心當老師的同行可能對一些IT教育訓練機構的做法有些了解,老師的表現需要學生來打分,是以學生的學習積極性不是太強,老師還需要哄着學生去學習,否則學生可能會給你比較低的分數,有些學生在上課時睡覺,機房動手實踐時看小說玩遊戲)當然一個班一般也有4、5個學習比較認真的,其實大學裡這種情況似乎也很普遍),感覺當時似乎精力不是放在如何講好課上,而是如何跟學生處好關系上(也正是部分出自這方面的原因,我最終在2008年12月31日前結束了我的老師生涯)。話也說回來,有些學生睡覺或者不願意認真上課也是由于老師的原因,有些教育訓練機構的老師自身的技術也存在一些不足,态度上也存在一些問題。

第三次派上用場

在2008年8、9月份的時候,接觸到的一家公司也需要轉型,也是想從asp轉型到ASP.NET,于是這套ppt第三次派上用場,吸取了第一次的成功經驗和第二次的失敗教訓,在講解時我把上課時學生經常犯的錯誤在講述時着重講解,并且把一些重要步驟反複講解,不過這次教育訓練時沒有布置作業,感覺效果比第二次要好,但是比第一次要差。

決定寫部落格

一次和朋友一起吃飯的時候聊到教育訓練的事情,然後他建議他做一個WinForm的教育訓練,希望我做一個ASP.NET的教育訓練,當時我答應了,這個教育訓練是針對特定人群的免費教育訓練。

答應之後我就開始着手準備,于是我開始以2007年的那套ppt作為藍本,在此基礎上結合在IT教育訓練機構的授課經驗。由于白天要在教育訓練機構上班,是以隻能下班之後晚上寫,在一開始的時候我就想到要寫一個系列的,在為這個系列文章取名字時動了一番腦筋,最後在一天早上起床時腦子裡突然冒出“ASP.NET夜話”這個詞語來,下課的時候和一位同樣是教.NET的朋友聊天,我告訴他我決定寫一個ASP.NET的系列部落格,名字叫“ASP.NET夜話”,他當時說了一句話:“感覺像聊齋一樣。”

由于實在想不出什麼好的名字,是以我就以“ASP.NET夜話”作為系列文章的名字開始了寫部落格的曆程,這個系列的文章最開始是在CSDN發表的。一天上課的時候學生告訴我在CSDN首頁上找到了我的名字,我打開一看果然看到我的文章被推薦到CSDN首頁。由于被推薦到首頁的關系吧,文章的點選量相當高,很多讀者在文章後面發表了鼓勵和肯定的留言,是以的積極性很高,每天晚上吃完飯回到家就開始寫(鍋碗瓢盆上一次搬家的時候送人了隻好在外面餐館吃),每天寫完的時候大概是臨晨2點左右,篇幅特别長的時候會寫到臨晨3、4點。記得當時有位朋友在上面留言,說道:“寫得太好了,比有些書寫得還好。”當時我還跟這位讀者開玩笑:“如果寫成書你會買嗎?”那位朋友說:“我肯定買。”說實在話,當時就有些心動,想看看是否整理能整理成書,因為我從小的願望就是當一名作家,後來家裡考慮到男孩子學文科不好找工作讓我去學了理科。

簽定合同

在2008年10月16日去北京湯山參加參加MVP Open Day的時候有些出版社編輯也參加了,機緣巧合我遇到了博文視點的孫學瑛老師,孫老師建議MVP們通過寫書的方式把自己的經驗心得分享出來,于是我跟孫老師談了談我的想法,并且講我現在已經正在寫的《ASP.NET夜話》系列,不過似乎孫老師當時不太看好ASP.NET系列,覺得C#基礎的書可能會更好一些,當時我也沒有抱有太大希望,隻是給孫老師留下了我的名片,說:“名片上有我的部落格位址,您可以看看别人對這本書的評價。”三天的MVP Open Day結束的時候我回到了機關,打開郵箱一看收到了孫老師的郵件,她詢問我的聯系位址,說是準備給我寫稿合同,當時還有些不敢相信,激動了幾天,呵呵。

在簽定合同的時候我特地将完稿時間定在了2009年的5月20日,玩過數字遊戲的人都知道5201314是“我愛你一生一世”的諧音,我取5月20日也有這個意思(520即“我愛你”的諧音),當時是一個人,希望在2009年能找一個心儀的人結束單身(憧憬明天嘛)。

在簽定合同之後剛開始還放了幾篇文章在部落格上,後來看到合同中似乎有不允許稿件散播的限制,便終止了繼續在部落格更新了,這一點請大家原諒。

尴尬的視訊錄制

大約是在2008年年底的時候,博文視點孫學瑛老師提出是否可以提供相關視訊,我當時同意了,這就有了測試版的《ASP.NET夜話》視訊,之是以稱之為測試版視訊,是因為在錄制過程中有一些不可抗力的因素。

首先最大的問題是噪音問題。我所住的地方是一個關系比較嘈雜的地方,樓道裡安裝的聲控電燈,有些加班很晚回來的人回來時會在樓道裡尖叫或者用力蹬樓梯,是以經常會出現錄制了很長時間突然出現一聲尖叫或者很沉重的腳步聲,導緻整集視訊需要重新錄制。最絕的時,有一次我準備錄制45分鐘的視訊,結果錄制到44分鐘的時候鄰居家夫妻吵架,方圓數裡都能聽到女人的哭聲和國罵,等我耐心等到國罵結束時已經是淩晨三點了,沒辦法,隻好睡覺,因為第二天還要上班。當然在測試版視訊中我盡量剔除了這些噪音很大的視訊,有些幹擾不大的依然釋出了,正式版視訊則完全是重新錄制的(測試版視訊是基于VS2005的,正式版視訊是基于VS2008的)。

其次是身體原因。本來我的胃不是太好,從2006年起就有些症狀了,到2009年的時候因為長期熬夜就更加明顯了,整個眼睛充滿了血絲,我曾經跟朋友開玩笑說我演恐怖片不用化妝,我的充血的眼睛就非常恐怖。除此之外,我經常不自主地打嗝,在測試版視訊中可能細心的話能偶爾聽到。

我将視訊上傳到我個人的虛拟主機空間上,然後在我的部落格上公布錄制資訊和下載下傳位址,後來有熱心人将視訊通過電驢下載下傳的形式公布了,是以更多的人經常在部落格上催促我新的視訊,這是一種動力,也是一種壓力,是以在那段時間基本上沒有太多考慮身體的情況。

背後的背後

之是以說是背後的背後,因為這裡講的是我和出版社之間的故事,對于一些想寫書的朋友或許有些幫助。

(1)軟體版本的變化

剛開始寫《ASP.NET夜話》的時候主要是基于VS2005+SQL2000的,因為給客戶開發軟體的時候,經常遇到的情況是有一些現有的系統使用了SQL2000資料庫,更新現有資料庫畢竟不太現實(企業中更新軟體版本還需要一個比較長的周期的),而且很多虛拟空間提供商提供的空間為.net 1.1,.net 2.0也有,但是.net 3.0和.net3.5的國内就比較少了,基于這些考慮是以剛開始寫的時候也是基于VS2005+SQL2000,到了2009年之後我所在的公司開始使用VS2008和SQL2005了,是以在最終發行的時候是基于VS2008+SQL2005的。

(2)書稿稽核過程中的故事

在5月份的時候已經完成了書稿,随後就是書稿稽核過程。這裡确實不得不佩服編輯的細心。在寫作的時候我基本上是順着自己的思路寫,不是太注重語句的通暢及錯别字現象,在交稿給出版社之前我自己重新将書稿稽核了一遍,不過交給出版社之後編輯仍發現了很多問題。當然這裡也不得不提一下的是,5月份交稿期間正好趕上公司開發一個大型項目,每天早晨8點趕到公司,晚上11點才能回家,回到家差不多就是12點了,我還得繼續打開筆記本整理稿件,每天整理完稿件睡覺的時候差不多就是淩晨3、4點了,一天的睡覺時間也就4、5個小時。

在《ASP.NET夜話》一書的最後一章是一個綜合執行個體項目,剛開始的時候我想仍然沿用以前在公司教育訓練時講解的那個項目,後來自己覺得不是太合适,因為在那個項目中不能太多示範書中講解的知識點,于是決定重新選用一個項目,就是一個文章管理系統,在這個系統中講解了如何生成HTML靜态頁面的知識。在示範系統中我錄入了幾篇我很喜歡、也覺得很有啟發意義的文章,比如《68個經典管理寓言故事》和《人生哲理枕邊書——你應該知道的165個人生哲理》等,不過因為書中有些故事本身的舉例有些問題,在稽核過程稽核人員感覺有些故事不太合适,最終不得不删除了。

在稽核過程中還有一件有趣的事情,那就是肖像權的問題。在最後一章的執行個體中,我引入了一些圖檔,怕涉及侵犯肖像權,讓我删除了不少照片,搞笑的是有一張照片居然是我自己的照片,這張照片是我2003年的工作照,想想可能是這幾年來我的變化比較大吧。從1998年到2005年之間我的身高沒有變化保持在175cm,體重也保持在54kg至56kg之間,直到2005年之後才突破了60kg,最近又創新高,達到了71kg了。當然最終那張照片在書中保留了,大家可以在随書CD光牒中看見我2003年的樣子(之是以極力保留這張保留也是有些懷念以前那段艱難的生活吧)。

另外,有些遺憾的是本來在書中包含了本書中涉及到的所有軟體,盡管這些軟體都是免費或者開源的軟體,但是最終不能包含在随書CD光牒中(可能是怕引起版權糾紛吧,也許覺得放在書中是以商業的方式使用這些軟體),是以我隻好将這些軟體放在我的個人伺服器上了。

(3)感動編輯的前言

在完成書稿的稽核之後,出版社讓我提供書的前言和内容簡介。由于以前沒有寫過這方面的東西,是以看了看别人的樣例。按照一般格式前言部分會有一個緻謝,在這裡想要感謝的人太多了,那段時間裡差不多每天都有人在部落格留言上催寫新章節,記憶特别深刻的是一位在日本工作的朋友,給了我很多他的意見和建議。

就在寫作前言的那個晚上,我正寫着的時候忽然手機響了,是家裡打來的,媽媽告訴我第二天有大雨,讓我帶傘出門。“要看關心一個人的程度,隻要看他是否關心另一個人那裡的天氣就知道了。”這句話是我92年至95年在湖北黃岡讀高中的時候在一本雜志上看到的,看過之後一直記下來了。我從1990年11歲時就開始在學校寄宿了(那時候我讀國小五年級,為了應付黃岡地區的競賽是以在學校寄宿補課),從那以後我開始了一個獨立生活的生涯,大學畢業之後更是遠離湖北去了天津,兒行千裡母擔憂,不在身邊的時候媽媽對我的叮囑特别多。每天媽媽都會看中央電視台的天氣預報,由于我工作忙幾乎不看電視,是以每次天氣發生重大變化時總是媽媽提前通知我,是以在寫前言緻謝時我用了很濃的筆墨、很誠摯的感情向父母表示了感謝之情。以緻于交給編輯孫學瑛老師時,她說了一句:“我工作這麼多年了,看的前言也不少了,卻沒有想到前言也可以寫得這樣感人。”我說了一句:“情之所至。”

(4)書籍出版的流程

也許不同的書籍出版流程并不一樣,我經曆的流程是這樣的:寫樣稿(當然我的樣稿就放在我的部落格上),接着填寫選題相關材料,通過出版社稽核之後就會要求簽訂一份約稿合同,在約稿合同中寫明書的總字數(這裡書的字數并非僅僅是指中英文數字字元的個數,而是以頁數來算的字數,即使一頁中全是圖檔也會被計算作字數的)、交稿時間、交稿方式(如手寫稿、電子稿及相關文檔、視訊等),交稿之後會有編輯對編寫的稿件進行審稿,審稿過程包括文字方面的稽核和政治方面的稽核,如要求語句通暢、思想積極健康等,審稿過後就會要求填寫一份出版合同,簽訂出版合同之後唯一要做的就是等着出版社給郵寄樣書了,我收到出版社給我的樣書是2009年7月27日,而書的正式上市則是2009年7月29日。

今年的計劃

原本是計劃在今年下半年着手再寫一本書的,題材和方向我都想好了,可是由于身體的原因不能熬夜而白天又沒有什麼時間,是以暫時隻能擱置這個計劃。下半年的計劃主要是以提高英語的聽、寫能力,工作之後雖然一直堅持閱讀英語方面的技術資料,不過聽、寫能力卻沒有得到鍛煉,是以計劃下半年在這方面重點突破。其實我從2月份起就已經開始這方面的鍛煉了,從2月份起我就堅持步行上班,半個小時就可以到公司,每天就利用這上下班路上的一個小時時間聽VOA,後來感覺僅憑每天一個小時的時間太少,是以準備再利用一下晚上的時間。當然除此之外,也會做一些前瞻性的研究,為下一本書做準備。

繼續閱讀