我的计算机书籍创作心得
生活随笔
收集整理的這篇文章主要介紹了
我的计算机书籍创作心得
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
書的結構 一本好的技術書,應該是一個前后連貫的整體,具有完整的體系結構。寫作是一個從無序到有序的過程。可以把整個寫作過程比喻為給一個人梳頭發。最初是一頭糾纏在一起的亂發,首先把它理順,然后扎幾十個大辮子(每個大辮子還由若干個小辮子組合而成),再把這些辮子錯落有致、井然有序的盤繞在一起。 理順頭發相當于理清思路,對知識進行歸類。扎辮子相當于寫具體的章節,每個大辮子相當于一章,每個小辮子相當于章中的節。盤繞辮子相當于建立不同章節之間的聯系。聯系主要表現為兩種形式:(1)章節之間的參考關系 (2)相關內容之間的對比關系,有些內容看上去相似,但實際有差別,為了不引起混淆,應該進行對比。
以上三個步驟貫穿于寫書的整個過程。剛開始動工寫作時,只能粗粒度的劃分書的章,決定每一章要寫的內容,然后按照循序漸進的方式安排章的順序。在具體寫某一章時,還需要細粒度的把章劃分為若干小節。在寫具體的內容時,如果意識到這段內容與其他章節的內容存在聯系,應該隨時用文字揭示這種聯系。孤立的知識點很容易被遺忘,如果建立了各個知識點之間的聯系,這些知識就會在腦海里深深扎根,凡是背過成千上萬的英語單詞的人肯定都對此深有體會。
盡管以上原理人人都懂,盡管每一本書都有目錄,都劃分了章節,但是有的書條理清晰,而有的書結構混亂。書的結構是否安排得合理,取決于以下因素:
(1)作者本人對知識的理解程度。如果本人都沒有完全搞清體系結構,怎能像庖丁解牛那樣,恢恢乎游刃有余?
(2)作者的分類、歸納、概括和演繹能力。這種能力30%靠天賦,70%靠后天的思維練習。對我來說,從Tomcat,到Struts,再到Hibernate,每寫一本書,我都必須調動所有的腦細胞,把新的知識體系肢解為章節,然后再把它們聯系起來,我的歸納和概括能力在潛移默化中不斷提高,當我寫Hibernate時,已經明顯感受到了這點。 書的內容 如果說書的結構好比房屋的框架,書的內容則好比房屋的具體組成元素。計算機書的內容的形式分為:文字、 表格、圖和范例。為了把某種知識講清楚,常常需要綜合使用以上四種形式的元素。 1.文字
文字是介紹知識的最直接的手段。文字表達是否通暢、清晰,是決定書的可讀性的重要因素,在這里我想指出兩個需要值得注意的地方:
(1)避免英文式的中文語言,由于在寫作中需要參考英文文檔或書籍,在翻譯時很容易受英文的影響,寫出不倫不類的中文出來。避免這一問題的手段是,先理解英文文檔,接著把它拋到一邊,然后到第二天,再完全用自己的母語表達出來。
(2)謹慎的使用各種概念和術語,這是保證書的思路清晰、嚴謹的重要條件。在如今的計算機領域,新的術語和概念層出不窮,幾乎隨便拿幾個字母組合一下,都代表了一個計算機術語,如J2EE、ORM、DBA、ADO、DAO、CMP、BMP、CMT、BMT、EJB、B2E、B2B、POJO、BO、JDBC、MVC、JSP、JSF....在引用這些術語時,要注意四點:
a.根據書所面向的讀者群的技術水平,對一些術語作必要的解釋。例如什么叫“輕量級”對象,什么叫“輕量級”封裝,這里的輕量級(light weight)到底是什么意思,是否一樣?如果想讓書形成嚴謹和清晰的風格,就必須謹慎的使用那些讓人感覺含含糊糊的,直接由英文翻譯過來的詞匯,應該對這些詞匯給予清晰的解釋。技術書講究精確、明了,不提倡“只能意會,不可言傳”的文風。
b.有些術語有不同的說法,例如關系數據庫表中的記錄和數據行是同一個概念,在同一段內容中,如果沒有作特別說明,最好保持統一的說法。
c.有些術語看似相同,實則有一些差別,如業務對象、持久化類和JavaBean,這些術語并不完全等同,粗枝大葉的作者更本不會去敏銳的區分這些術語,會在同一個上下文中一會兒引用持久化類,一會兒引用JavaBean,一會兒改稱業務對象,這會使初級讀者看得暈頭轉向。
d.同一個術語具有不同的含義,例如對象的持久化“狀態”和對象的“狀態”,這里的“狀態”有著不同的含義,應該在文中對此作專門的解釋,提高書的可讀性。
e.不要總是照搬其他書籍中對概念的解釋,必要的話,用自己的語言去定義概念。例如,什么叫事務,什么叫緩存,普通的作者可能會到處查資料,然后從其他書上原封不動的抄過來;而優秀的作者能夠根據自己的理解,用更加準確明白的語言去定義概念。 2.表格
表格常用來顯示具有并列關系、或者對比關系的內容,能產生更加清晰的視覺效果。 3.圖
圖是用來形象的描述某種結構、流程或關系的有效手段,通常和文字結合適用。普通的作者不善于自己創作圖片,最多從其他地方拷貝一些圖片過來。優秀的作者善于把一些復雜的思想用圖片的形式表現出來,讓讀者看了一目了然。 4.范例
范例是幫助讀者快速掌握某種技術的捷徑。在我的每本書中,每一章都配備了實際可運行的范例,這是我的書受讀者歡迎的原因之一。我使用的范例有兩種形式,一種是為一個章單獨設計的范例,一種是貫穿全書的范例,這個范例包含若干版本,不同版本采用不同的實現手段,這能有效的幫助讀者理解各種實現方式的區別和相同點。對于作者來說,設計范例的能力也有一個不斷提高的過程,優秀的作者能夠密切配合正文的內容,創造性的設計出典型的范例。
書的原材料
在開始寫作時,面對的是一張白紙,最后要洋洋灑灑的寫出800,000字出來,這些信息并不是原來就全部存儲在大腦里的。如果把大腦比作一個輸入輸出系統,那么以下圖展示了大腦在寫作時的輸入流和輸出流。
寫書和從事軟件開發不同,開發軟件時,你只需對技術的某一局部方面非常精通,對其他方面大致了解;但是一本技術書必須提供一個完整系統的知識體系,除了整體的框架,還必須涉及許多細節,比如列舉Struts配置文件中每個元素的用法,Struts標簽庫的每一個標簽的用法。因此,在寫技術類書籍時,參考其他文檔或書籍,或到網上查閱資料是不可避免的。在參考的過程中,作者必須先消化吸收原始材料,然后從中汲取有益的思想,把它融合到自身的作品中。如果作者本人還不完全理解他人的內容,把他人的內容原封不動、七拼八湊到自己的書中,那么整本書前后就會缺乏聯貫性和條理性,不能構成一個完整獨立的知識體系,讓讀者看了不知所云。
書的潤色
對書進行潤色就好比對房屋進行裝修,使書的形式能完美的反映書的內容。當完成書的初稿后,需要對書稿復查好幾遍,復查的過程也就是對書潤色的過程。在復查的過程中,主要負責以下工作:
- 修改筆誤和錯別字。
- 核查內容的正確性。
- 進一步推敲措辭用語,直到它能最清晰的表達特定思想。
- 如果內容還不完整,可以再擴充內容。
- 從書的全局出發,對書的結構進行協調,使它循序漸進,前后連貫。
根據我的經驗,每復查一邊,我都會對書稿作一些改動,第一次復查時改動量最大,以后逐漸減少,這是一個精益求精的過程,直到基本上我覺得滿意時,就可以向出版社交稿了。就像有人說房屋的裝修無止境一樣,書的潤色也是無窮盡的。書的品質只會逐漸趨向于完美,但是永遠不會達到完美無缺的極限。對書的精雕細琢會達到什么程度,不僅取決于作者的寫作水平,更取決于作者的寫作態度。 書的深度 正如一位讀者所說,運用性的計算機技術都談不上高深,對此我很認同。當你接觸一種新技術時,在對它一無所知的時候,可能會覺得它很難,神秘莫測,可是一旦熟悉并掌握了它,就會覺得不過如此。優秀的計算機書籍應該力圖向讀者展示技術的淺顯易懂的真面目,這包括從書的結構和書的內容兩方面去下功夫。當讀者讀不懂一本書時,如果誤以為是因為技術本身非常深奧,難以理解,那就錯了。只要讀者的理解和領悟能力不是太差,往往是因為書本身寫得不好,比如結構不清,語言晦澀,各種不加解釋的新名詞、新術語到處亂飛,使讀者看得著時費力。
我寫的Struts和Hibernate都清晰明了,即使是初學者也能看懂,當他們看懂了書后,會大有收獲,并且覺得技術原來并不難。不過也有少量讀者,已經習慣于被那些看似深奧的書搞得戰戰兢兢,當他們輕輕松松看完我的書后,卻運用以下錯誤的邏輯條件,再加上錯誤的邏輯推理,得出錯誤的結論,說我的書通俗易懂,但缺乏深度:
看不懂的書 -->是有深度的書
(反之)看得懂的書 -->是沒深度的書 作者:孫衛琴
寫作時間:2005-4
以上三個步驟貫穿于寫書的整個過程。剛開始動工寫作時,只能粗粒度的劃分書的章,決定每一章要寫的內容,然后按照循序漸進的方式安排章的順序。在具體寫某一章時,還需要細粒度的把章劃分為若干小節。在寫具體的內容時,如果意識到這段內容與其他章節的內容存在聯系,應該隨時用文字揭示這種聯系。孤立的知識點很容易被遺忘,如果建立了各個知識點之間的聯系,這些知識就會在腦海里深深扎根,凡是背過成千上萬的英語單詞的人肯定都對此深有體會。
盡管以上原理人人都懂,盡管每一本書都有目錄,都劃分了章節,但是有的書條理清晰,而有的書結構混亂。書的結構是否安排得合理,取決于以下因素:
(1)作者本人對知識的理解程度。如果本人都沒有完全搞清體系結構,怎能像庖丁解牛那樣,恢恢乎游刃有余?
(2)作者的分類、歸納、概括和演繹能力。這種能力30%靠天賦,70%靠后天的思維練習。對我來說,從Tomcat,到Struts,再到Hibernate,每寫一本書,我都必須調動所有的腦細胞,把新的知識體系肢解為章節,然后再把它們聯系起來,我的歸納和概括能力在潛移默化中不斷提高,當我寫Hibernate時,已經明顯感受到了這點。 書的內容 如果說書的結構好比房屋的框架,書的內容則好比房屋的具體組成元素。計算機書的內容的形式分為:文字、 表格、圖和范例。為了把某種知識講清楚,常常需要綜合使用以上四種形式的元素。 1.文字
文字是介紹知識的最直接的手段。文字表達是否通暢、清晰,是決定書的可讀性的重要因素,在這里我想指出兩個需要值得注意的地方:
(1)避免英文式的中文語言,由于在寫作中需要參考英文文檔或書籍,在翻譯時很容易受英文的影響,寫出不倫不類的中文出來。避免這一問題的手段是,先理解英文文檔,接著把它拋到一邊,然后到第二天,再完全用自己的母語表達出來。
(2)謹慎的使用各種概念和術語,這是保證書的思路清晰、嚴謹的重要條件。在如今的計算機領域,新的術語和概念層出不窮,幾乎隨便拿幾個字母組合一下,都代表了一個計算機術語,如J2EE、ORM、DBA、ADO、DAO、CMP、BMP、CMT、BMT、EJB、B2E、B2B、POJO、BO、JDBC、MVC、JSP、JSF....在引用這些術語時,要注意四點:
a.根據書所面向的讀者群的技術水平,對一些術語作必要的解釋。例如什么叫“輕量級”對象,什么叫“輕量級”封裝,這里的輕量級(light weight)到底是什么意思,是否一樣?如果想讓書形成嚴謹和清晰的風格,就必須謹慎的使用那些讓人感覺含含糊糊的,直接由英文翻譯過來的詞匯,應該對這些詞匯給予清晰的解釋。技術書講究精確、明了,不提倡“只能意會,不可言傳”的文風。
b.有些術語有不同的說法,例如關系數據庫表中的記錄和數據行是同一個概念,在同一段內容中,如果沒有作特別說明,最好保持統一的說法。
c.有些術語看似相同,實則有一些差別,如業務對象、持久化類和JavaBean,這些術語并不完全等同,粗枝大葉的作者更本不會去敏銳的區分這些術語,會在同一個上下文中一會兒引用持久化類,一會兒引用JavaBean,一會兒改稱業務對象,這會使初級讀者看得暈頭轉向。
d.同一個術語具有不同的含義,例如對象的持久化“狀態”和對象的“狀態”,這里的“狀態”有著不同的含義,應該在文中對此作專門的解釋,提高書的可讀性。
e.不要總是照搬其他書籍中對概念的解釋,必要的話,用自己的語言去定義概念。例如,什么叫事務,什么叫緩存,普通的作者可能會到處查資料,然后從其他書上原封不動的抄過來;而優秀的作者能夠根據自己的理解,用更加準確明白的語言去定義概念。 2.表格
表格常用來顯示具有并列關系、或者對比關系的內容,能產生更加清晰的視覺效果。 3.圖
圖是用來形象的描述某種結構、流程或關系的有效手段,通常和文字結合適用。普通的作者不善于自己創作圖片,最多從其他地方拷貝一些圖片過來。優秀的作者善于把一些復雜的思想用圖片的形式表現出來,讓讀者看了一目了然。 4.范例
范例是幫助讀者快速掌握某種技術的捷徑。在我的每本書中,每一章都配備了實際可運行的范例,這是我的書受讀者歡迎的原因之一。我使用的范例有兩種形式,一種是為一個章單獨設計的范例,一種是貫穿全書的范例,這個范例包含若干版本,不同版本采用不同的實現手段,這能有效的幫助讀者理解各種實現方式的區別和相同點。對于作者來說,設計范例的能力也有一個不斷提高的過程,優秀的作者能夠密切配合正文的內容,創造性的設計出典型的范例。
書的原材料
在開始寫作時,面對的是一張白紙,最后要洋洋灑灑的寫出800,000字出來,這些信息并不是原來就全部存儲在大腦里的。如果把大腦比作一個輸入輸出系統,那么以下圖展示了大腦在寫作時的輸入流和輸出流。
寫書和從事軟件開發不同,開發軟件時,你只需對技術的某一局部方面非常精通,對其他方面大致了解;但是一本技術書必須提供一個完整系統的知識體系,除了整體的框架,還必須涉及許多細節,比如列舉Struts配置文件中每個元素的用法,Struts標簽庫的每一個標簽的用法。因此,在寫技術類書籍時,參考其他文檔或書籍,或到網上查閱資料是不可避免的。在參考的過程中,作者必須先消化吸收原始材料,然后從中汲取有益的思想,把它融合到自身的作品中。如果作者本人還不完全理解他人的內容,把他人的內容原封不動、七拼八湊到自己的書中,那么整本書前后就會缺乏聯貫性和條理性,不能構成一個完整獨立的知識體系,讓讀者看了不知所云。
書的潤色
對書進行潤色就好比對房屋進行裝修,使書的形式能完美的反映書的內容。當完成書的初稿后,需要對書稿復查好幾遍,復查的過程也就是對書潤色的過程。在復查的過程中,主要負責以下工作:
- 修改筆誤和錯別字。
- 核查內容的正確性。
- 進一步推敲措辭用語,直到它能最清晰的表達特定思想。
- 如果內容還不完整,可以再擴充內容。
- 從書的全局出發,對書的結構進行協調,使它循序漸進,前后連貫。
根據我的經驗,每復查一邊,我都會對書稿作一些改動,第一次復查時改動量最大,以后逐漸減少,這是一個精益求精的過程,直到基本上我覺得滿意時,就可以向出版社交稿了。就像有人說房屋的裝修無止境一樣,書的潤色也是無窮盡的。書的品質只會逐漸趨向于完美,但是永遠不會達到完美無缺的極限。對書的精雕細琢會達到什么程度,不僅取決于作者的寫作水平,更取決于作者的寫作態度。 書的深度 正如一位讀者所說,運用性的計算機技術都談不上高深,對此我很認同。當你接觸一種新技術時,在對它一無所知的時候,可能會覺得它很難,神秘莫測,可是一旦熟悉并掌握了它,就會覺得不過如此。優秀的計算機書籍應該力圖向讀者展示技術的淺顯易懂的真面目,這包括從書的結構和書的內容兩方面去下功夫。當讀者讀不懂一本書時,如果誤以為是因為技術本身非常深奧,難以理解,那就錯了。只要讀者的理解和領悟能力不是太差,往往是因為書本身寫得不好,比如結構不清,語言晦澀,各種不加解釋的新名詞、新術語到處亂飛,使讀者看得著時費力。
我寫的Struts和Hibernate都清晰明了,即使是初學者也能看懂,當他們看懂了書后,會大有收獲,并且覺得技術原來并不難。不過也有少量讀者,已經習慣于被那些看似深奧的書搞得戰戰兢兢,當他們輕輕松松看完我的書后,卻運用以下錯誤的邏輯條件,再加上錯誤的邏輯推理,得出錯誤的結論,說我的書通俗易懂,但缺乏深度:
看不懂的書 -->是有深度的書
(反之)看得懂的書 -->是沒深度的書 作者:孫衛琴
寫作時間:2005-4
轉載于:https://blog.51cto.com/sunweiqin/46330
總結
以上是生活随笔為你收集整理的我的计算机书籍创作心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐一款最好的服务器备份软件
- 下一篇: 长城炮柴油箱安全空间多少升的?