1. 程式人生 > >《老碼說程式設計之玩轉Swift江湖》一書終於出版了

《老碼說程式設計之玩轉Swift江湖》一書終於出版了

       今天我們的第一本基於XCode6.1最新版Swift語法編寫的書籍上市發售了,它有個可愛的名字:《老碼說程式設計之玩轉Swift江湖》,還有個漂亮的封面:

       封面

《老碼說程式設計之玩轉Swift江湖》百度百科地址:點選

本書不是出身名門,它只是五位IT老碼農的孩子

       五月份的一天,我們幾個老碼農一起去軟體園門口的小麵館吃飯,聊天之餘突然對碼農的生活產生了很多的抱怨,無聊,沒事做,憂慮未來的路在何方,最後大家的意見趨於一致,決定學點什麼或者做點什麼,通過這次的討論,一個以學習為主的小團隊誕生了並且取了一個無奈的名字:老碼團隊-OldCoder,聽起來多麼的蒼涼。

        既然有了隊伍,我們得想個目標,為了溝通的流暢,大家一致同意用美劇《冰與火之歌》中的人物為代號,開始了認真的學習。不能讓每一點光陰虛度,希望可以為我們近10年的碼農生涯多一點額外的競爭力。 

       我們開始選擇的是學習一下Objective-c,雖然我們幾個老傢伙都有數年的開發經驗,但還是需要整理一下 ,就在這個時候WWDC2014召開,一門新的語言誕生了-Swift。多好的事情,我們終於可以拋卻Objective-c那古怪的語法,對於一個碼農屌絲來說,沒有什麼比寫程式碼更有安全感了,於是我們決定從Swift開始。

在公司上班有事做,不方便帶Mac這些裝置在公司裡晃盪,於是我們研究在Windows下學習,重新搞虛擬機器,做優化,終於讓OSX10.9.5流暢無痕的跑在了我們的工作機上。這段時間功正值公司業務變化,有大量的時間空餘,真是學習的大好時機。

        如果一個老碼農和一個小碼農相比最大的優點是什麼,我覺得那就是被歲月雕刻的沉穩以及與眼鏡度數一樣深邃的經驗。我們都有學習程式設計做筆記的習慣,一邊學習Swift語法,一邊寫程式,一邊寫理解,不知不覺兩月過去,我們竟然七七八八積累了近10萬字的文字筆記,看著Word文件中不斷積累的頁碼書,我們在被Swift別緻的語法,精妙的設計而震感同時彼此也相互調侃:“Baelish,你每天搗鼓這些破程式碼,能提高你用餐的質量不”, 甚至連我丈母孃都操著純正的樂山口音說:“每晚寫那個能換錢不?”。但是我們都在默默的堅持著,其實我們也知道,沒啥用,不過是為了滿足對新技術學習的渴望而已。

很多時候,愛好一樣東西,沒有理由!

       當我們在琢磨Swift每個語法點的時候,發現網上有了各種Swift學習群,同時北航大學生樑傑小夥伴帶領Github上愛好的開源的小兄弟以9天時間翻譯完了Swift近600頁的英文手冊。我們的眼鏡剎那間被震碎了一地,真乃後生可畏,一個大學生竟然有此毅力,我們在茶前飯後討論這些即將把我們這些老浪拍死在沙灘上的新浪們時,我們也開始參考樑傑的這份文件,但我們越看越覺得翻譯的不是很合適,這完全可以理解,因為參與翻譯的小夥伴很多都不是IT從業者,或者經驗尚淺,翻譯文件中的措辭也有很多需要斟酌地方。於是我們嘗試加入了幾個Swift群,逐漸和他們討論Swift的學習成果。

       如果說C++,如果說Java,如果說Lua,如果說Javascript等傳統語言,我們幾個老傢伙無一不是高手,可是當我們在Swift群裡交流時,我們發現我們的不足,更令我們震撼的是群裡的小夥伴大都是大學生,最恐怖的是一個武漢某地的高中生喜歡和我討論Git用法的問題,我深深的被嚇到了,當我在他們那麼大的時候,會用C語言寫個氣泡排序已經被班裡的女生封為男神了。可是他們竟然懂得這麼多。

       在群裡,老碼,OldCoder慢慢有了名氣,大家試想一個剛出道的小俠客和一個十年江湖經驗的老俠客相比,即使老俠客武功再不濟,也很容易用閱歷換來尊重。這時電子工業出版社的董英編輯在一個風輕雲淡的下午敲動了我的QQ頭像。

    “你是Tyrion”;“我是”;“你對Swift怎麼看?”;“好玩但難學”;“你們學的怎麼樣”,“還行,近10萬字的讀書筆記了”;“有沒有考慮出本書,讓更多朋友獲益”;“我們沒那麼高尚,只是學著玩的”;“我在考慮哈,告訴你!”....

       最後,我們幾個老傢伙商量,寫就寫唄,反正在中國寫書就是忽悠人的,抄吧抄吧一本書就搞定了,簡單!簡單!其實後來發現一點都不簡單!

        不出意外,我們寫了提綱,和電子工業出版社簽了合同,其實生活也沒啥變化,只是多了一份莫名的虛榮。回家,老婆喊我帶娃的時候,我會理直氣壯的說“別煩我,哥寫書呢!”,當給爸爸媽媽打電話的時候,我說“我寫書呢!最近沒空給你打電話!”,我媽總會一口正宗的甘肅土話說“額娃乖裡,好好寫,寫完了再打電話!”,其實我經常藏在書房,看完了小米盒子裡經典的美劇。現在想想,真是慚愧!

       後來我在群裡放出了老碼寫書的訊息,Swift群的小兄弟們開始是鄙視,“哦,不就是抄襲中文文件,把英文文件翻譯一下嗎!”,後來他們開始問我們問題,給我們提意見,這群小孩子是可愛的,單純的,我們沒理由在人家問我們問題的時候說,“不好意思,我們不會!”,工作十年的人了,要臉不!於是我們幾個又一次在B區的小麵館商量說:“我們還是整一本專業的書吧!”。

       因為在外企打拼,英語自然無障礙,所以我們建立了微博,關注Swift版本更新,第一時間翻譯且釋出XCode6各版本的ReleaseNote,然後建立了老碼雲盤,下載好每一次XCode的dmg安裝檔案,方便那些沒有開發者賬號的小朋友使用。蘋果從XCode6 Beta1到Beta7,XCode6 GM, 到XCode6.2 Beta1,我們應該是中國第一個釋出詳細更新的學習小團隊。

        後來和樑傑認識,感謝他的信任,《Swift Programming Language 中文版》,由我們持續維護,我們更正了文件中部分翻譯的錯誤,增加了Swift版本歷史記錄部分,同時以白話易懂的方式翻譯了蘋果官網Swift Blog中的文章。這個過程是辛苦的,因為大多時候都是在晚上待小孩的睡後,我們幾個老傢伙才開始相關的工作。但我們是開心的,因為我們每一次釋出的完成,都會收穫群裡小朋友們誇獎的聲音:“醜哥V5”,“老碼最牛”等等。

苦心人,天不負,有志者,事竟成!

      時間過得很快,到了8月份,按照出版社的要求我們必須在8月底交稿子,其實我們在8月初的時候已經完成了第一版的稿子,基於當時的Beta3版本,我們開始糾結到底交還是不交呢?團隊裡有兄弟說:“交吧,到時再出修正版”,Swift群裡的小夥伴還有一部分我們的粉絲也在喊:“醜哥趕緊出吧,有問題再改吧”。這個時候市面上第一本Swift教程,關老師的書出版,關老師是我心中的偶像,碼界前輩,編輯著急了,催我們要稿子。作為團隊的帶頭人,我過的很糾結,我知道如果不交,我們會喪失很多讀者,如果交了總覺的心理欠的慌。晚上坐Bealish的車回家,我們聊這個事,Baelish說:“這個就看你的選擇了,你是打算像譚浩強老師一樣,寫一本膾炙人口經久不衰的C語言程式設計呢,還是想快速上市,吸引眼球火一般"。 其實那時我選擇的是後者。因為國內的技術書籍基本都是這麼幹的。

       晚上繼續在Swift群裡和小夥伴們吹牛,有幾個群友,卑鄙三先生,傻缺在那裡說:“誰的的書都不買,就等醜哥的書!”,我當時深深的鄙視了一下自己,如果我現在交稿子給編輯,明知道可能有beta6,beta7,明知道Swift語法會改,書還上市語法都變了,這不是坑人嗎? 最後我以負責人的身份發出號令:“兄弟們,低頭寫書,我們的宗旨是不急,不爭,不吵,不慌,Swift版本一天不出正式版,我們的書一天不上市“。團隊的兄弟們沒有異議,編輯也同意。就這樣我們繼續堅持著。

      Swift是很新的語言,研究的越深Swift語法太靈活,上手容易學好不易,XCode每一次新的版本釋出,我們都要反過頭去修改以前的文章,每一次重構前面的文字時,都基本要重寫,用Robb的話來說:“奇怪,當時寫的時候覺得自己寫的很好,怎麼反過頭再重構的時候,發現自己當時的理解就是一坨屎!”。記得最清楚的是,9月份的時候,Baelish給我說,他把第三章重寫了,我立馬發火,因為要交稿子了不能大改。他說我們對字串Unicode字符集的理解完全錯誤的,我重新閱讀和實驗Swift Beta7的時候理解清楚了。最後我屈服了,因為他是對的。

       寫書的過程是辛苦的,就像當時看著老婆挺著大肚子堅持了10個月一樣,但是當看著自己寫的書在各大網店銷售,那種感覺是幸福的。為稿費嗎?我只能無奈的笑笑,為什麼, 我們CTO群的一個老哥們給了很好的總結:“一本書證明了你人生30歲的那半年沒有虛度而已,別無其他!”。

       書今天開售了, 第一天賣出了20多本,第二天賣出了幾本,到我們寫文章的這點已經賣出了40本左右,老婆幸福的問我什麼時候可以用稿費給她買個包,我苦笑著說如果要買5000塊的LV,估計這3000本賣完我拿到稿費都不夠。但是令我們這些老傢伙開心的是,至今收到的反饋中,讀者都給予了肯定:“實惠,簡單易懂,值得買”等話。想想對於一群默默無聞的碼農來說,除了結婚當天鞭炮齊鳴,人山人海,有點明星般的存在感外,還有什麼成就可以與此相比呢? 和編輯聊了一下對銷售情況的反饋,我很喜歡的她的結語:“相信讀者吧,讀者的眼睛是雪亮的,你們是否用心他們看得見!”。而我只想說:苦心人,天不負,有志者,事竟成

        接下來,我們幹什麼,我們會繼續完善Swift Programming Language中文版,我們建立了問題跟蹤列表,隨時準備給讀者朋友關於書中問題的反饋。這兩天也陸續收到讀者關於書中措辭,圖片標題等問題的意見,歸納了一下已經有近20條,商無語法使用錯誤。

如果有人問我,你們這破書有啥特點,我會說,語言幽默,開心中學懂語法,故事裡講述思想,誰說語法書一定得板著臉講才有範:

用老碼去藍翔的例子講解可失敗構造器,這是XCode6.1的新語法


給鳳姐找男友的例子學習協議的用法

用老碼與佛的例子講解惰性屬性的用法

用辛巴威幣的例子講解附屬指令碼的用法

如果有人問,你這個破書到底講了哪些東西,我會說,它是一副幫助Swift小白入門的地圖:

本書的架構

如果有人問,你這破書讀者小夥伴們怎麼看:

第一位讀者的評語

第四位讀者的評語

淘寶使用者的評價

如果有小朋友問我,Swift誕生至今有多少次語法改動,老碼會說80多次,以下是我們總結起來的列表截圖:


不寫了,過了熬夜的年齡,到10點就扛不住了,親愛的你,晚安!