寫書計畫 – 追求神乎其技的程式設計之道

人生中很多事情做起來總是比看起來難,不親身去做永遠也無法體會其中的辛酸。最近有出版社跟我聯絡,想幫我把blog內容整理成書,很湊巧的是我也動過幾次這個念頭,所以也沒想太多就答應了。

目前我的計畫是把「追求神乎其技的程式設計之道」系列文章重新整理,並且把後面還沒寫完的連載繼續完成補在書內。雖然是這麼想,但光是要擬定書籍結構就讓我和編輯們傷透腦筋。之前我在寫神乎其技系列時,把我個人的經歷以及對於程式設計一些相關的想法混合在一起,其實就是很隨興的寫。但說到要成書,事情就沒這麼簡單了。首先第一個問題就是,什麼樣的人會對這本書有興趣?是初學程式的人,還是有點經驗的人,或者是程式高手呢?之前曾經有讀者留言過說看了我的文章後都燃起熱血想動手學習程式設計了,說實在這真是超乎我的預期,但如果可以的話我也很希望有人因為看了我的書而立志成為一個優秀的程式設計師。無奈我雖然寫了很多blog文章,但談到寫書還真是第一次…。

當個沒經驗的新手,我想就是要厚臉皮一點才能快點進步。所以呢,我決定要來公開徵求讀者們的意見,讓這本書可以變得更好。

你可以簡單告訴我你的背景;告訴我你喜歡或不喜歡我這一系列文章的哪部分,為什麼?也可以告訴我哪邊可以寫得更仔細點,哪些地方想要我多補充一些細節或實例;也可以告訴我你覺得書應該怎樣編排,是要分成一篇篇獨立的散文呢,還是一氣呵成連貫到底?要保持現在這樣讓我的經歷和程式心得交織在一起,或是把他們拆成兩部分呢?

歡迎大家在本文下面留言,或是透過plurktwitter,也直接寄信給我(vgod _AT_ vgod.tw),任何想法都很歡迎。即使是單純推一下,或是覺得我太衝動想要阻止我的也很歡迎XD

50 thoughts on “寫書計畫 – 追求神乎其技的程式設計之道

  1. Pingback: Tweets that mention 寫書計畫 – 追求神乎奇技的程式設計之道 | vgod’s blog -- Topsy.com

  2. 或許學長可以將書本分成給「新手村」、中等篇(想不到好名詞 Orz)、「神乎奇技」三個大架構?或者是兩個,讓不同背景的讀者可以著重在不同的章節。不過基本上這個架構應該也直接反應學長不同階段的學習歷程。

    然後我覺得還是要分篇、章節,學長一氣呵成的寫完感覺讀者應該會消化不良… @@

    最後,學長 blog 左邊的「熱門文章」中,第七篇點閱數最多,其次是第八,或許可以回頭分析一下,這兩篇有什麼特點讓這兩篇可以居高不下。Blog 中其他熱門的文章,或許也可以穿插進書內或者附錄之類的。

    以上為高中社團 20th 學弟之淺見

    • 我看法比較不一樣耶

      可能要從這本書出發點來看,是自傳類?(心情居多)
      還是工具書類

      在我的看法是這些文章比較像是自傳類的文章(引起讀者對程式的興趣)
      這樣就不必要區分難度了 反而是敘述故事的時候如何引人興趣
      尤其是從發掘問題和到最後解決問題的過程:)
      這部分從學長你目前寫的文章看來是真的很精彩的

      以上為高中社團 20th 學弟之淺見, too XD

  3. 那個「中等篇」乾脆叫做 「奈何橋頭」 好了 XD

    兩個想法:

    1. 書出來之後來上我的 podcast 好嗎?(呃,這樣好像是你幫我打知名度 XD)

    2. 我蠻想看你順便分享如何從 IT blogger 變成 IT book author 的過程,說不定哪天我也可以用得上 :p

    • 呵呵 如果書順利生出來的話當然沒問題 :p
      其實我也蠻想知道寫書過程的辛酸血淚史的,但在網路上竟然很少有這種文章… 所以如果這過程中有什麼心得和血淚,我會很願意分享出來的。

  4. 很少來留言,不過對這個寫書計畫,以前翻譯過幾本電腦書,跟出版社有打過一些交道,已經忘了自己到底是第幾屆中一中電研社社長的不才學長我倒是覺得可以出點意見。

    真的,寫書的第一要點,我覺得首先就是要確定你的書到底是要寫給誰看的,哪個範圍的人、怎樣子學習曲線的人看的,不然這書很難賣。 ^___^;;

    例如當初我在Apple II使用手冊之外,看的第一本電腦書是施威銘的蘋果功夫秘笈,針對的就是對Apple II上的game有興趣的人,不管是玩game的,或是對寫game有興趣的人。如果你的讀者就是鎖定對寫程式有興趣的人身上,接下來第二個要點就是你要確定你寫這書是要幹嘛用的:
    a) 單純用來營造知名度的,過往有以前資訊人創辦人賀元、葉稟哲等人的例子可以參考。還曾經有一本書「資訊遊俠列傳」講他們。十年前,十年後,他們現在如何,我想大家有目共睹。
    b) 幫助後進用的,那你需要cover不同學習曲線的人,不僅僅是講你自己怎麼過來的就好了。我也可以講我小學一個月學會用6502機械語言寫graphics game,國中一個星期學會用Turbo Pascal寫graphics game、花一個月做出一個OO windowing framework,高中學C/C++只用三天就會做到過去用不同語言會做的事,但是那對別人沒幫助,會被人譏諷是在自我吹噓或是吹牛而已,因為沒幾個人可以走得了這樣的學習曲線。學習路上沒碰過什麼困難的人往往不是一般人的好老師。
    c) 對軟體開發歷史與趨勢的心得分享,你可以寫你從自己學過的東西中得到了什麼心得,例如 (a) 的幾個人就寫過一本「軟體IC不是夢」,談物件導向元件化的軟體設計概念。Well, 我還是認為他們在那書的見地是對的、好的,但是很不幸的,Java的興起讓大家重複打造相似的輪子造了超過十年,他們提倡的概念被歷史淹沒了。(純個人觀感) – 其實我還蠻喜歡看你談你覺得未來趨勢會如何走的,不過要說服很多人相信你所鼓吹的思想的話,還是需要有名氣來號召。

    更認真說起來,其實在跟出版社合作以外,隨著Kindle與其他電子書閱讀器的興起,其實以後你可以考慮自助出版電子書,像是參考 http://dtp.amazon.com ,寫作也不見得要用中文寫,用英文的電腦書讀者數現在還是世界最多的 (考慮英美加印四國,人口其實超越中國,消費能力也是中國的好幾倍),要求影響最多人的話,請用英文。只在台灣出版的話,台灣市場一直在萎縮,未來只會愈來愈小。

    還有我很歡迎你來寫關於怎樣應用平行計算的書,OpenCL也好,CUDA也好,雖然那看起來跟你現在玩的東西是不同領域的事情。

    其他的……我只能跟你說,沒什麼好怕的,想到就去做就對了。做不好也會得到經驗,沒做就什麼都沒有了。

    我只是個小時候就愛玩東玩西,高中不愛念書又不小心被推舉成毫無建樹的電研社社長,出社會工作時剛好誤上.COM泡沫賊船幾年,然後在NVIDIA作GPU driver作了三年的新手。沒待過CUDA team,不過跟主持CUDA team的Ian Buck打過幾個照面,在他鼓勵下發過兩個專利申請。

    另外,Facebook剛提出一個給在米國念PhD的學生的計畫,申請通過的人除了由Facebook提供2010-2011年的學費,還有30000 USD的獎金。參考:
    http://blog.facebook.com/blog.php?post=240508762130
    http://www.facebook.com/careers/fellowship.php

    • 學長的意見真是太寶貴了,非常感謝!的確,不管什麼事情做了至少也有經驗,不做就什麼都沒了。
      facebook的獎學金看起來真是很誘人, 也謝謝你提供的資訊

  5. 我觉得我喜欢看的原因是:

    1. 这个系列,写了你从一开始如果慢慢走到国手,一直到现在。

    2. 里边有很多你的心情,这个比你的成就更好看。每年每个国家都会有国手,但是并不是每个人都会拿出来分享;即使会分享,每个人的感受都不一样。你的感受和走过的路,激励了很多人。我觉得这个,才是你的书,你的文章里最有价值的部分。

    3.我觉得如果要写的话,这样会比较好:

    a> 还像现在这样写,如果有当时的照片,或者用过的能证明的东西,会很有意思。
    b>告诉读者你的感受,有困难我们如何解决。

    或者:

    a>文章部分 一直以来你的感受。或者里边需要有程序说明,这个时候,可以用”超链接“。这个超链接诶其实是”Page xxxx“。 如果读者有兴趣,会打开那一页,看到究竟。但是如果如果想继续看下去,依然不会影响阅读。
    b>程序部分:这里写 文章部分 里设计到的程序,但是要附上你对于程序的看法或者别的。
    特别说明:不管是文章还是程序部分,文章部分不要影响程序部分的阅读;程序部分也不要影响文章的阅读。文章说你的感受,程序说你的分析和方法,文章引用程序。

    我的想法,但是不一定是最成熟的。是我喜欢的那种。

  6. 首先要谢谢你允许我“偷偷”看了你的这么多文章,从中学到了很多^—-^
    我很认真的看了你的不少文章,如果说我喜欢的原因是什么的话,我想“实在”应该是比较重要的理由吧。
    我还是个大学里面正在读CS本科的学生,自己的经历和你的相比,会显得更循规蹈矩一些,所以看你写的自己的经历,就会觉得好厉害啊,会很羡慕啊,就会有“我也要做点什么”的想法,但又常常感到无从下手。
    所以如果你的书的定位是“学习或者想要学习CS相关内容的学生”的话,或许可以考虑多写一点:
    在当时你做选择的时候的想法和你现在对你的选择又是怎么看的;
    那个时候你都遇到过什么样的困难、什么样的痛苦,最后自己是怎么想办法解决掉的;
    你做成功的事情,都是由于什么以前的积累才得以成功的,而偶尔的失败又是缺乏了什么因素。
    我不知道那些“牛人”会不会像我一样渴望从你的书和你所讲述的经历中学些东西,不过我相信,写这些“实在”的内容,也许会对很多像我一样的人起到很大的借鉴和帮助的作用。
    祝你的book写作顺利啦~

  7. 您好
    我是實驗物理背景的,即使如此,也常常從你的文章中吸收到更高一層的想法,
    比方說"為何程式設計師之間的效率差距如此巨大?答案是自創工具的習慣!"
    這使我聯想到理論物理似乎也有相同的類比,自行開發自己需求的技術。

    我個人喜歡神乎其技系列是因為某種程度上有漫畫的熱血,卻又不像漫畫空虛(某X靈王..)
    但總覺得還不夠,不夠過癮,還想要更多的…參與感…
    記得高中時看到建中某班出的數學思考,後面豐功偉業讓我自嘆起步太慢,老實說也讓我感到深深挫折,但我相信各科國手除了良好的環境及資源及瘋狂的投入之外,一路上的挫折及錯誤也少不了,只是沒有人會寫這些(除了某位數學金牌在P2個版寫過超長的解題心得),比方說在同樣的某個演算法的章節或某道ACM的題目,百思不得其解,但後來在努力之下(討論,查書,思考等等)的突破,這種完全將技術面及心理面攤開來寫的過程,我覺得會使整個神乎其技系列更具啟發性。除了人的故事外,還交雜了解題的故事,犯過的錯,又如何從犯過的錯去學習等等,雖然不可能完整包含所有思考及解題的歷程,但是若能精選出幾個不同難度的經典難關突破過程,順便傳達和和教科書相同本質卻全然不同的論述,或許能更加豐富內容的層次。

    • 我也蠻希望能把當時的解題心得更詳細的描述出來,但年代久遠,很多當初費盡心力突破的瓶頸已經漸漸淡忘。還好當時還有些許bbs文章留作記錄,我會努力從中把當初的情境還原出來的 🙂

  8. 其他不用太多虑。只要用心写,就是最好的方法。每个读者都有不一样的视角,能看到他们可以看到的东西。

    真正有内涵的书,才有生命力,才不会很快沦为废纸。而有内涵就要用真心。而你现在考虑,谁会买这本书,排版如何,结构如何,销量如何等等……其实都是分心了。因为现在你有其他的心思了:比如我写的文笔要好,布局要有特色,怎么吸引别人;不像以前,只是真心写点东西给不知道什么人看看!

    P.S. 你前面的系列文章,我是一口气看完的。可见很有吸引力。只要你能不分心,把你觉得该写的继续完成,其他都是自然而然的。

    胡言乱语,但愿没把握的中心思想扯模糊了!有冒犯之处,多包涵:)
    脑子里已经有几百个字了,手下5分钟才憋出了几十个字。而且这几十个字又怎么看怎么别扭,这是写作的人要去面对的一个痛苦。加油!

  9. 首先,恭喜vgod要出书了。
    我是无意间发现你的blog,然后就成了忠实的读者。一直都在看。

    我觉得除了技术方面的以外,从这里更多的是收获了热情。

    我觉得很多人都会在代码中觉得枯燥,而看看vgod的文章,确实能带来另一种感觉。我觉得要出书的话,除了技术,更应该让读者继承你的热情。

    我一定会买你的书。

  10. 我是在 google 程設相關資料的時候,找到你這個blog的。

    剛看到「神乎奇技」這一系列的文章時,真的感覺很熱血啊 ~

    關於出書的這件事,我認真的想了一想,到底是什麼讓我想要一看再看你的文章呢?

    我的感覺就是和上面的網友「LJ」說的一樣,你所分享的心路歷程,會讓我這個已經30而立的人,也會激起我要做點什麼的想法(所以…我又把當年的C 拿回來重讀了)。

    寫一本書真的是要花費很大的心力,但卻也能造福不知名角落的每一個讀者。

    總之千言萬語,祝你出書順利。 ^^

  11. 當看到想出書的時候會讓我想到一本書
    別鬧了,費曼先生
    他是個物理大師,但一說書名又很多人都有看過
    看得人也不一定都懂物理
    夾雜著淺顯意懂的專業見解和自身的經驗
    我想說的是暫且先別讓這本書顧及到太廣的層面
    像是程式高手之類的
    就讓你的書是平易近人又能看到你人生的精彩故事吧
    我和你同年也是寫程式的
    但被你吸引進來的是你過去的故事
    我相信以你的文筆一定能吸引更多人
    祝你的書大賣暢銷

    • 呵呵 我可從沒想過自己能跟費曼相比, 但知道自己的故事如果能影響許多人,
      我也是覺得很開心 🙂

  12. 个人认为不必过于迎合读者,我们都是慕名而来的。
    写自己最想写的内容就好,可以参考我们大陆的牛人—云风(http://blog.codingnow.com),他最近也准备写书,内容就是他这几年C 和 lua的一些积累吧,虽说遥遥无期,不过已经开始在blog试水了。借用他的一句话吧:’不过一开始,恐怕我连大纲都列不出来,就想到哪写到哪,随便写点东西吧。过段时间再把零碎想法串起来,作为正式列提纲的参考。’

  13. 剛剛把 10 篇都看完了,不過要讓它變成一本書可能要有 2~300 篇類似的文章去取菁華,硬擠沒有好下場,寫書也不是現在的你最有價值的事情(雖然可能是最想做的),比較建議你從現在開始用心記錄自己在學習過程遇到的種種故事,讓那些文章自然形成一本書,應該就很值得一看了 😉

  14. 看vgod文章很享受, 尤其是學程式設計的人應該都會認同吧!

    關於寫書人的心得我沒有, 聽過得倒有一些.
    侯捷老師以前寫C++的書, 後來翻譯Java相關的書,
    因為多年排版上的困擾, 還因此出了一本”Word 排版藝術”,
    裡面就談到一些心得, 不過大多是出書形式上的問題.
    相信vgod寫論文時也遇到過, 不論是用Word、LaTeX還是Mac上的排版軟體.

    另外, 推薦陳重嘉前輩寫得兩本書可以參考看看, 內容是技術實務為主,
    經驗分享為輔, 是上一輩軟體人寫的好書.

    內容上或許像”駭客與畫家”集結散文分篇寫心路歷程與實務,
    由淺入深讓不同層次的讀者都能有收穫也是很棒的!

  15. 懶得打字,但我很樂於推一把!
    有被你的文字語言熱情堅持毅力感動到!
    加油!將來出書時,即使不是程式設計相關的讀者,也會感受到你的感染力的!

  16. 一口氣,就把全部看完了

    我研究所才開始真正接觸程式
    現在的工作是寫程式…

    這系列文對我很有幫助

    但我也越來越覺得

    ….自己好渺小…

    有點打擊到信心…..

  17. 你好,我是師大附中高一女
    自升上高中進入工研社,才第一次接觸到程式設計。
    在上個學期,我因一次做不出學長出的C語言題目
    而害怕寫程式語言。
    然而,自從兩個月前學長用phthon寫了一個立體圖形而再度燃起想學之心。
    剛看完了你的文章後更加強了我的信心(不過這應該是棋靈王的程式設計版吧XD)
    期待你的書出版!!!

  18. 你好 我是今天第一次看到你的文章
    1~10篇我也都看過了
    我算是程式學得很爛的大四生
    而且還重修

    我不太會表達所以我有話直說了如有冒犯請多包含

    如果出書的話讀者群大約大部份會分佈在大學以上 少部份分佈在高中
    以你個人的際遇來說 對一般人而言根本是無稽之談
    現在的大學生大部分都是靠分發成績 才錄取學校科系
    很多人學程式幾乎都是大學開始
    讀者既然已經是大學或以上的學生也不可能從高中就開始鑽研程式
    我看完你的文章之後只有後悔高中沒有接觸程式以及沒有那種環境
    也許你的書讓大家讀完之後能夠重新燃起對程式設計的熱情
    不過更多的大概是更後悔小時候沒有那種環境和際遇吧

    如果出書的話 應該能鼓勵那些程式學得差的人開始學習的念頭
    不過想想之後發現 你努力了很多年 讀者卻剩沒幾年要畢業
    自嘆不如感覺也是來不急了..

    你的文章寫的很好不過普通人看了大概也只能望洋興歎
    希望以後能出一些讓普通人更能容易理解程式設計的書籍
    我支持你..

  19. 看你的書,會給人帶來更多的激厲。我也是從386時代開始寫程式,
    可是沒你這麼厲害啦,但我知道,其實我並沒有使出全部的力氣
    投入在寫code這件事上。看你那麼奮鬥,我就知道,我也可以。
    時間早晚不是問題,但是沒有開始,就永遠不會成功。
    就像有人在很年青時,就知道要努力,而有人則是繞了一大圈
    才知道怎樣努力方法。 錯過了學校的課業,並不表示人生就無望了,人生路還那麼長,只要開始了,永遠都不嫌晚。

  20. 你好
    我是高雄中學高一生
    我參加了程式設計社,最近校內要初選,上網練習碰巧來到這。
    看完這一系列的文章後,我想問,這樣完完全全的投入值不值得?你會後悔你沒有高中生活嗎?

    謝謝~我想當作一個參考
    或許這也能寫入書中

    我會繼續支持你的文章、你的書

    • 簡單的說,沒有當年的投入,就沒有現在的我。我覺得我曾經做過的每一件事到頭來都會發現有其意義,也因此才會成就現在的我。

  21. 最迷人的是你的经历,最受益的是站在你的高度眼中所看到的世界,影响了我,如果你的思想能够长久保持光芒的话,书必定长久,否则最多几年光景就消逝了,其它一切都是虚的。以轻松一点儿的方式让人受益我觉得会更好…

    来自大陆某二流大学,大学开始接触编程,自学嵌入式中,今天发现你的博客,以后常来。

  22. 你好:
    我是元智大學資工系二年級的學生
    之前看完你寫的文章後,就讓我覺得你對程式設計的熱忱很佩服

    剛好我現在也是念資工系,對程式方面也是從大學才開始接觸
    當然沒有像你一樣把Introduction to Algorithm 這本書念完
    不過,真的很好奇想問一下
    是否要參加比賽都是要把Algorithm念完呢?
    所謂的唸完又是只到達哪一種程度呢?
    你之前遇到題目不會時,又是如何解決的呢?

    你寫的文章真的很棒喔^^

    • 念完introduction to algorithms是基本功,至少要熟悉常見的演算法,一想到就能直接寫出來。遇到題目不會時先多想,真的想了好幾天都想不出來時就先跳過,過一陣子還是想不出來時再找人討論或是找看看有沒有相關問題或解法。

      關鍵就是多想、多寫而已。

  23. 您好~
    我是個見識淺陋的高中生
    新竹高中軟體研就社即將退休的教學
    看完這系列的文章
    心中充滿著佩服與感動

    我上高中後因為社團才開始學寫程式
    學長敎的是C++
    學了一年後
    因為自己也沒放什麼心思在這上
    所以只會在zerojudge上寫一些練習題XDD
    後來因為成為社團幹部
    加上大我三屆的熱心學長回來指導
    我才知道什麼是演算法
    原來除了zerojudge以外世界上還有很多judge >///<
    再加上參加了比賽的壓力
    我到了高二才開始接觸與學習演算法與解題……

    雖然現在我快高三了,也要開始放下這些東西
    專心考大學
    但在這一年
    我也真的覺得解題與算法的樂趣遠遠大過學校所教的學科!!!!!

    看了您的文章之後
    我真的開始做夢
    如果讓我從新一次高中生活
    我也好想過像您那樣的瘋狂生活
    (我也曾經坐跟您一樣的事,印題目到學校去解,但我一個禮拜只解了2~3題……)

    我想如果你您真的出版了這本書
    最吸引我的應該就是您高中生活的那個部份了吧

    話說我掛B掛了這麼久
    現在才知道您就是龍夢的站長(!)

  24. 或許可以在一些情節中,加入一些所謂的”牛刀小試”,
    透過簡單的實作來增加閱讀的趣味性與認同感?
    小說、漫畫常說:有些話,如果不打一場是無法傳達的啊啊啊啊!!! (咦
    也許,有些不知道怎麼表達的想法,
    在簡單的實作後就會不言而喻?

  25. 不好意思 請問一下

    是不是可以分享一下寫完書到出版的流程呢?

    謝謝

  26. 我喜歡這一系列文章,
    但並非資工科班出身,
    比較沒去深究較專業的程式部分,
    想說有空時再仔細研讀,
    您出書我會買幾本自己參考及送學生啦。

  27. Pingback: Hop Over To This Website

  28. Pingback: Have A Peek At This Website

  29. Pingback: listen to this podcast

  30. Pingback: Sneak A Peek At These Guys

  31. Pingback: You Could Look Here

留言給我吧!