工作也旅行 将会是一系列的文章的主题,详情请看 http://ruby-china.org/topics/16944.
这一篇主要说的是我如何走运获得两次难得的工作机会的经历。我总觉得是我运气所致,个人感觉有点"非主流". 也许就当作一个案例好了。
在 2012 年初我从杭州游荡回来,开始盘算着找工作。我当时有些苦恼,因为我学历不高,没丰富的工作经验,简历也不"漂亮". 也许鉴于这种情况,我认为去网上海投简历是件非常蠢的行为。而且我本来也就不看好那样的方式。
但如果不投简历又要怎么做呢?我想到了开源项目。我当时就认为作品列表比那简历要有用得多。而且对于我这样条件的也只能用 "非正常" 途径去获得比较好的工作机会。但是我的 github 上空空如何。要怎么做呢?我也不清楚。
于是我漫无目的在网上翻阅别人的博客和其它网站。我来到了 ruby china 论坛 :). 在这里,我看到了许多门槛不高 (至少看上去是的) 工作机会,我想是得益于 Rails 的开发者还不多。我莫名的觉得开心,也许是因为我看到了这个社区是新的,这项技术是新的 , 而且都还挺 cool . 更重要的是社区是开源的!
由于有以前的经历,开源社区给我的感觉都是非常好的。我希望在这里能获得一个工作机会。但是问题依旧,我没什么 Rails 的开发经验,没有"漂亮" 的简历。但是新兴的领域就会有很多机会。这时候我心生一念,我开始去翻阅社区项目的 issues , 看看是否可以参与到社区的开发中去。
一是可以开始积累 Rails 开发经验,一是希望通过这种方式让大家认识我并得到认同。
先从简单的入手,也是兴趣所致,我挑了 "自动补全用户名" 的 issue . 有人提到了像微博和 twitter 那样输入 @ 后补全的做法。这个功能看上去挺 cool 的!不是吗?! 第一件事当然是去 google 啦,这样的小功能应该有现成的解决方案才对。但是,很可惜却又令人兴奋的是我没有找到。正好,我可以做一个。也就是现在的 At.js
制造 At.js 的初衷是显而易见的,所以我的目标是 简单易用,易于接受. 正如 jQuery 插件给我的感觉一样。而且当时入门级水平的我也只认识它。:) 制作维护 At.js 也可以另作一篇文章了,这里就不再细说。
搭建好开发环境,并翻阅了一段时间代码后。我的第一个 Pull Request 被接受了。自此社区用上了输入 @ 自动补全的功能。我当时非常高兴,颇有成就感啊!
果然,我的这个小小的 At.js 获得了社区一些用户的关注,虽然不多,并开始给我提意见。特别是最开始那段时间 @lepture 的参与和支持。无论为何,我当时觉得做开源项目果然很棒,更多的是我可以跟其他开发者有交流。那种参与感才是最棒的。
随后,对 Rails 有一定了解后。为了让 At.js 更容易被使用,我发现了 js 库可以打包成 gem, 就如 Rails 默认使用的 jQuery 一样。于是我制作了 At.js 的 gem 包。也许是因为这以做法促进了后来 gitlabhq 项目对 At.js 的使用,我想这是得益于获得了社区的 @narkoz 的认同。
我当初的用意算是意外成功了,说实话我对此不报太大的希望也没再做过多的设想,我的 第一个工作机会 出现了。这是在参加了两次深圳 ruby 线下聚会后的事情。我当时正准备进藏,是 @hayeah 给了我这次机会。随后我便一直在 小象网 以一个远程工作者的身份工作至今。
有一点就是,社区的人能很快认识到我。因为我是那个 At.js , 社区那个 @ 自动补全功能的作者。而且在随后的聚会中,还有好些人提到使用过我那个插件。
随后差不多一年的时间里,我依旧一直维护这这个项目。并在技能升级后对其进行过重构,加上文档,自动化测试。让这个小项目变尽量健全。而后某一天我突然兴起去看看 At.js 在 gitlabhq 项目的使用情况。太慢了,几乎是每触发一个字符就有一个 AJAX 请求。我认为这是插件不够好用的缘故,而且也有相似原因的 issues 出现过。于是我花了十几天的时间查阅了 gitlabhq issues 相关功能的讨论并根据收集到的情况重构了 At.js, 搭建了 gitlabhq 的开发环境,改进了相关的代码。因为我的电脑慢,光在虚拟机里跑 gitlabhq 的测试就耗费了不少时间。
最后,我的第二个 Pull Request 也被接受了,而且很顺利。当时那个 PR 我做了详尽的描述。因此,gitlabhq 的创始人也 follow 了我,哈!.
其实当初正是社区的 @narkoz 推荐并将 At.js 引进 gitlabhq 的。我当时就很好奇看上去没什么人用的 gem 包竟有上万的下载量,而现在已经有十几万的下载量了。我想应该都是因为占了 gitlabhq 的光吧。而且,也随着被打包进了 Fedora.
而 第二个工作机会 是在我前往北京参加 2013 年的 RubyChina Conf 的路上出现的。我当时正在黄山脚下。那是一封来自美国旧金山一个创业公司的邮件。内容是问我有没有兴趣到美国去工作!他是在 github Trending 那里了解到我的项目并找到我的,我无聊在 LinkedIn 上注册的账号竟也起了作用。
我马上打开 github trending 的页面,原来 At.js 已经在 Top 10 之列了。我当时是开心坏了。后来 Conf 结束后我在北京的雍和宫青旅里进行了第一次跨洋远程面试,在这也不细说了,又是另一份可分享的经历。
而 At.js 怎么刷到 Top 10 的呢?再次因为 @narkoz, 他真是我的贵人,在 Hacker News 里发布了介绍 At.js 的 thread. 导致有那么三天我的 github 上不停的刷着 "XXX starred ichord/At.js" 的条目。我当时以为 github 是不是犯毛病了。问了一个来提 issues 的人才知道原委。
噢!最后一句,把"简历"当作你的产品,把产品当作你的 "简历".
下一篇有两个题目可以让大家选,看大家对哪一个有兴趣。(PS. 选先写哪篇,两篇都会写.)
当然,如果都没有兴趣那就算了。
为贴合主题,补上旅行中的张图: