我如何把薪水从 50人民币/天 提升到 100美元/小时的 (3)

接上篇: 我如何把薪水从 50人民币/天 提升到 100美元/小时的 (2)

那之后的实习时间过得很充实,每天基本都会有新的挑战,然后再绞尽脑汁解决它们。每天都像在打boss,有大有小,理所当然经验值也在迅速的增长。这样的时光一直持续到这个项目快结束的时候。那时挑战感觉明显下降,一方面是技能上已经比较熟练,另一方面项目上也没有什么新的技术的引入,基本是 bug fix 和微调为主。不知是被虐惯了还是怎么的,突然的轻松下来让我非常不习惯。

于是我想利用那段时间把毕业设计搞了,其实毕业设计的东西我已经在学习 Ruby on Rails 的时候写的差不多了, 只是经过了这么久的实习觉得当时很多地方代码写的还不够好,所以想把它重构一下。因此也给老板提出每周只上三天班,其他时间就留在学校做毕业设计。

在学校准备毕业设计期间,一个偶然的机会遇到了以前教我Java的严老师。于是聊到了我实习期间一些情况,当时我对Rails大加赞赏,并和他讨论了不少细节,想说明这是一个真的不错的技术。他也听得津津有味,觉得很感兴趣,特别是对它的开发效率,所以他也在考虑是不是可以在自己的项目里用一用, 也会推荐他的学生看一看。

 

说来也巧那天刚聊完我回到寝室,就有几个同学和几个学弟来找我,听说我实习一直在做 Rails 开发,希望我能教教他们Rails。我当时很爽快的答应了,一方面是因为那段时间也相对轻松,另一方面,我倒是也想考验一下自己,是不是可以把一个自己知道的东西清楚的讲给他人听。何况能帮助到几个朋友了解一门我喜欢的技术那也算是一件不错的事情。当时我一直觉得自己从Rails社区索取太多,但是贡献不够。所以也把这一次的事情当成了一个回馈。谁知后来这事一传十,十传百,想要加入一起学习的同学越来越多,所以整个学习小组一起学习时看起来就像一个班在上课一样。

没过几天这事就传到了系主任耳边,然后请我去他办公室一趟,我当时还有点疑惑,心想这是聚众学习,又不是聚众其它,应该不违反什么学校规定吧?难道是因为偷偷用教室的投影仪播放视频?但是也都是播的正规的啊!脑子里冒着无数问号来到系主任办公室。

我: “张主任好。”

张主任:“坐!”

我: “张主任找我有什么事吗?”

张主任: “听说你在私下组织上课?” (怎么听都感觉我是个搞传销的)

我:“是的,但是其实也不能叫上课,是一个学习小组。我也是义务工作的,教大家学习一下 Ruby和Rails.”

张主任:“恩,你知道你上课的时间和四门选修课的时间都重了吗?导致你班上的人接近一半的人都是逃课去的?”

我霍然开朗,原来是因为这个事情来找我。

我立马解释道:“这个我还真没注意到,我们可以换时间的。”

张主任:“不用了…” (我擦,一听就是要解散我们秘密组织的节奏)

他停顿了一下十分从容的从旁边拿出一张纸,并递到我手上。(难道是要我写保证书?)

并接着说:“很多同学给我反应非常喜欢你这个课,说能学到很多实际的东西。以后你就把这个当课上吧,我可以提供给每个通过的学生两个选修学分。这是考勤表和成绩表,你还是要严格考情和考试,要及格的人才能获得这两个学分。还有你这样的实践课不要在普通的教室上了,我给你安排了机房,以后就在机房上课吧,多让大家操练操练,你选出一个班长,然后让他来负责安装机房的环境,并且关门开门就行了。还有,你以后在这个学校又是学生又是老师了,这在很多学校都是不可能的,也不要有太大的压力,我相信你能做好。”

我听了张主任这一席话,眼泪差点没掉下来,嘴里半天憋不出来一个字…

其实现在想想这个事情还觉得蛮不可思议的,特别是在中国… 前不久还在 google docs里看到当时学生的名单,感慨万千。

 

那之后生活又回归了以前的充实,努力的备课,努力的上课,努力的上班,努力搞毕业设计… 不同的是,脑子里不是只有一件事情了,而是每天都有三件事情需要我去做好。这个过程我还很花了一些时间来平衡。但是想想现在同时有三件事情都算是轻松的了,不得不说那次的锻炼还是挺有帮助的。

那段时间我发现一个非常有意思的现象,就是要把你已经懂的东西讲得让别人也懂并不是一件容易的事情。而把别人讲懂的过程实际上也是一种再次学习的过程,也是更加深入理解的过程。所以多分享一些知识给别人绝对也是对自己很有帮助的事情,分享在我看来是一个利己利人的行为,这也是为什么我后来写文章录视频做podcast 分享我知道的知识。

等那个课程结束也差不多是毕业前夕了,我继续回到了以前的公司全职的上班。不久也被提升为了当时Ruby组的 leader,还要负责当时的技术面试和新人培养。工资也给开了 4000 人民币/月。 这在那时的成都可是一个相当不错的价格了,而且那也算是我的第一次晋升,按理我应该高兴才对。但我却怎么也高兴不起来,工作没有以前的那种基情,哦不,激情。当然依然是保质保量的完成,只是内心中总是觉得不满足,有种撞到天花板的感觉,还有对现实还有很多不满足,或者说觉得还有很多更好的空间。

正巧那段时间第一届 RubyConf China 要在上海举行。我当几乎不假思索的就定了票,而且内心有一种说不出的兴奋,这种感觉犹如一个职业选手要去参加WCG一般,让人兴奋不已,我一直想看看中国其他Ruby玩家到底是如何玩的,每天是怎么训练的, 于是找老板请三天假去上海参加这次Rubyconf.

老板听后没有马上同意,并打开自己的outlook看了看,转身给我说:“非常不错,这样吧,你也不用请假了,我和你一起去,费用都由公司承担,票你帮我也定一张,我也去学习学习。这次我们过去可以多呆一段时间,我母亲在那边有一套房子,你可以和我住那里,我们可以和成都这边远程工作一段时间。”

Holy shit! 我已经不记得我当时的表情,但是我相信一定是非常惊讶的。 这不但是要一起旅游还是要睡在一起的节奏…

那次上海之行我特别想见的有4个人,Ruby语言的创始人 Matz, JavaEye 的创始人 Robbin Fan 和 财帮子的创始人 Robin Lu, 以及大会的发起人 Daniel Lv.

Matz 就不说了, Ruby的开山鼻祖,必须是要围观的。而 Robbin Fan 和 Robin Lu 是当时中国Ruby社区里我最敬重的两位程序员 + 创业人。JavaEye 和 财帮子可谓是当时中国最大的两个用 Rails 写的网站(当时最有名的 Java 社区网站竟然是用 Ruby写的,是不是很有意思?),也是因为有这两个网站在中国才向很多人证明了,Rails 不只是玩具,它可以做大型的项目。(是的,那个年代,中国很多人的想法还停留在 Rails 就是玩具不能用于真实项目的年代。)

想见他们还有一个理由是我和这两位罗宾以前还有些交情, 我大一下期(或者是大二上期,具体有点记不得了)的时候特别迷恋互联网,而且当时正是 Web 2.0 兴起的时候,我那时写过一段时间 Blog,内容主要是我对互联网和 Web 2.0的一些看法,所以取名为 “Terry 谈网”。 现在反过来看看以前自己写的内容,觉得很多想法其实挺幼稚的,不过我完全不后悔做了这事,因为至少我看到了自己以前的幼稚和后来的进步。 写了段时间后,发现自娱自乐已经不能满足我了,于是我想通过这个 Blog 认识更多志同道合的朋友(其实都应该算是前辈),和他们一起玩儿。所以我后来大多采用了采访的形式来写blog, 主要是采访业界一些不错的 Web 2.0网站的站长。 两位罗宾就是我采访过的对象,记得当时给这两位发邀请邮件之前心里都泛着嘀咕,“我一个屁学生,别人肯定都懒得搭理我。” … 但是最终我还是说服自己去试试,毕竟如果失败了,我也没什么损失啊。(后来想想这个和追女生其实是一个道理嘛)

关于 Robin Lu

对于这个 Robin Lu 可能很多社区里的新人都不认识他。因为他现在有点隐士的味道了,很少在社区里出现,连网上发言也少了,他最后发布的一个开源项目也大概是四年前了。当时他在网上那可以说是相当活跃的,无论是写文,发推还是开源项目。也是因为看了他很多东西,让我非常欣赏他。他曾今在 Sun 和微软都就职过,后来出来和朋友创业,开发了当时大名鼎鼎的财帮子并创立了他们自己的咨询公司。 总而言之我当时是非常敬重这个人,而这一次去有个很重要的任务是我要当面给他道歉。

我和 Robin 不得不说的故事:

那是一个月黑风高晚上,是我刚采访了 Robin Lu 的第二天晚上,而那几天正好是我将要和我的小伙伴去参加一个由成都信息工程学院组织的黑客大赛。那晚我正好在准备一些比赛要用的黑客工具,其中一个是我自己试着写的 SQL 注入侦测脚本。好不容易完工,还在学校教务网站试用了一把(登成绩的网站),成功找到漏洞,并把自己加入到管理员里,然后又立即把自己的帐号删除了。我就是试试是否能提权成功,还真没打算干什么坏事。 当时我也在学习 Rails, 也特别好奇 Rails 这个框架的安全性如何,正好那天又采访了Robin Lu,所以想用“财帮子”一试究竟, 于是就用我的性感小脚本在上面跑了一跑。结果没发现任何注入漏洞,我心里还暗喜,觉得 Rails 安全性还是挺好的。(当然,这和写的人关系也很大。)

谁知道第二天一开电脑,就收到了 Robin Lu的来信,信的内容大概是说,从日志中看到了我的行为,并表示没想到我采访他是为了要黑掉他们的网站(俗称社会工程学)… 而且坚定把我认为是一个黑客。

毫不夸张的说我边看那封信,眼泪哗哗的流。这种感觉很委屈,而且比被女朋友栽赃和某某女性朋友有一腿来得更让我不痛快。我记得当时我回了一封很长的信做解释,但是对方并没有再回,而且把我从gtalk上删除了。(看来和这个小伙伴以后没有办法一起愉快的玩耍了!)这件事情一直困扰我很久,所以我想利用这次上海之行给他当面道歉并解释清楚。

从上面的合照你应该不难猜到,最终我还是做到了!:)

 

见 Daniel Lv 是因为我知道他是上海 Rails 社区的组织者,我想从他那里学习一下如何组织社区活动,想到成都来也组织组织活动,心想我们大成都当时虽然用 Rails 的少,但是组织一桌麻将的人总还是够的吧。

而 Daniel 同学后来成为我同事加超级好的基友(一起睡过那种),说起来那次在上海之行就是我们的初次见面,现在回想起来就如同昨天一般。

那次上海之行真可以说是亮瞎我的氪金狗眼,长这么大还是第一次见到这么多搞 Ruby/Rails 的人聚在一起。聊了很多有意思的话题,同时也找到自己很多的差距。我知道自己还有很长的路要走,而要变得更优秀,我必须要和这些优秀的人一起工作。

所以那次回成都不久我就决定要换工作了,我打算背起我的小书包,带上我的真钞,去上海找一个有更多优秀的人的地方工作(东莞去不了了)。决定那天我还在推上发了一贴。结果 Daniel 同学竟然看到了, 然后回复了我 “这种事情可不好在推特上说,你前雇主看到可不好,你gtalk是什么?我和你私聊一下…” (后面的精彩内容我们就下回分解啦)

总结

  1. 多分享自己知道知识。 分享绝对是利人利己的行为,利人相信很容易理解,而利己主要是在于这是最好的建立你reputation的方式,并且也有助于巩固你已经学到的知识。 关于形式我觉得都可以尝试,教别人也好,博客也好,视频也好,写书也好, 公众帐号也好, 微博也好。不要觉得自己还没有准备好,因为你不去做或许你永远都等不到准备好的那一天。我大一就敢写互联网观察相关的文章了,说实话我现在回忆起来都很佩服我当时的勇气,但是我真的做了,虽然很多观点现在想想都觉得稚嫩,但是我的确因此认识了很多对我很重要的朋友。
  2. 即使在你工作缺乏激情的情况,除非你选择马上离开,否则你依然要保质保量的完成你的工作, 这才是一个写软件的人应有的专业态度。
  3. 想尽一切办法和更优秀的人一起工作,即使你可能只能当凤尾。(蒜泥也好,清炒也罢)
  4. 找到你的社区,加入他们,参加他们的活动。同一个社区的人总是有某种程度的相似性,你很容易认识那些和你有 common sense 的人。相信我这些人将在你未来的职业生涯里起到举足轻重的作用。
  5. 安全这种东西,任何框架都只能帮到你一部分。烂程序员用最安全的框架也能写出最不安全的代码。
  6. 研究黑客技术的时候,千万别找认识的人下手,最好自己搭个站来玩,避免引起不必要的误会. >.<