专访「轮子哥」—代码为剑,热血如沸

轮子哥,不仅仅是一位知乎大 V,更是一位对技术充满热情的程序员,他有自己的热爱。

其实我从来不觉得「木讷」是程序员的代名词,虽然他们总自嘲「人傻钱多死得快」。在简寻的工作注定了常常要跟程序员打交道,其中「 vczh 」的提及率非常高,于是当我被「轮带逛」了一段时间后还是对这个群体有了更新的认知,嘿,这个心宽体胖的大汉还真是萌萌惹人爱。

vczh本名陈梓瀚,不过大家更愿意叫他「轮子哥」,虽然常年逛知乎但并不妨碍他成为程序员大牛。关于「造轮子」,他本人在知乎上调侃道:这是一种开源社区的新项目的建立方法,主要内容是:卧槽这玩意儿写的这么烂,我写一个更烂的来恶心作者。

几乎没公开露过面的轮子哥多少是带些神秘色彩的。之前我一直很好奇是怎样的一个人,才会既说出「其实我们对谁都不好,对外人好那是装出来的」这样深沉的话,又能说出「男生喜欢贫乳女生是因为『可以亲手带大』」这样不正经的话来,外表痴汉内心呆萌还爱关注奇怪的问题,还真是江湖里的神奇一派。

一切源于热爱——从hello world说起

回到初识编程的那年,轮子哥还经历过一场「血光之祸」——初一第一次上电脑课时因为太兴奋骑自行车超速,以至于流血掉牙。不知道这堂电脑课是福是祸,但是江湖已经迫不及待地给这个热血少年回馈了。

轮子哥初二开始学编程,为了看懂《Visual Studio高级图形程序设计教程》,于是初三自学初步的立体解析几何;高三上课不听讲自己看懂了数学分析。

为了做数学物理作业亦或为了编程推导公式,需要计算的东西太多而让他获得了心算复杂过程的本领。这顺带还给他带来了一个好处:高考数学选择题在发卷后不许动笔的 10 分钟内就被他全部心算出答案,而且全对。

而大学之前因为试图使用编程绘制很多复杂的图形和对图像进行各种复杂的变换,于是每当写程序之前都要在纸上推导长长的公式,从此他就对符号运算十分拿手了。

哈,真是个可怕的男人。

大学期间他做了第一个觉得「还能见人」的脚本引擎 JoveScript,做了名叫 FreeScript 的动态语言(详见轮子哥的博客),后来实习利用每天晚上的时间完成的一门纯函数式语言 KernelFP ,这后来成为了轮子哥的毕业设计。除此之外他还利用几个月时间里面完成了 CMinus ,雄心勃勃地做了一个带泛型以及 concept mapping 的 C语言 NativeX 。

这么多的项目背后不是没有沉淀的。

「在程序员的生涯里面,最重要的就是保持对编程的热情,不要被生活的琐事所磨灭。其次是要给自己不断地创造一些足够困难但是又有办法完成的挑战,这样才可以总是让自己保持着一个快速前进的状态。最后,记得要感谢国家。」

学生时代的轮子哥,让我意识到,大概有种热爱是深种于血液之中的,内心的那团火会让一个人风雨兼程地奔向远方,会让我们变得无比强大,无比接近最初的梦想。

轮子哥的GitHub

出海微软,寻找诗和远方

轮子哥从 2008 年的大三暑假开始在微软上海实习,结果没几个月就遭遇了美国的次贷危机,因此面临非常恶劣的面试环境。尽管当时的 Offer 都需要部门的 Director 得到美国批准后才能发放,他最后还是拿到了 Visual Studio 组的 Offer 。

「我那会儿就投了三家公司的简历——百度、谷歌和微软。最后面试微软的时候,我手上还没有任何Offer。我当时就想,万一我面挂了,我毕业后就在家呆几个月,等到秋天再去面试。」

然而故事总是比我们想象的曲折。

当轮子哥毕业入职时却被告知 Visual Studio 的 Offer 已经没了(过后不久就解散了),所幸被 Director 用人格担保免面试去了 SQL Server 。尽管如此他始终都不太喜欢 SQL Server ,于是过了两年轮子哥就去了北京的微软亚洲研究院( MSRA )。

起初轮子哥在 MSRA 过得很充实,因为写的代码没有任何用户,可以尽量保证高质量。后来风向慢慢发生了变化,轮子哥出走 SQL Server 是因为不喜欢数据库,结果在 MSRA 的第一个项目(一个分布式系统的动态分析程序)做完之后,MSRA 的人却当他是 SQL Server 的专家,给了很多数据库的工作给他,再加上很多同事也拼命地问他 SQL Server 的问题,于是他只好频繁地向前同事(主要是 Deathhush 菊苣)请教,硬是把自己变成了真的 SQL Server 熟练使用者。

当然这也不能怪 MSRA ,本来作为一个 SDE,在研究院的工程组想干什么都还是很靠运气的。后来轮子哥觉得始终不是兴趣所在,于是就在组里的风气开始有转向「非完全自由」工作时间苗头的时候,轮子哥拿了美国西雅图总部的 Offer,把老婆送进了美国 Google ,当然,轮子哥还是在微软。

就像初一摔倒的故事,福祸相倚,跌宕起伏,不变的是内心的热血。

微软每个部门有完全不同的体验。轮子哥至今仍然认为, SQL Server 是软件工程实施最好的组,没有之一。 Office 虽然也是个怪兽项目,但是它却倾向于靠神级程序员的运作来保持系统健康发展。轮子哥去了 Office 之后发现所在的组是专门「造轮子」的,这和他的兴趣点不谋而合。

「尽管工资不能保持北京挥金如土的生活水平,但是除非别的公司也有同样的部门,不然我是不会跳了」轮子哥说道。

千万人,走江湖,只为觅得安身处,多么朴实真切的写照。江湖虽大,道路虽弯,但是初心始终在那,不增不减。

进阶之路,总有些不得不说的拐点

似乎得到了某种神秘的青睐,又似乎是轮子哥后天的钻研,他就要成为其间的大成者。当然,有意思的故事是少不了的。

  • 1 有结构有纪律地组织代码

大约在初三已经可以独立做推箱子游戏时,轮子哥就萌发了要写库函数的想法,但其实也只是个想法,就是想办法把以后可能要用的代码独立出来,不用每次做一个新游戏都重新写,于是高二的时候有了 ARPG(http://www.gameres.com/thread53911_1.html)。

开发过程中,他注意到游戏里面抽象的对象是可以有行为的。熟悉面向对象的人都会觉得这是很自然的,但当时他并没有任何这方面的知识,就连唯一的数据结构——链表——都是在上 NOI 课的时候学的。所以当时轮子哥并不会写类,转而写的是一个巨大的结构体,写了一大堆以这个结构体的指针为参数的函数,用来执行对这个结构的各种操作,把互相耦合的细节都实现在这些函数里面。于是写了一万多行代码,经历两遍,游戏终于写出来了。

轮子哥当时觉得这个代码的尺寸就是他的大脑能控制的上限了。但是转念一想,电脑上有那么多软件都比这个游戏要复杂得多,那人们是怎么做的呢?于是他开始有点明白,有结构有纪律地组织代码的重要性。因此当同学们都觉得面向对象、设计模式、软件工程都是些无稽之谈的东西时,他就不这么认为。思想上没有抵触,这些东西也就很容易学进去了。

  • 2 专注C++

后来他上大学学习 Haskell 之后,终于明白原来世界上还有很多种组织程序的方法——即所谓的范式。

这直接导致的结果就是,轮子哥更喜欢 C++ 了,因为 C++ 允许他使用所有可以使用的方法来组织程序,因此每一个程序都可用最好的方法来写。他也懒得去学习其他语言,而把所有的时间都花在了如何用 C++ 解决其它问题上面,因此造了很多库。

现在的 GacUI 的基础部分,其实是他大三开始写的,所以有时候大家可能会看到一些 C++11 之前远古时代的写法。

「我觉得最近的一篇文章《The Magpie Developer》讲的就很好,学习的时候不要盲目追求新工具,不要盲目追求立刻可以找工作、立刻可以发财,这些其实都是短视。当然有些人由于经济上的困境可能没有办法完美的实施这个过程,但是这并没有什么好的解决方法。根据老赵(赵劼)的说法,这就是命(逃」

轮子哥走的每一步都源自 Geek 的不安现状,难得的是在不断进阶过程中还能正视自己的能力与欲望,更有成就他人之心。

代码以外,风花雪月

轮子哥在国内外的经历,让他无论是在技术沉淀还是互联网环境都有了更加客观的了解和认知。而关于国内外互联网的感悟,轮子哥认为: 「国内:群魔乱舞 国外:还算理智」

简单直接,却让人会心一笑。这也是轮子哥在知乎上的一贯风格。似乎很多人羡慕轮子哥牛逼的技术,但也疑问怎么会有那么多时间逛知乎。问到知乎带给轮子哥的影响,这次他很正经地说:

「我觉得唯一的变化就是刷知乎的时间不知不觉变多了。社交有魔力,所以要通过写更多的代码来抵抗,人才不会废掉。」

在知乎上,关于「轮子哥目前是从事什么工作」的问题,知乎网友向我们展示了中国人民无与伦比的想象力。

赵劼曾经在知乎上调侃「轮子哥是陈萌萌写出的 AI 」,而关于和萌萌姐的故事,轮子哥也做出了「官方解释」:

「陈萌萌是我华南皇家理工大学计算机学院的学生,比我低了四届。我是在工作之后,她大一的时候认识她的。那个时候教给她一些 C++ 的技巧,结果她在毕业的时候轻松过了百度的面试。本来一开始也没什么想法,谁知道在她大三暑假的那一年,来北京的 Google 实习了。我刚好在 MSRA ,房子就租在 Google 附近,于是后面的事情你们就都知道了(逃」

真羡慕又懂技术又会勾搭妹子的轮子哥,你们想问的我都帮你们问了,单身的程序员们接好嘞!

于己,于人

年关将至,我问了轮子哥的新年愿望,没想到如此直接可爱:

「把 GacStudio 写出来,就是我 2016 年最大的愿望。」

不论是从刚开始举一反三,还是不安分地去寻找内心的热爱,他都没有辜负自己,一直寻找且追逐真正钟情的方向。

最后,作为过来人,作为踩过坑的老江湖,轮子哥想对所有正在努力进阶的程序员说:

「熟读、背诵并接受《Teach Yourself Programmingin 10 Years》和《The Magpie Developer》,一个月默写一遍,保持记忆。」

简寻出品 简寻,通过算法分析程序员在网络上的代码仓库和踪迹,并由职位推荐师进行深入职位意向沟通和技能确认,精准推荐到 5-10 家优质互联网公司,给程序员更多机会、更好的求职体验。

看到这里说明你真的很用心,如果你还想看到更多大神的故事,欢迎给简寻留言,我们会告诉你,更多的江湖故事。

轮子哥推荐 - 那些伴 vczh 成长的编程书 →
← 独立开发者:离开中产陷阱的野生程序员