How Much Do You Cost?

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

我每天都会收到一些程序员对远程与Zerocracy合作感兴趣的邮件。我通常首先问的问题是“你的费率是多少?”(我们按小时支付报酬)令我惊讶的是,人们经常错误地估计自己的费率,无论是高估还是低估。

我听到的数字差异很大,从每小时5美元到500美元不等。我从不拒绝,但通常会提出我自己的每小时费率估计。本文解释了我考虑和不考虑的因素。这些是我个人的标准,不代表行业标准。尽管如此,我认为它们是客观和合乎逻辑的,所以请允许我解释一下。

这是软件开发人员的第一个也是最重要的特征。你参与开源项目吗?你有自己的开源库被某些社区使用吗?你写的代码是否是公开可用的并被使用?

如果你在这方面没有展示出什么成果,我认为有三个可能的原因。

首先,你太害羞了,不愿分享你的代码,因为它很糟糕。显然,这不是一个好的迹象。不是因为你的代码可能不好,而是因为你不够勇敢去面对这个事实并改进。在我们的团队中,我们非常注重代码的质量,大多数新成员都对我们的质量标准的高度感到惊讶。你也会感到惊讶。问题是你是否能够适应和改进,或者你会放弃。如果你以前没有分享过你的代码,也没有经历过负面反馈,你在我们的项目中会感到不舒服,因为我们对质量要求非常高。

第二个可能的原因是你从九点工作到五点,只是为了生活,没有激情。实际上,没有人会这样表现。相反,我经常听到一些人说:“我的公司不为我的开源贡献付费,而且我想在家里花时间陪家人。” 在现代软件开发中,我们大部分使用的代码都是开源的——库、框架、工具、设备等等。你在商业项目中使用的几乎所有东西都是开源的。通过支付你的工资,你的雇主已经在投资开源产品,因为你是它们的积极用户。问题在于,对成为更积极的贡献者没有兴趣。我认为这是缺乏激情和自我激励。你在我们的项目中能否成为一名有效的开发人员?完全不能,因为我们整个管理模式都依赖于自我激励。

最后一个可能的原因是你不知道写什么和在哪里做贡献,这意味着缺乏创造力。正如我上面提到的,我们现在使用的几乎所有东西都是开源的,而且这些工具都存在着错误和尚未实现的功能。同时,你没有看到任何改进的方向吗?你不知道哪些方面可以做得更好吗?你不能至少找到、报告并修复一个你每天使用的某个开源产品中的错误吗?这意味着你在我们的项目中也无法找到改进的方向,而我们依赖你能够有创造性地发现问题的能力。

因此,如果你的GitHub账户是空的,你的简历没有标明你是“Linux内核的积极贡献者”(是的,为什么不呢?),我会立即失去兴趣。另一方面,当我在你的GitHub账户上看到一个有100多个星标的项目时,我感到兴奋,并准备提供更高的报酬。

在给那些生活在更昂贵国家的人支付更高费率是很常见的做法。当我从旧金山的程序员那里收到简历时,他们的费率是每小时70美元以上。而同样的技能和经验在卡拉奇只需15-20美元。原因在于生活成本——美国的生活成本远高于巴基斯坦。

然而,这个原因对我来说听起来不合逻辑。如果你开一辆更贵的车,我们就必须支付你更高的薪水吗?住的地方也是一样。你选择了你生活的国家。你享受着发达国家的所有好处,并为之付费。这是你的选择。你决定为了你的生活质量花更多的钱——这与我有什么关系呢?

想为午餐支付30美元吗?成为一个更好的工程师吧。在那之前,用几块钱买个热狗吧。只是说“我已经在这里了,我的午餐要花30美元”不是一个论据。

因此,你生活的地方越昂贵,你口袋里的钱就越少。对我们来说,这意味着100美元会比同样的100美元更能激励卡拉奇的程序员。因此,我们更愿意与开销较低的人合作。我们的钱会更有效地发挥作用。

我们都知道Stack Overflow是什么,但是却很少有人(令人惊讶的少!)积极贡献于此。如果你在那里的个人资料是空的(或者你没有个人资料),我意识到你1)没有任何问题需要问,和2)你没有任何问题需要回答。

首先,如果你在那里没有提问,你就没有在成长。你的学习过程在一段时间之前就停止了,可能就发生在你找到一份办公室工作之后。或者你可能太害羞了,不敢提问?或者你无法用准确和精确的格式描述你的问题?或者你所有的问题都已经有答案了?无论如何,这很令人沮丧。

其次,如果你不回答问题,就意味着你没有什么可说的。在大多数情况下,这意味着你没有解决复杂而独特的问题。你只是简单地将众所周知的组件连接在一起,领取你的薪水。

我经常听到人们说,他们通过问坐在办公室旁边的同事来解决大部分问题。他们说他们根本不需要Stack Overflow(或者类似的资源,如果存在的话),因为他们的团队非常出色,任何问题都可以在内部得到回答。这对团队来说是好事,对你来说则不好。为什么呢?因为你没有一个非常重要的技能——在公共互联网上找答案。在我们的项目中,我们不鼓励程序员之间进行水平交流,你将无法得到任何人的帮助。你将孤立无援,而且你会失败,因为你习惯了在办公室里被资深人员照顾。

Stack Overflow不仅仅是一个衡量你聪明程度和你在“最好的编程笑话”中得到的赞数的指标。它证明了你可以通过与陌生人交流来找到问题的答案。这是一项非常重要的技能。

“我已经写了十年的Java!”—那又怎样?对我来说,这个数字只意味着一件事—你在某个办公室里生存了十年。或者在几个办公室里。你成功地说服了某个人,让他支付你在他的大楼里坐了十年的工资。这是否意味着你写了一些有用的东西?这是否意味着你的代码完美无缺?它并不意味着这些。

工作经验年限是一个虚假的指标。实际上,它可能与上面提到的其他指标结合起来对你不利。如果你的简历上写着你两年前才开始编程,而你的GitHub和Stack Overflow账户都是空的—你仍然有机会进步。你只是职业生涯的开始阶段。然而,如果你的简历上写着你是一个”有十年经验的架构师”,但没有任何开源贡献—这意味着你要么在说谎,要么作为一个架构师完全无用。

我的观点是”工作经验年限”这个论点应该非常谨慎地使用。只有在你有其他优势的情况下才能打出这张牌。否则,就自己保留吧。

Oracle、Zend、Amazon、IBM、MySQL等等——我正在谈论这些认证。要获得这些认证,你需要通过一项考试。这不是一项容易的考试,也不是在线考试。它是在认证中心进行的一项真实考试,在那里你需要坐在电脑前几个小时,没有任何书籍或互联网访问的情况下回答问题。对于一个受人尊敬的软件开发人员来说,这是一种相当羞辱的活动?确实如此。而且失败的可能性非常高,这也是相当尴尬的。

如果你能够通过这个考试,这是一个非常好的迹象。如果你做过几次,那就更好了。然而,如果你在整个职业生涯中没有获得任何认证,原因可能有以下几点:

首先,你害怕失败。一个严肃的认证可能要花费几百美元(我为SCEA付了超过700美元),如果你失败了就不会退款。如果你害怕失败,就是害怕战斗。这意味着在现实生活中,需要解决一个复杂问题的情况下,你会畏缩不前。

其次,你不愿意在你的个人资料上投资。这很可能意味着你不想换工作,而是更喜欢找一个宁静的办公室,可以永远待下去。我记得我曾经对一个朋友说过:“如果你通过这个认证,你的简历将大大改善。”他笑着回答说:“我希望我不再需要简历了,我喜欢这家公司。”这种态度对你所工作的公司非常有利,但对你自己来说绝对是不利的。

根据我的经验,最好的团队合作者是那些为自己工作的人。健康的个人主义是一个关键的成功因素。如果你的主要目标是为自己赚钱(金钱、声誉、技能或知识),你在我们的项目中将非常有效。你的个人资料中的认证是我们寻找的健康个人主义的一个指标。

你懂得越多技术和编程语言,你的成本就会越低。我并不是说同时成为多个领域的专家不可能——这完全有可能。但是让我给你一个实际的原因来解释为什么你不应该这样做——竞争。市场上有成千上万的“Java7程序员”——我们可以轻易选择我们需要的人。但是“Hadoop程序员”或“XSLT设计师”就没有那么多。

如果你专注于某个特定领域并成为一个专家,你找到工作的机会会较少,但报酬会更高。我们通常会为狭领域的专家付更高的费用,主要是因为我们别无选择。如果我们正在进行的项目需要一个Lucene专家,我们会找到合适的人并尽力吸引他/她加入。尽力吸引意味着在大多数情况下会提高价格。

因此,当我听到你“熟悉MySQL、PostgreSQL、Oracle和SQLite”时,我意识到你对数据库知之甚少。

我认为拥有一个博客(关于编程,而不是你最喜欢的猫)是一个积极的因素,这一点是显而易见的。更好的是偶尔在会议或聚会上发表演讲。当是一个博客时,我会注意人们对你的文章留下的评论数量。如果是一个会议,最重要的标准是进入演讲嘉宾名单有多困难。

博客文章和会议演讲都会使你作为一个专家更有价值。主要是因为这些事情表明一些人已经审查了你的工作和才能。而且这并不仅仅是一个雇主,而是一群其他的程序员和工程师。这意味着我们也可以依赖你的意见。

此外,如果你经常写作和演讲,你有一个非常重要的技能/才能—你可以以一种“易于理解”的方式呈现你的想法。在我们的项目中,我们不鼓励非正式的交流,而是使用工单系统。在这些工单中,你必须解释你的想法、问题或顾虑,以便每个人都能理解你。如果没有足够的演讲技巧,你在项目中将无法生存。

顺便说一句,一些软件开发人员甚至以自己的名义申请专利—你为什么不能这样做呢?或者甚至出版一本书。为什么不呢?

我通常不太关注你的简历中这一部分。我们的管理模式与其他地方完全不同,所以你之前被解雇了多少次、在全职雇主那里担任过怎样的高级职位,这些都不重要。即使你的头衔是“Twitter的首席技术官”——对我来说也没有意义。

我的经验告诉我,公司规模越大,职位越高,你离源代码和真实技术决策就越远。副总裁和首席技术官大部分时间都花在管理会议和内部政治上。

我对你过去几年做了什么比对你在哪里做以及他们在你做的时候叫你什么更感兴趣。

BSc,MSc,PhD…我们在意吗?实际上并不在意。教育与上述提到的“以前的就业”非常相似。在你毕业后的五年里,你究竟在哪里度过并不重要。重要的是你在那段时间内做了什么。如果你对自己在大学期间的活动无话可说,那么学校的名字又能告诉我什么呢?

当然,如果是斯坦福大学或麻省理工学院,这将会有所不同。在这种情况下,我可以看到你成功通过了他们的毕业标准,并且找到了资金在那里学习。这是一个好兆头,肯定会增加你的时薪。但如果是一个毫无名气的大学(就像我毕业的那所),请将这些信息保留给自己。

每小时100美元以上的费用我们愿意支付给拥有几个受欢迎的开源产品的专家;在Stack Overflow上得分超过20K;拥有认证、文章、演讲甚至专利。

每小时50美元以上的费用我们支付给拥有自己的开源项目或是积极贡献者的专业程序员;在Stack Overflow上得分超过5K;正在撰写关于软件开发的内容;拥有一些认证。

每小时30美元以上的费用我们支付给经常为开源代码做出贡献的程序员;在Stack Overflow上有所存在;拥有一些认证。

每小时15美元的费用我们支付给其他人。

请别误解,也不要将这些数字视作个人攻击。你所获得的费率是对你的专业水平进行量化的指标,而不是对你作为个人的评判。此外,这个水平是不断变化的,完全掌握在你自己的手中。

我写这篇文章主要是为了激励你成长。

所有这些标准适用于我们团队的新成员。一旦你开始编写一些代码,我们将评估你的表现,你可能会得到完全不同的数字,请参阅《如何计算小时费率》。

顺便说一句,你在上面看到的插图是由Andreea Mironiuc创建的。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 05:01

sixnines availability badge   GitHub stars