首页 > 代码库 > 《老码说编程之玩转Swift江湖》一书终于出版了

《老码说编程之玩转Swift江湖》一书终于出版了

       今天我们的第一本基于XCode6.1最新版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小白入门的地图:

本书的架构

如果有人问,你这破书读者小伙伴们怎么看:

第一位读者的评语

第四位读者的评语

淘宝用户的评价

不写了,过了熬夜的年龄,到10点就扛不住了,亲爱的你,晚安!



《老码说编程之玩转Swift江湖》一书终于出版了