古有三不朽, 所謂立德、立功、立言。程序員出一本屬於本身的書,若是說是立言,可能過於高大上,但終究也算一件雅事。html
出書其實不掙錢,並且從寫做到最終拿錢的週期也不短。但程序員若是有一本屬於本身的技術書,那至少在面試中能很好地證實本身,也能漸漸地在業內積累本身的名氣,面試和作其它事情時也能有很多底氣。在本文裏,本人就將結合本身的經驗和本身踩過的坑,和你們聊聊程序員出書的那些事。java
先說下出書的收益和須要付出的代價,這裏姑且先不談「出書帶來的無形資產」,先談下真金白銀的稿酬。
python
若是直接和出版社聯繫,通常稿酬是版稅,是書價格的8%乘以印刷數(或者實際銷售數),若是你是大牛的話,還能夠往上加,不過通常版稅估計也就10%到12%。請注意這裏的價格是書的全價,不是打折後的價格。git
好比一本書全價是70塊,在京東等地打7折銷售,那麼版稅是70塊的8%,也就是說賣出一本做者能有5.6的收益,固然真實拿到手之後還再要扣稅。程序員
同時也請注意合同的約定是支付稿酬的方式是印刷數仍是實際銷售數,我和出版社談的,通常是印刷數量,這有什麼差異呢?如今計算機類的圖書通常是首印2500冊,那麼實際拿到手的錢數是 70*8%*2500,固然還要扣稅。但若是是按實際銷售數量算的話,若是首印才銷了1800本的話,那麼就得按這個數量算錢了。github
如今一本300的書,訂價通常在70左右,按版稅8%和2500冊算的話,稅前收益是14000,稅後估計是12000左右,對新手做者的話,300的書至少要寫8個月,由此你們能夠算下平均每月的收益,算下來其實每個月也就1500的收益,真很少。面試
別人的狀況我不敢說,但我出書之後,除了稿酬,還有哪些其它的收益呢?小程序
1 在當下和以前的公司面試時,告訴面試官我在相關方面出過書之後,面試官就直接會認爲我很資深,幫我省了很多事情。網絡
2 我還在作線下的培訓,我就直接拿我最近出的python書作教材了,免得我再備課了。併發
3 和別人談項目,能用個人書證實本身的技術實力,若是是第一次和別人打交道,那麼這種證實能立杆見效。
尤爲是第一點,其實對一些小公司或者是一些外派開發崗而言,若是候選人在這個方面出過書,甚至都有可能免面試直接錄取,本人以前面試過一個大公司的外派崗,就獲得過這種待遇。
我是和出版社直接聯繫出書,支付稿酬的時間點通常是,在首印後的3個月內拿到首印部分稿酬的一部分(具體是50%到90%),而後在圖書出版後的一年後再拿到其它部分的稿酬。當下有很多書,能銷掉首印的冊數就不錯了,不過也有很多書能加印,甚至出第二和第三版,通常加印冊數的版稅會在加印後的半年到一年內結清。
從支付稿酬的時間點上來,對做者確實會有延遲,外加上稿酬也不算高,相對於做者的辛勤勞動,因此出書真不是掙錢的事,並且拿錢的週期還長。若是個別圖書公司工做人員一方面在出書階段對做者沒什麼幫助, 另外一方面還要在中間再掙個差價,那麼真有些做踐做者的辛勤勞動了。
在和出版社編輯溝通前,我也和圖書公司的工做人員交流過,很多工做人員對我也是比較尊重,交流雖然不算深刻,但也算客氣。不過最終對比出版社給出的稿酬等條件,我仍是沒有經過圖書公司出書,這也是比較惋惜的事情。下面我給出些具體的經歷。
1 我常常在博客園等地收到一些圖書公司工做人員的留言,問要不要出書,通常我不問,他們不會說本身是出版社編輯仍是圖書公司的工做人員。有個別圖書公司的工做人員,會向做者,尤爲是新手做者,說些「出版社編輯通常不會直接和做者聯繫」,以及「出書通常是經過圖書公司」等的話。其實這些話不能算錯,好比你不聯繫出版社編輯,那麼對方天然不會直接聯繫你,但相反若是做者直接和出版社編輯聯繫,第一沒難度,第二可能更直接。
2 我和出版社編輯交流大綱時,即便大綱有不足,他們也能直接給出具體的修改意見,好比某個章節該寫什麼,某個小節的大綱該怎麼寫。而我和個別圖書公司的工做人員交流過大綱時,獲得的反饋大可能是「要重寫」,怎麼個重寫法?這些工做人員可能只能給出抽象的意見,什麼都要我本身琢磨。在我以前的博文程序員怎樣出版一本技術書裏,我就給出過具體的經歷。
3 因爲交流不深,因此我沒有和圖書公司簽定過出書協議,但我知道,只有出版社能出書。因爲沒有經歷過,因此我也不知道圖書公司在合同裏是否有避規風險等條款,但我見過一位圖書公司人員人員給出的一些退稿案例,並隱約流露出對做者的責備之意。細思感受不妥,對接的工做人員第一不能在出問題的第一時間及時發現並向做者反饋,第二在出問題以後不能對應協調最終致使退稿,第三在退稿以後,做者在付出勞動的狀況下圖書公司不用承擔任何風險,並還能指摘做者。對此,退稿當然有做者的因素,但同是做者的我未免有兔死狐悲之談。
而我在出版社出書時,編輯有時候甚至會主動關心,主動給素材,哪怕有問題也會第一時間修改,因此甚至大範圍修改稿件的狀況都基本沒有出現。
4 再說下圖書公司給做者的稿酬。我見過按頁給錢,好比一頁30到50,並賣斷版權,即書重印後做者也沒法再獲得稿酬,若是是按版稅給錢,我也見過給6%,至於圖書公司可否給到8個點甚至更高,我沒見到過,因此不知道,也不敢擅擬。
我交流過的圖書公司工做人員很少,交流也不深,由於我如今主要是和出版社的編輯交流。因此以上只是我對個別圖書公司編輯的感覺,我無心以偏概全,而和我交流的一些圖書公司工做人員至少態度上對我很尊重。因此你們也能夠對比嘗試下和圖書公司以及出版社合做的不一樣方式。無論怎樣,你在寫書甚至在簽出書協議前,你須要問清楚以下的事項,而且對方有義務讓你瞭解以下的事實。
1 你得問清楚,對方的身份是出版社編輯仍是圖書公司工做人員,這其實應當是對方主動告之。
2 你的書在哪一個出版社出版?這點須要在出書協議裏明確給出,不能是先完稿再定出版社。並且,最終能出版書的,必定是出版社,而不是圖書公司。
3 稿酬的支付方式,哪怕圖書公司中間可能掙差價,但至少你得了解出版社能給到的稿酬。若是你是經過圖書公司出的書,無論圖書公司怎麼和你談的,但出版社給圖書公司的錢一分不會少,中間部分應該就是圖書公司的盈利。
4 最終和你簽定出書合同的,是圖書公司仍是出版社,這必定得在你簽字前搞明白,哪怕你最終是和圖書公司籤協議,但至少得知道你還能直接和出版社籤協議。
5 你不能存有「在圖書公司出書要求低」的想法,更不該該存有「我能力通常,因此只能在圖書公司出書」的想法。圖書公司本身是沒有資格出書的,因此他們也是會把稿件交給出版社,因此該有的要求一點也不會低。你的大綱在出版社編輯那邊通不過,那麼在圖書公司的工做人員那邊一樣通不過,哪怕你索要的稿酬少,圖書公司方面對應的要求必定也不會下降。
若是你明知「圖書公司和出版社的差異」,並仍是和圖書公司合做,這個是兩廂情願的事情。但若是對方「不主動告知」,而你在不瞭解二者差別的基礎上同圖書公司合做,那麼對方也無可指摘。不過兼聽則明,你們若是要出書,不妨和出版社和圖書公司都去打打交道對比下。
我在清華大學出版社、機械工業出版社、北京大學出版社和電子工業出版社出過書,出書流程也比較順暢,和編輯打交道也比較愉快。我我的無心把國內出版社劃分紅三六九等,但計算機行業,比較知名的出版社有清華、機工、電子工業和人郵這四家,固然其它出版社在計算機方面也出版過精品書。
如何同這些知名出版社的編輯直接打交道?
1 直接到官網,通常官網上都直接有聯繫方式。
2 你在博客園等地發表文章,會有人找你出書,其中除了圖書公司的工做人員外,也有出版社編輯,通常出版社的編輯會直接說明身份,好比我是xx出版社的編輯xx。
3 本人也和些出版社的編輯聯繫過,你們若是要,我能夠給。
那怎麼去找圖書公司的工做人員?通常不用主動找,你發表若干博文後,他們會主動找你。若是你細問,「您是出版社編輯仍是圖書公司的編輯」,他們會代表身份,若是你再細問,那麼他們可能會站在圖書公司的立場上解釋出版社和圖書公司的差別。
從中你們能夠看到,無論你最終是否寫成書,但去找知名出版社的編輯,並不難。而且,你找到後,他們還會進一步和你交流選題。
這裏給出我和出版社編輯交流合做,最終出書的流程。
第一,聯繫上出版社編輯後,先討論選題,你能夠選擇一個你比較熟悉的方向,或者你願意專攻的方向,這個方向能夠是java分佈式組件,Spring cloud全家桶,微服務,或者是python數據分析,機器學習或深度學習等。這方面你若是有紮實的項目經驗那最好,若是你當下雖然不熟悉,但你有毅力通過短期的系統學習確保你寫的內容能成系統或者能幫到別人,那麼你也能夠在這方面出書。
第二,定好選題方向後,你能夠先列出大綱,好比以python數據分析爲例,你能夠定12個章節,第一章講語法,第二章講numpy類等等,以此類推,你定大綱的時候,能夠參考別人書的目錄,從而制定你的寫做內容。定好大綱之後,你能夠和編輯交流,當編輯也承認這個大綱之後,就能夠定出版協議。
對通常做者而言,出版協議其實差很少,稿酬通常是8個點,寫做週期是和出版社協商,支付週期可能也大同小異,而後出版社會買斷這本書的電子以及各類文字的版權。但若是做者是大牛,那麼這些細節均可以和出版社協商。
而後是寫書,這是很枯燥的,尤爲是寫最後幾章的時候。我通常是工做日天天用半小時,兩天週末週末用4,5個小時寫,這樣通常半年能寫完一本300頁的書,關於高效寫書的技巧,後文會詳細說起。
在寫書時,通常建議每寫好一個章節就交給編輯審閱,這樣就不會致使太大問題的出現,並且若是是新手做者,剛開始的措辭和寫做技巧都須要積累,這樣出版社的編輯在開始階段也能及時幫到做者。
當你寫完把稿件交到編輯之後,可能會有三校三審的事情,在其中同我合做的編輯會幫助我修改語法和錯別字等問題,而後會造成一個修改意見讓我確認和修改。我瞭解下來,若是在圖書公司出書,退稿的風險通常就發生在這個階段,由於圖書公司多是會一次性地把稿件提交給出版社。但因爲我會把每一個章節都直接提交給出版社編輯審閱,因此即便有大問題,那麼在寫開始幾個章節時都已經暴露並修改,因此最後的修改意見通常不會太長。也就是說,若是是直接和出版社溝通,在三校三審階段,工做量可能未必大,我通常是在提交一本書之後,由編輯作這個事情,而後我就繼續策劃並開始寫後一本書。
最後就是拿稿酬,以前已經作了,做者其實不該該對稿酬有太大的指望,也就是聊勝於無。但若是一不當心寫了本銷量在5000乃至10000本左右的暢銷書,那麼可能在一年內也能有5萬左右的額外收益,並能在業內積累些名氣。
對一些做者而言,尤爲是新手做者,出書不容易,每每是開始幾個章節幹勁十足,後面發現問題越積越多,外加工做一忙,就不了了之了,或者用1年以上的時間完成一本書。對此,個人感覺是,一本300到400書的寫做週期最長是8個月,若是超過這個時間。爲了能在這個時間段裏完成一本書,我對應給出的建議是,新手做者能夠寫案例書,別先寫介紹經驗類的書。
什麼叫案例書?好比一本書裏用一個大案例貫穿,系統介紹一個知識點,好比小程序開發,或者全棧開發等。或者一本書一個章節放一個案例,在一本書裏給出10個左右python深度學習方面的案例。什麼叫經驗類書呢?好比我以前寫的面試類書就屬於這個,或者一些技術大牛寫的介紹分佈式高併發開發經驗的書。
請注意這裏並無區分兩類書的差別,只是對新手做者而言,案例書好寫。由於在其中,更多的是看圖說話,先給出案例(好比python深度學習裏的圖像識別案例),而後經過案例介紹API的用法(好比python對應庫的用法),以及技術的綜合要點(好比如何用python庫綜合實現圖像識別功能)。而且案例書裏須要做者主觀發揮的點比較少,做者無需用本身的話整理相關的經驗。對新手做者而言,在組織文字介紹經驗時,可能會有本身明白但說不上來的感受,這樣一方面就沒法達到預期的效果,另外一方面還有可能由於沒法有效表述而致使進度的延遲。
但相反對於案例書,第一案例通常能夠借鑑別人的,第二介紹現存的技術總比介紹本身的經驗要容易,第三通常還有同類的書能夠供做者參考,因此做者不大須要斟酌措辭,新手做者用半年到八個月的時間也有可能寫完一本。看成者經過寫幾本書積累必定經驗後,再去挑戰經驗類書,在這種狀況下,寫出來的經驗類書就有可能暢銷了。
那麼具體而言,怎麼高效出一本案例書呢?
1 對整本書而言,先用少許章節介紹搭建環境和通用基本語法的內容。
2 在寫每一個章節案例時,用到總分總的結構,先整體介紹下你這個案例的需求功能,以及要用的技術點,再分開介紹每一個功能點的代碼實現,最後再總結下這些功能點的使用要點。
3 在介紹案例中具體代碼時,也能夠用到總分總的結構,即先整體介紹下這段代碼的結構,再分別給出關鍵代碼的說明,最後再給出運行效果並綜述其中技術的實現要點。
這樣的話,剛開始能夠是1個月一個章節,寫到後面熟練之後估計一個月能寫兩個章節,這樣8個月完成一本書,也就不是不可能了。
寫書時,通常多少都須要參考現有的代碼和現有的書,但這毫不是重複勞動。好比某位做者整合了不一樣網站上多個案例,而後系統地講述了python數據分析,這樣雖然現成資料都有,但對讀者來講,就能一站式學習。一樣地,好比在python神經網絡方面,現有2,3本書分別給出了若干人臉識別等若干案例,但若是你有效整合到一塊兒,並加他人的基礎上加上你的功能,那對讀者來講也是有價值的。
這裏就涉及到版權問題,先要說明,做者不能抱有任何幻想,若是出了版權問題,書沒出版還好,若是已經出版了,做者不只要賠錢,並且在業內就會有很差的名聲,可謂身敗名裂。但其實要避免版權問題一點也不難。
1 不能抄襲網上現有的內容,哪怕一句也不行。對此,做者能夠在理解人家語句含義的基礎上改寫。
2 不能抄襲人家書上現有的目錄,更不能抄襲人家書上的話,一樣一句也不行,對應的解決方法一樣是在理解的基礎上改寫。
3 不能抄襲github上或者任何地方別人的代碼,哪怕這個代碼是開源的。對此,你能夠在理解對方代碼的基礎上,先運行通,而後必定得本身新建一個項目,在你的項目裏參考別人的代碼實現你的功能,在這個過程當中不能有大段的複製粘貼操做。也就是說,你的代碼和別人的代碼,在註釋,變量命名,類名和方法名上不能有雷同的地方,固然你還能夠額外加上你本身的功能。
4 至於在寫技術和案例介紹時,你就能夠用你本身的話來講,這樣也不會出現版權問題。
用了上述辦法之後,做者就能夠在參考現有資料的基礎上,充分加上屬於你的功能,寫上你獨到的理解,從而高效地出版屬於你本身的書。
在上文裏詳細給出了出書的流程,並經過案例書,給出了具體的習做方法,這裏就特別針對新手做者,給出些須要注意的實踐要點。
1 技術書不一樣於文藝書,在其中首先要確保把技能知識點講清楚,而後再此基礎上能夠適當加上些風趣生動的措辭。因此對新手做者而言,甚至能夠直接用樸素的文字介紹案例技術,而無需過多考慮文字上的生動性。
2 內容須要針對初學者,在介紹技術時,從最基本的零基礎講起,別講太深的。這裏以Python機器學習爲例,能夠從什麼是機器學習以及python如何實現機器學習講起,但若是首先就講機器學習裏的實踐經驗,就未必能確保初學者能學會。
3 新手做者巴不得把本身知道的都寫出來。這種態度很是好,但須要考慮讀者的客觀接受水平因此須要在寫書前設置個預期效果,好比零基礎的python開發人員讀了個人書之後至少能幹活。這個預期效果別不可行,好比不能是「零基礎的python開發人員讀了我書之後能達到3年開發的水準」。這樣就能夠根據預先制定的效果,制定寫做內容,從在你的書就能更着重講基礎知識,這樣讀者就能有真正有收穫。
不過話說回來,若是新手做者直接和出版社編輯聯繫,找個熱門點的方向,並根據案例仔細講解技術,甚至都有可能寫出銷量過萬的暢銷書。
可能當下,寫公衆號和錄視頻等的方式,掙錢收益要高於出書,不過話能夠這樣說,經營公衆號和錄製視頻也是個長期的事情,在短期裏可能未必有收益,若是不是系統地發表內容的話,可能甚至不會有收益。因此出書多是個很是好的前期準備工做,你靠出書系統積累了素材,靠出書整合了你的知識體系,那麼在此基礎上,靠公衆號或者錄視頻掙錢可能就會事半功倍。
從上文裏你們能夠看到,在出書前期,聯繫出版社編輯和定選題並不難,若是要寫案例書,那麼在參考別人內容的基礎上,要寫完通常書可能也不是遙不可及的事情。甚至能夠這樣說,出書是個體力活,只要堅持,要出本書並不難,只是你願不肯意堅持下去的問題。但一旦你有了屬於本身的技術書,那麼在找工做時,你就能自信地和麪試官說你是這方面的專家,在你的視頻、公衆號和文字裏,你也能正大光明地說,你是計算機圖書的做者。更爲重要的是,和名校、大廠經歷同樣,屬於你的技術書一樣是證實程序員能力的重要證據,當你經過出書有效整合了相關方面的知識體系後,那麼在這方面,無論是找工做,或者是幹私活,或者是接項目作,你都能義正詞嚴地和別人說:我能行!