梁杰,前端工程师,业余喜欢写Python和Swift。组织翻译了苹果官方的《Swift编程语言》Accessibility Programming Guide for iOS,独立翻译了《编程导论》,合译了《Python语言及其应用》《你不知道的JavaScript(上卷)》。除了编程和翻译,梁杰还维护着SwiftGG翻译组和Swift开发者周刊。他正在组织筹备“中国首届Swift开发者大会”,希望通过自己的努力为技术发展作出贡献。

Swift在2014年第一次发布时,中文版的The Swift Programming Language在短短的9天之后就出现在了中国iOS开发者的眼前。这次翻译的组织者正是梁杰,他和他的SwiftGG翻译组在更新完Swift 2.0之后,仍然活跃在翻译国外最新Swift文章的第一线。梁杰筹备的中国首届Swift开发者大会即将在2016年1月举行,这场不免费、不盈利的技术大会却招揽来了众多开发者和嘉宾,就让我们一起来探寻一下究竟吧。

问:能不能谈一下你学习编程的经历?

我最早开始学习编程大概是初二的时候。我同学拿了一本《黑客手册》,然后我就在阅读课上看那本书,看了5、6遍还是看不懂,但是我觉得很有意思。从那之后,那本杂志每期我都去买。后来我发现想要真的掌握黑客技术还得学编程。虽然书里面的工具可以随便用一用,但是深入就不行了。于是我就开始学编程。当时有一个工具叫按键精灵,主要用来做简单的外挂。当时我学这些主要是为了赚钱,后来也确实挣了一千块钱,但也只挣了一回。因为当时程序没有做好,说实话我把人家给坑了。后来高中我开始参加计算机竞赛培训,学习算法和数据结构,所以就不怎么学做外挂了。计算机竞赛省级的一等奖是可以加分的,而我获得了二等奖中的第一名。虽然有些遗憾,但是现在想想如果当时能够申请保送,可能我就不一定能进北航了。

问:在北航读大学期间是怎么学习的?

我大学学的是计算机,但是并没有特别认真听课。我高中时买了很多计算机书籍,但是没有那么多时间看,就拿到了大学。大学开学时,我搬了两箱书去,其中就有一本关于Python的书。后来上大一的时候有一段时间闲得没事就看这本书,一翻才发现Python真的很好学,学会以后就用它做网站。大一暑假时,我和我的一个朋友花了两周时间做了第一个网站。我们每天早上睡醒就写代码,写到晚上睡觉。

后来再做网站就简单多了,但是我发现没人给我们写前端页面,所以我只能自己写。写着写着我发现前端也挺有意思的,所以从大二大三开始我就主要做前端了。去年的时候,我开始学习iOS,既然前端和后端都做过,我觉得我也应该学习一下移动端。

问:你现在在360从事什么工作?

我现在在网址导航组从事前端工程师的工作。

问:你觉得移动开发(iOS和Swift)跟你对前端的兴趣有什么关系?

我发现前端和移动端的很多思路是一样的。比如说页面布局,前端有一个很麻烦的问题就是需要建立不同的屏幕大小,现在iOS也有这个问题。因为面临的问题很类似,所以解决的思路也很像。甚至有一种说法叫做泛前端,指的就是iOS和前端,总体都可以归为前端,这是从产品的角度来说的。从技术上说,实际上iOS很多数据功能都在后端服务器那里,而iOS很大程度上只是用于展示的一层皮。

问:Swift刚出来的时候,你为什么要组织翻译《Swift编程语言》(The Swift Programming language和相关文章?

我当时本来不是做iOS的,但是我想,移动端Java我就不太熟,iOS如果也不会,就相当于移动端完全不行了,于是我就想学Swift。苹果刚发布Swift的时候,我看到微博上有一个人翻译了《Swift编程语言》的第一章。看了以后我就想,其实我也可以翻译。我本打算一边翻译一边学,这样可能会掌握得比较好。我当时还算过,一共600多页,我大概3、4个月能翻译完。于是我就把第一章重新翻译了一下,又翻译了第二章的一部分,把这个项目放到了GitHub上,然后我发到微博上告诉大家我翻译了这本教程并且想把这件事做下去。后来微博上的几个大号帮我转发了一下,从那之后就有很多人开始关注,也有很多人开始参与了。再后来我发现参与的人越来越多,达到20个人以后,我的工作就成了协调这个项目。

问:这个项目是怎么变得这么火的?你们是怎么超越其他翻译组的?

其实有一个最根本的原因就是我们速度非常快。从Swift正式发布出来到我们发布中文版只用了9天。在这段时间内,热度还没有过去,大家都在关注。我们基本上可以算是同步了。

问:你们一开始就承诺了9天这个期限吗?

我们做了4、5天之后,发现速度真的很快。我就算了一下,跟大家讨论说,我们争取9天完成,因为10天就是两位数了,效果就不一样了。

但是遗憾的是,质量可能确实不过关。我认为这个翻译项目对于技术发展的意义,可能比它本身内容的意义要大一些。所以现在我都是鼓励学习者最好直接去看英文原文。

问:你在翻译《Swift编程语言》还有现在Swift 2.0升级版的过程中都遇到过哪些困难?

其实最大的困难就是刚才说的质量问题。当时翻译完Swift 1.0,发布之后我把翻译组的QQ群号公布了。我本以为,既然从一个人到20多个人,整个翻译计划就变得完全不一样了,那么更多的人来做的话,质量肯定会提高得更快。我公布QQ群号之后,实际上加到三四百人的时候,我就发现其实参与的人并不多。而且还导致了一个问题,我已经找不到第一批参与的人了。20个人的公司跟200个人的公司肯定不一样。最后的结果就是对这个项目的维护变得很困难。

苹果更新得非常快,今年出2.0之前,我们在很长一段时间内都没办法跟苹果同步。今年2.0正式出来时,我一开始是不准备做的,后来好多人来问我,我想既然这么多人都有兴趣,我们就做一下。这次做完之后我们就把原有团队保留了下来,我不会再把这个号发出去,就我们这20几个人。如果苹果更新到2.1,我们再重新分配任务去做,这样我们就能长期维护了。今后,我想我们还是要多加一些环节,比如让两个人来审校,包括后面我们发布出去之后,有一些认真看了的人会给我们反馈,我们会不断修改。

问:你们有一个叫做SwiftGG的翻译组,专门翻译Swift领域的最新文章,我听说你们最近获得了正版授权,关于SwiftGG还有什么有意思的事吗?

其实这个组就是我们2.0的团队,当时更新完《Swift编程语言》后,大家就觉得我们要不再干点什么事,反正都凑到一块了。于是我们就一起开始做翻译组。

一开始我们就是拿国外的原文来翻译。我有一个外国朋友,他叫John,可能四五十岁了,他自己做了一个国外的Swift周报,质量很高。他知道我在翻译国外的文章后就问我,你有没有授权?我说没有授权。他说你这个没授权是侵权的。我一开始不当回事,国情就是这样,你管我那么多。但是他后来一直跟我说,甚至还给我发美国法律的网站。如果只是发一个链接或者一小段简介是不侵权的,因为内容最终还是要去人家的网站看。但一旦把内容拿出来,包括翻译,都是不行的。网站上默认是有版权的,除非声明CC才可以。后来我想这确实是个麻烦,而且如果我们真的做得比较大了,这也是一种隐患。

后来我就去跟那些作者谈。我一开始还是比较悲观的,我觉得如果谈不下来,那就不做了。我去推特上面找那些经常写文章的人,给他们发邮件,告诉他们我做了这样一件事,我是不盈利的,你愿不愿意让我翻译你的文章分享给那些不懂英语的人?绝大部分还是同意的,有那么两三个人确实不愿意发。有些人会要求我们翻译完之后发给他一个链接,可能是怕我们收费,想确定一下是不是所有人都能访问。还有一些人把我们的链接加入到他的文章里,作为CN版本。

还有一件有意思的事是技术层面的。因为业余做翻译组不可能花太多精力,所以我把很多工作都自动化了。有那么多博客和网站,我不可能每天上去找新文章。所以我们做了一个小工具,隔一段时间自动去抓取这些网站,如果有更新,就会给我们推送过来。我们还有一个流程管理系统,把文章分成好几个列表,分别是翻译中、审核中,以及等待发布。现在译者翻译完一篇文章之后,会有两个人去看,审校格式和内容。

问:你之前推荐过一位在Twitter上很活跃的女程序员Erica Sadun的书,她在博客上也感谢了你的帮助,你们是怎么认识的?

她在Twitter上相当于那种大V,在谈授权翻译文章的时候我联系过她。她的那本书Playground Secrets and Power Tips在亚马逊和苹果iBook的美国区上架,但是中国区的帐号无法购买。后来我就去推特上面问她,能不能给我们提供其他选项,比如发到LeanPub这样的自出版平台上。大概一个小时之后,她就发布上去了。

问:和国外Swift社区的人打交道,感觉他们的技术氛围如何?

我去找国外作者的时候,对我感触非常深的一点就是大家都很活跃。比如,苹果早晨开发布会,他们可能下午就马上去用,还会写一篇文章。这篇文章可能并不深入,但是会详细地告诉你如何写一个Hello World程序,这个程序是如何跑起来的,有什么问题。

外国人特别爱写,我也不知道为什么。后来我分析了一个原因,当然这只是我的个人猜测:同一句话,英文比中文要长。微博和推特都是140个字,但是用微博可以说一大段话,用推特说两句就没有了。而且推特也没有原生的长微博支持,所以想要在推特上说明白一件事是非常难受的,只有写一篇文章才能说清楚。

另外,国外的技术氛围也很好。比如Erica Sadun就很典型,她非常能写,平均下来一天一篇。当然,她的文章不一定完全是关于技术的。她写完之后会收到很多反馈,一些真正看了的人会告诉她哪些地方写得不太好,或者哪些地方写得非常好。我觉得这可能是国内比较欠缺的。虽然咱们现在也在进步,比如点赞和转发的人多了,但是有价值的反馈其实并不多。作为一个作者我的感受是,知名度只是一方面,更重要的是在写完之后我的技术有提高,这才是更有价值的东西。

问:在学习Swift方面你有什么建议吗?

对于完全不懂编程的人来说,现在这些教程可能不大合适,因为阅读这些教程的前提是你对编程本身是理解的。如果不理解的话,我建议你去看一些编程领域比较基础的书,而不是Swift方面的基础书。

对于有经验的人来说,首先就是看官方文档。苹果的官方文档是非常好的,质量非常高,不像我们的文档写得很难懂。文档肯定要看两遍。国内的好书我推荐王巍那本《Swifter——100个Swift必备tips》。还有就是Ray Wenderlich,他是专门做iOS开发教育的,他出了非常多的电子书,质量都很高。他的网站是http://www.raywenderlich.com/ ,网站上有文章、书、视频,他应该是iOS领域做得最大的。还有一个网站http://www.objc.io/,偏向于普及教育。我们这次的Swift开发者大会邀请到了这个网站的创始人Chris Eidhof。另外,这个网站的中文版是王巍维护的。

问:你为什么想办@Swift开发者大会

因为我想邀请John来国内,见上一个面。但是我没有钱,如果有大会,我邀请他来当嘉宾岂不是很好?于是我就去找技术大会,然后我发现没有Swift的会,也没有iOS的会。后来我在朋友圈问有没有这方面的技术大会,大家都说没有。有几个人说,你可以自己办啊。一开始我觉得这事儿很难,不可能,后来我和一些人沟通之后打算尝试一下。其实一直到王巍回复我说确认要来之前,我都不确定一定要做这件事。王巍是国人,如果他都请不到,老外就更够呛了。所以他一确定,我才真的确定要做这件事。

问:你觉得开发者来参加大会能得到什么收获?

我觉得大会最重要的不是让你来学技术,因为看书或者上谷歌绝对要比你来听一天会收获要大。那么为什么要来呢?我觉得这种收获的本质是一种思想上的交流。如果仅仅是你坐在下面听,他站在上面说,我觉得意义不大。除了拿到很多奖品、很多书,拍了几张照片发微博、发朋友圈。回来之后仔细想一想,你这一天的收获有多大?

我们的想法是把这300多个人,包括嘉宾和参会者,放到同一个时间和空间中,让他们去碰撞自己的想法。交流是很重要的,这样你才可能在会后产生很多新的想法。你认识的新朋友甚至可以和你一起去实践一些想法。线下活动跟线上活动差别是很大的。面对面的交流,可能很容易就能促成一件事。所以我们希望参会者的质量也能很高。这就是我们这次选择收费的原因,我希望你的到来是你真正做出的一个决定,不是像逛街似的报名就来了。

我感觉国外的技术氛围非常好,很多人愿意贡献内容,他们讨论得非常热烈。但是国内还没有形成这样一种气氛,所以我希望通过这次大会能把大家聚在一块。嘉宾提供想法,大家可以和嘉宾有很多交流,不光是问问题,也可以讲讲你对这个技术的看法,探讨这个技术未来的发展。大家都进到了这个圈子里,就相当于有了很大的基数,里面就很有可能会出现一些有价值的东西。

问:大会现在进行到什么阶段了?一路上你都获得了哪些帮助?

我们现在嘉宾人数已经够了,票基本卖完了。我们预计大概有300人参会,门票现在可能还剩下十几张。接下来的重点就是做内容,我们还要跟嘉宾沟通,看看他们的议题有没有需要改进的地方。我们也在想办法为大家提供更多的福利,希望大家来参会能有更好的体验。

要感谢的人有很多,这里说几个有代表性的。

首先是我们团队的人。我们现在核心团队是10个人,参与的比较多的就是裕波。裕波给了我很大的帮助,虽然有时候我们的观念可能有冲突,但是他最终还是会帮我。还有石争妍,她是FIR.IM的创始人之一。让我比较意外的是,她强调自己不是以公司的名义来帮忙,而是以个人名义来参与,她觉得这件事有价值,愿意付出时间。还有一个人是李涛,他原来是CSDN移动业务拓展总监,这次也帮了很大的忙。唐巧也是我比较感谢的人。我第一个找的就是他,因为巧哥影响力很大,我希望他能和我们一起办。但是巧哥确实很忙,没有那么多时间。但是他给了我很多建议,比如邀请王巍,还有国外一些牛人。做大会的时候,我们的主题是唐巧帮忙审核的。

第二部分需要感谢的就是嘉宾。我在邀请嘉宾时说得很清楚,我们这个会是不盈利的,我们的赞助、门票最后都是要花到参会者身上的。所以嘉宾们在没有酬劳的情况下还是愿意来,我是非常感激的。嘉宾中最要感谢的就是王巍,专门抽时间飞回来本来就很麻烦,他还考虑尽量坐便宜一些的飞机,给大会节省经费。我非常感动,嘉宾过来已经很费劲了,还要考虑帮我们省钱。不过还是给他买了更合适的机票,否则我会很过意不去的。

第三部分需要感谢的就是参会者了。我当时没有想到门票会卖得这么顺利。卖票之前,大家都劝我做免费的,要不门票别那么贵。这种垂直的纯技术大会绝大多数都是免费的,即使收费也不会很贵,所以卖票这件事我们一开始就压力很大。幸运的是,周五晚上购票渠道上线,周六周日两天就卖了100多张。这件事给了我很大信心。

能有机会推动技术发展是很有意义的,但是这件事就像创业一样,没有上市之前,成功与否都没有定论。只有实现了,才是真的做到了。


更多精彩,加入图灵访谈微信!