1. 程式人生 > >程式設計師怎樣出版一本技術書

程式設計師怎樣出版一本技術書

    在面試或聯絡副業的時候,如果能令人信服地證明自己的實力,那麼很有可能事半功倍。如何證明自己的實力?最有信服力的是大公司職位背景背書,沒有之一,比如在BAT擔任資深架構,那麼其它話甚至都不用講了。

    不過,不是每個人入職後馬上就是大公司架構師,在上進的路上,還可以通過公眾號,專欄博文,github程式碼量和出書出視訊等方式來證明自己。和其它方式相比,屬於自己的技術圖書由於經過了國家級出版社的加持,相對更能讓別人認可自己的實力,而對於一些小公司而言,一本屬於自己的書甚至可以說是免面試的通行證。所以在本文裡,就將和廣大程式設計師朋友聊聊出版技術書的那些事。

1 不是有能力了再出書,而是在出書過程中升能力

    我知道的不少朋友,是在工作3年內出了第一本書,有些優秀的,甚至在校階段就出書了。

    與之相比還有另外一種態度,不少同學可能想,要等到技術積累到一定程度再寫。其實這或許就不怎麼積極了,邊寫書,邊升技術,而且寫出的書對人還有幫助,這絕對可以做到的。

    比如有同學向深入瞭解最近比較熱門的python資料分析和機器學習,那麼就可以在系統性的學習之後,整理之前學習到的爬蟲,資料分析和機器學習的案例,根據自己的理解,用適合於初學者的方式整理一下,然後就能出書了。這種書,對資深的人幫助未必大,但由於包含案例,對入門級的讀者絕對有幫助,因為這屬於現身說法。而且話說回來,如果沒有出書這個動力,或者學習過程也就是淺嘗輒止,或者未必能全身心地投入,有了出書這個目標,更能保證學習的效果。 

2 適合初級開發,高階開發和架構師寫的書

    之前也提到了,初級開發適合寫案例書,就拿python爬蟲資料分析機器學習題材為例,可以先找幾本這方面現成的書,這些書裡,或者章節內容不同,但一起整合看的話,應該可以包含這方面的內容。然後就參考別人書的思路,比如一章寫爬蟲,一章寫pandas,一章寫matplotlib等等,整合起來,就可以用    若干個章節構成一本書了。總之,別人書裡包含什麼內容,你別照抄,但可以參考別人寫哪些技術點。

    定好章節後,再定下每個章節的小節,比如第三章講爬蟲案例,那麼可以定3.1講爬蟲概念,3.2講如何搭建Scrapy庫,3.3講如何開發Scrapy爬蟲案例,通過先章再節的次序,就可以定好一本書的框架。由於是案例書,所以是先給執行通的程式碼,再用這些程式碼案例教別人入門,所以案例未必很深,但需要讓初學者看了就能懂,而且按照你給出的知識體系逐步學習之後,能理解這個主題的內容。並且,能在看完你這本書以後,能通過調通你給出的爬蟲,機器學習等的案例,掌握這一領域的知識,並能從事這方面的基本開發。這個目標,對初級開發而言,稍微用點心,費點時間,應該不難達到。

    而對於高階開發和架構師而言,除了寫存粹案例書以外,還可以在書裡給出你在大公司裡總結出來的開發經驗,也就是所謂踩過的坑,比如python在用matplotlib會圖例時,在設定座標軸方面有哪些技巧,設定時會遇到哪些常見問題,如果在書裡大量包含這種經驗,你的書含金量更高。

    此外,高階開發和架構師還可以寫一些技術含量更高的書,比如就講高併發場景下的實踐經驗,或者k8s+docker應對高併發的經驗,這種書裡,可以給出程式碼,更可以給出實施方案和架構實施技巧,比如就講高併發場景裡,快取該如何選型,如何避免擊穿,雪崩等場景,如何排查線上redis問題,如何設計故障應對預案。除了這條路之外,還可以深入細節,比如通過講dubbo底層程式碼,告訴大家如何高效配置dubbo,出了問題該如何排查。如果架構師或高階開發有這類書作為背書,外帶大廠工作經驗,那麼就更可以打出自己的知名度。 

3 可以直接找出版社,也可以找出版公司

   在我的這篇博文裡,程式設計師副業那些事:聊聊出書和錄視訊,給出了通過出版社出書和圖書公司出書的差別,供大家參考,大家看了以後可以自行決定出書方式。

   不過不管怎麼選,在出書前你得搞明白一些事,或許個別圖書出版公司的工作人員不會主動說,這需要你自己問清楚。

    1 你的合作方是誰?圖書出版公司還是出版社?

    2 你的書將在哪個出版社出版?國內比較有名的是清華,人郵,電子和機械,同時其它出版社不能說不好,但業內比較認這四個。

    3 和你溝通的人,是最終有決定權的圖書編輯嗎?還是圖書公司裡的工作人員?再囉嗦下,最後能決定書能否出版,以及確定修改意見的,是出版社的編輯。

    通過對比出版社和圖書出版公司,在搞清楚諸多細節後,大家可以自己斟酌考慮合作的方式。而且,出版社和圖書公司的聯絡方式,在官網上都有,大家可以自行通過郵件等方式聯絡。 

4 如果別人拿你做試錯物件,或有不尊重,趕緊止損

    我之前看到有圖書出版公司招募面向Java初學者圖書的作者,並且也主動聯絡過相關人員,得到的反饋大多是:“要重寫”。

    比如我列了大綱發過去,反饋是“要重寫”,原因是對方沒學過Java,但作為零基礎的人看了我的大綱,發現學不會。至於要重寫成什麼樣子 ,對方也說不上來,總之讓我再給個大綱,再給一版後,同樣沒過,這次好些,給了我幾本其它類似書的大綱,讓我自行看別人有什麼好的點。總之不提(或者說提不出)具體的改進點,要我自行嘗試各種改進點,試到對方感覺可以為止。

    相比我和幾位出版社專業的編輯溝通時,哪怕大綱或稿件有問題,對方會指明到點,並給出具體的修改意見。我不知道圖書出版公司裡的組織結構,但出版社裡,計算機圖書有專門的部門,專門的編輯,對方提出的意見都是比較專業,且修改起來很有操作性。

    另外,我在各種渠道,時不時看到有圖書出版公司的人員,晒出別人交付的稿件,在眾目睽睽之下,說其中有什麼問題,意思讓大家引以為戒。姑且不論這樣做的動機,並且這位工作人員也塗掉了能表面作者身份的資訊。但作者出於信任把稿件交到你手上,在不徵得作者同意就公開稿件,說“不把作者當回事”,這並不為過。不然,完全可以用私信的方式和作者交流,而不是把作者無心之過公示於眾。

    我在和出版社合作時,這類事絕沒發生過,而且我認識的出版社編輯,都對各位作者保持著足夠的尊重。而且我和我的朋友和多點陣圖書出版公司的朋友交流時,也能得到尊重和禮遇。所以,如果大家在寫書時,尤其在寫第一本書時,如果遇到被試錯,或者從言辭等方面感覺對方不把你當會事,那麼可以當即止損。其實也沒有什麼“損失”,你把當前的大綱和稿件再和出版社編輯交流時,或許你的收益還能提升。 

5 如何寫好30頁篇幅的章節?

    在和出版社定好寫作合同後,就可以創作了。書是由章節構成,這裡講下如何構思並創作一個章節。

     比如寫爬蟲章節,大概30頁,先定節和目,比如 3.1 搭建爬蟲環境是小節,3.1.1 下載python Scrapy包,則是目。先定要寫的內容,具體到爬蟲小節,可以寫3.1 搭建環境,3.2 Scrapy的重要模組,3.3 如何開發Scrapy爬蟲,3.4 開發好以後如何執行,3.5 如何把爬到的資訊放入資料庫,這些都是小節。

     再具體到目,比如3.5裡,3.5.1裡寫如何搭建資料庫環境 3.5.2裡寫如何在Scrapy裡連線資料庫 3.5.3裡給出實際案例 3.5.4裡給出執行步驟和示例效果。

     這樣可以搭建好一個章的框架,在每個小節裡,先給出可以執行通的,而且能說明問題的程式碼,再給出對程式碼的說明,再寫下程式碼如何配置,開發時該注意哪些問題,必要時用表格和圖來說明,用這樣的條理,最多3個星期可以完成一個章節,快的話一週半就一個章節。

    以此類推,一本書大概有12個章節,第一章可以講如何安裝環境,以及基礎語法,後面就可以由淺入深,一個章節一個主題,比如講Python爬蟲,第二章可以是講基礎語法,第三章講http協議以及爬蟲知識點,以此深入,講全爬蟲,資料分析,資料展示和機器學習等技能。

    按這樣算,如果出第一本書,平均下來一個月2個章節,大概半年到八個月可以完成一本書,思路就是先搭建書的知識體系,寫每個章節時再搭建某個知識點的框架,在小節和目裡,用程式碼結合說明的方式,這樣從簡到難,大家就可以完成第一本屬於自己的書了。

6 如何寫出一本銷量過5千的書

    目前紙質書一般一次印刷在2500冊,大多數書一般就一次印刷,買完為止。如果能銷調5000本,就屬於受歡迎了,如果銷量過萬,就可以說是大神級書的。這裡先不論大神級書,就說下如何寫一本過5000的暢銷書。

    1 最好貼近熱點,比如當前熱點是全棧開發和機器學習等,如何找熱點,就到京東等處去看熱銷書的關鍵字。具體操作起來,多和出版社編輯溝通,或許作者更多是從技術角度分析,但出版社的編輯是從市場角度來考慮問題。

    2 如果你的書能被培訓機構用作教材,那想不熱都不行。培訓機構一般用哪些教材呢?第一面向初學者,第二程式碼全面,第三在這個領域裡涵蓋知識點全。如果要達成這點,大家可以和出版社的編輯直接溝通,問下相關細節。

    3 可以文字生動,但不能用過於花哨的文字來掩蓋書的內涵不足,也就是說暢銷書一定要有乾貨,能解決初學者實際問題,比如python機器學習方向,就寫一本用案例涵蓋目前常用的機器學習演算法,一個章節一種演算法,並且案例中有視覺化,資料分析,爬蟲等要素,視覺化的效果如果再吸引人,這本書暢銷的可能性也很大。

   4 一定不能心存敷衍,程式碼調通不算,更力求簡潔,說明文字多面向讀者,內容上,確保讀者一看就會,而且看了有收穫,或許這點說起來很抽象,但我寫了幾本書以後切身體會,要做到這很難,同時做到了,書哪怕不暢想,但至少不誤人子弟。 

7 總結,出書僅是一個里程碑,程式設計師在上進路上應永不停息

    出書不簡單,因為不是每個人都願意在半年到八個月裡,每個晚上每個週末都費時費力寫書。但出書也不難,畢竟時間用上去了,出書也只是除錯程式碼加寫文字的活,最多再外加些和人溝通的成本。

    其實出書收益並不高,算下來月入大概能在3k左右,如果是和圖書出版公司合作,估計更少,但這好歹能證明自己的實力。不過在出書後不能止步於此,因為在大廠裡有太多的牛人,甚至不用靠出書來證明自己的實力。

    那麼如何讓出書帶來的利益最大化呢?第一可以靠這進大廠,面試時有自己的書絕對是加分項。第二可以用這個去各大網站開專欄,錄視訊,或者開公眾號,畢竟有出版社的背書,能更讓別人信服你的能力。第三更得用寫書時積累的學習方法和上進的態勢繼續專研更高深技術,技術有了,不僅能到大廠掙更多的錢,還能通過企業培訓等方式更高效地掙錢。

    最後祝大家春節快樂。

 

版權說明:

    如果要轉載本文,請先徵得本人同意。