程序员涨工资大多数靠跳槽吗?

关注者
6995
被浏览
1759750

153 个回答

在北京一家startup工作一年 混国外社区 混github 一年后直接remote给多家国外公司工作 收入直接x4-6倍

======================================
收到一些童鞋的评论 求经验之类的 好吧 我就在这里统一回复了吧,其实就是记过去2年的流水账吧。

事情是这样的,13年我从学校毕业之后就去了北京一个比较靠谱的startup团队,我并不是科班,当时只是会一点前端,接触过Nodejs的一点皮毛,会看文档,会用Google,会一点点英语(真的只是一点点)。然后在这个团队里,我顶着比较大的压力吧,服务器是我和另一个北京某邮的实习生在开发,之前是团队大牛ceo写的。其他成员要么是设计,要么是ios或者android吧。

就酱紫 产品就要上线啦 记得是我入职2个月之后吧 那是我第一次接触这么隆重的上线,可惜的是 上线那天就见证了我有多么的不靠谱,才刚上线 数据库就写乱了,结果是通宵改代码 修bug,老大陪我一起,真的很感谢团队的小伙伴对我当时的容忍以及不离不弃。

嗯 我这一段想表达的是 我是如此的不靠谱~ 那你肯定会问 为什么如此不靠谱的人 会有remote 收入x4-6的机会呢,天理不容呀

在之后的日子 老大派了一个ios的大哥过来和我一起搞服务器 实习生倒是走了 我不再是一个人顶着压力了 进入了一个比较良性的学习与工作的循环(再次感动 谢谢老大)。在这段时间 我开始学着去Github的joyent/node下留下一些足迹,比如订阅issues还有Pull Requests,然后有时候遇到一些错误,就顺藤摸瓜,发现是Nodejs自己的问题,然后就在Github Issues里面用我那蹩脚的英语和老外们交流(in text)。再后来 我发现bug 然后我开始学着改bug,怎么让nodejs的测试通过,就酱紫,我学会了unit test,知道了mocha,tape等测试框架,那时我渐渐也明白了为什么当时自己那么不靠谱,所有的代码都没有写单元测试,更不用说什么可用性测试 压力测试啦。(我现在看到一定会抓狂,因为如果现在谁把没有测试的代码交到我手里 第一件事一定是“写测试”)。

再后来,我开始给Nodejs的一些其他第三方库提issue和pr,接受了不少,也被拒绝了不少,就酱紫一直到后来 我们发现Nodejs的一些弊端 然后商量着用C来写其中一个核心部分,于是接触了TJ大神的clibs(clibs · GitHub)这个工具,很有幸 我慢慢地学习C 也加入了这个组织,然后参与了一些issues/prs/repos。

渐渐地 我在其他开源项目的足迹越来越多,大家可以看这个:yorkie/me · GitHub,基本上是我前年的开源贡献,当然我这个跟真正的大神比起来 简直就是小孩子的级别啦。

直到去年大概3-4月的时候 其实从过年回来就开始觉得 在北京身体确实受不了 也不是公司虐待我啦,我每天工作时间确实没有到12个小时,只是不知道为什么每天觉得很困 干完公司的事情 就倦怠于学习其他东西啦,再加上当时有一家以色列的公司给我提供了一个soho的高薪工作。于是我很绝情地抛弃了和我一起奋斗的小伙伴(其实我比较冷血的啦 我觉得自己理想比友情更重要,可能以后会有另外的想法,但我从不后悔我做的决定,因为后悔没啥用,呵呵)。

于是就回家了,我整整在北京工作了1年,房子也正好到期。
然后 这是我第一次和外国人合作非开源的项目,一开始蛮好的,但是可能是因为我刚从北京回来,有一种倦怠感吧,对工作不怎么上心,所以整个过程合作其实不那么愉快,所以过了没多久,大概1个月左右,就被以色列那个公司开除了(说实话,当时很恨那个公司,但是现在 呵呵 觉得这个决定很正确,不match就早点放手,跟谈恋爱差不多 呵呵呵呵)。

终于 我失业了 没有收入 待业在家 我不断告诉自己 I need to work 但是这个时候 再找国内的公司又太掉价(太肤浅了 呵呵),于是我就开始去找国外的自由职业的机会,下面可以分成几条线说:

第一条线:Elance.com
这个网站是一个Freelancing的专用网站,也是我失业阶段使用的第二个网站,我开始注册账号 然后找一些前端/Nodejs的工作。结果就找到一家NYC的公司,CEO在NYC,然后CTO是加拿大非常出名的一个华人架构师,我的工作内容就是做Chrome的插件,涉及到Angular,当然也有Nodejs后端代码的部分,一开始就我们三个人,到后来来了又走 走了又来了一堆印度的、俄罗斯的、中国的,幸运 我还遇到了国内一个著名的Nodejs专家。这个团队的时薪是15刀/小时,略低啦,不过当时我接的时候还没有其他的,于是就先找点事儿做。
整个合作过程还是比较愉快的,最后我基本变成核心开发者,最后我离开前,代码基本有百分之70都是我写的,也给不少新人做项目的guiding。不过因为之后找到其他工作(其他线)比较忙,这边就没再做了,另一个原因是不断有新人来修改代码,他们根本不太注意测试、代码规范之内的,觉得很累。

第二条线:投简历
这条线几率会比较少,挑战比较大,但是收获到的当然也是比较稳定 比较高额的回报。其实我是和elance.com同时进行的,在国外大型的城市 都有一个像startups列表的这么一个网站,有网站的主页,于是我就去比较多的发简历 给我觉得不错的公司,然后是Github上也有一些大神会把自己的公司网址贴上去,我都毫不顾虑地去投了,当然也包括Facebook这种大公司啦。
又是New York City(呵呵 不知道是不是我的英文名Yorkie和NY相似的原因 和这个城市很有缘分),然后他们给了一个机会,先做他们出的Chellenge试题,很简单的啦,就是模仿express写一个lite版出来,我很容易写出来了(我可是express代码都看过,这个自然没有什么问题)。然后他们开始给我了一个Task,也开始算Fee了,30刀/小时(正常价)。不知道为什么他们认为那个task很困难的说,可是在我不断试错,不断沟通,当然还有不断Google 不断文档的轮番攻势下 搞定啦,然后他们就回了我一句:
You are fucking awesome !!!
呵呵 然后我算是在这个团队建立了一种核心的位置吧 我到现在也一直跟他们工作,还有另一个原因是我真的很喜欢他们的代码和沟通方式,这就是我前面说的:Match真的很重要啦,跟这个team如此match以致于我在后来收到facebook的interest invitation的时候都婉拒啦。

第三条线:开源也可以make money
这个真的可以用巧合来说啦,我偶然在elance.com中看到了一个需求,就是用nodejs写一个XXX服务的客服端程序,然后我就觉得 这简单嘛 再加上当时我已经有工作了 所以就抽空写了个 然后开源到Github上,再后来 我发现那个公司有Github主页,但是没有Nodejs版本的repo,于是我就给他们写邮件,大致就是说:我给你们写了个nodejs版的,然后可以帮你们维护,修bug 然后你们相应地要给我一点money花,他们很爽快的答应了,然后我就和他们负责人一直在release前的验证,fix等。

嗯,主要的线就是这些啦,其实还有很多很多很小的线 也很有意思 比如这段时间我有尝试去翻译工作,今年过完年(也就几天后)也会在某Mooc学院 “撸”一段Nodejs的课程。

总之 我觉得自从freelancing之后,我可以尝试更多之前没时间 或者没有去尝试的东西,我觉得生活不再只是程序代码,而其实你coding也不是只是和计算机去交流,因为你的代码是给人看的,所以作为程序员,就别拿这个职业作为自己有交流障碍来做借口吧,多半是社会舆论把你给定型了,其实你应该可以做得更好的,扯远了,最后再扯一下靠不靠谱的问题:

在北京那段时间 我是不靠谱的 这无可置疑,而现在 我觉得我是比当时要靠谱的,至于到什么程度,我觉得是靠谱到别人对我说了句: You are fucking awesome!!! 的程度,自己YY我现在邪恶的表情吧,那这中间我做了什么呢?有几点:

1. 我改变了心态,原来我是得过且过,现在我虽然不会把所有情况都考虑到,但是一旦我知道某一种状况会出问题,我就一定不会忽略那一个case

2. 我现在不仅写单元测试,还写过很多测试,也搭建过一整个测试系统,其中也包含一些非主流平台的测试(比如CEP运行时,自己Google哈)

3. 独立,尽量自己解决问题

所以要说有什么经验分享的话,首先:

第一,你得打你自己的招牌,我曾经的招牌是Github,是我在Nodejs的贡献排名,是我的so cute的头像。

第二,你得做到靠谱,起码得做到我现在的程度,也就是上面的三点。

Ok, 小弟献丑了 希望对大家有帮助,另外我真的重申一下,我不是大神,真的不是,我跟国内的真正大神比起来,我还是Too Young Too Simple了,但我是介意大家和大神 并且想成为大神这样的一份子,希望大家一起努力

另外欢迎大家在Github上Follow我,好吧 我写那么多就是为了骗粉丝的(毕竟是招牌嘛,呵呵)
我见过最牛逼的,是一个google的senior,跳槽了之后去别的公司涨了工资,又promote了几次,跳回google,这个时候工资已经很高了,但是他跟HR要求,还是当senior。但是他的水平已经远超senior了啊,所以不久之后又promote了,但是promote给的是工资的百分比,于是他又涨了很多工资。

(不过这一招在微软行不通,因为我们工资跟level的关系是锁定的
为什么?