国外老鸟分享:给入行20年的自己以及现在的你的建议

创作不易,方便的话点点关注,谢谢
文章结尾有最新热度的文章,感兴趣的可以去看看。
本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身
文章有点长(23700字阅读时长:46分),期望您能坚持看完,并有所收获。

今天恰好是我开始专业编程的20周年纪念日。在这些年里,我做到了以下这些事:
• 获批了基于科学领域杰出才能的绿卡申请。
• 成为了谷歌开发者专家(Google Developer Expert)。
• 当选为电气和电子工程师协会(IEEE)高级会员。
• 在一家拥有100名员工的公司担任首席运营官。
• 编写的一段代码被下载了1.35亿次。
• 两次面向2000人的听众发表演讲。
• 被俄罗斯国家电视台评为俄罗斯最诚实的人。
然而,我也错过了很多机会,而且花费了太长时间才取得这些成就。我觉得如果我能早点运用后来学到的态度、原则和做事的优先级,或许可以在5年内就快速达成职业生涯中的大部分成功目标。如果你正处于职业生涯的起步阶段,这篇文章或许能帮你节省15年的时间。想象一下,在23岁时就拥有上述成就清单里的那些(除了IEEE高级会员,因为这需要10年时间),而不是像我现在38岁才做到。
在第一部分,我会简要描述我的职业生涯作为背景铺垫。在第二部分,我会逐一阐述我认为影响力最大的建议。
第一部分:我在2003 - 2023年的经历
2003年12月22日,我失眠了,于是决定去看看有哪些可用的域名。我查看了一些自己想到的域名,然后发现了GetSoft.ru等域名,并购买了它。
“我该拿它做什么呢?”我思索着,“我想,我得做一个软件市场吧”。
那时,我已经做了7年的业余开发者(从11岁开始)。我会制作俄罗斯方块、炸弹人、坦克大战等游戏的克隆版,把它们上传到我的网站上,然后将链接发布到当时很多刚起步的软件市场平台上。那些平台用起来真的很不方便,而我知道怎样能做出更好的平台。
因为当时互联网上大多数网址都以“.php”结尾,所以我学习了PHP语言。
2004年3月4日,我推出了GetSoft.ru网站。
我还写了一个脚本,用于解析一个竞争对手的网站,并发送一些个性化的垃圾邮件,内容类似这样:
“您好,(姓名)。我们正在推出一个新的软件市场。请将您的程序(程序名1、程序名2、程序名3……)添加到我们的平台上!”
这一招奏效了,为我的网站吸引到了一些初始内容,进而吸引了搜索流量,也吸引了更多的软件供应商。
这个网站让我在家乡下诺夫哥罗德市的泰尔玛(如今的哈曼互联服务公司)获得了一个实习职位。他们当时以为摩托罗拉手机制作所有固件而闻名。一年后我离职了,因为我觉得自己更聪明,而且通过售卖广告能赚得更多。
这笔收入让我变得有些懈怠了。到2010年时,市场发生了变化,收入减少了,我就这样错过了早期社交网络的黄金时代。我没有建立起自己的用户社区,只是依赖搜索流量维持生计。
我想不出拯救网站的办法,于是开始以自由职业者的身份为其他人制作企业网站。我曾经一度想成立一家代理机构。
2011年,我暂时离开了编程领域。我结识了一位非常出色的朋友,他是一名教师,帮助我有效地开展了自己的兴趣教学工作。我开设了摄影和摄像课程,一直持续到2013年。后来,他启发我通过投放公寓装修广告并将客户线索卖给实际的装修公司来开展业务,我取得了一定的成功。之后,他聘请我去教其他人如何获取订单并进行销售,我一直干到2014年年中。
再后来,他又聘请我担任他教育业务新一轮迭代中的学习资料制作负责人,之后还让我担任了首席技术官(CTO)和首席运营官(COO)。我搭建了他所需的所有信息技术基础设施,还从零开始制作了一个学习管理系统。
在业务巅峰时期,我们拥有超过100名教师、2500多名学生以及100多个活跃的联盟营销合作伙伴。那段时间里,营收增长了四倍,2015年的利润达到了27.4万美元,这是当时俄罗斯平均工资的600倍。
2016年,他对管理层和薪酬进行了重组,之后我便离职了,并写了一本关于我所学到的优秀工作经验以及如何获得晋升的书(目前只有俄文版)。
之后我又开始做自由职业者了,因为我一直怀揣着自己创业的梦想,而这个梦想又一次耗费了我不少时间。那时,企业网站的市场已经萎缩了,简单的无代码服务占据了主导地位。我自己做了一个客户关系管理系统(CRM),但销售起来非常困难,它不太符合市场需求。由于我的自尊心作祟,我也没法去做一份普通的工作。
到2019年,我终于意识到自己错过了在大公司工作的诸多机会。于是我搬到了莫斯科,在俄罗斯一家领先的呼叫跟踪和营销分析平台Calltouch找到了一份工作。2020年秋天,我再次离职,打算再次自主创业。
为了给我的创业项目打造一个尽可能低成本的移动端和网页端前端界面,我决定学习Flutter框架。我不想浪费自己的积蓄,很快就接受了一位使用Flutter的朋友提供的兼职工作。不久后,我暂停了自己的创业项目,去为他工作了。与此同时,我开通了这个博客。然后在2022年2月,俄乌冲突爆发,我们的客户业务被迫中断。
我逃到了格鲁吉亚(一个欧洲国家),在阿克维隆(Akvelon,一家外包软件供应商)找到了一份工作,这成为了我的一个转折点。他们为阿帕奇(Apache)开发了一些著名的开源项目,通过他们,我结识了一些谷歌的工程师。
我负责前端开发的两个应用程序——阿帕奇光束游乐场(Apache Beam Playground)和阿帕奇光束之旅(Tour of Beam),都捐赠给了阿帕奇,并且由谷歌工程师进行监督指导。
我在阿克维隆工作了一年,凭借在那里的工作成果以及我的写作经历,我获得了谷歌开发者专家的称号。
那时候我觉得是时候搬到一个发达国家去了。我厌倦了像个永久的游客一样在某个地方生活,没有居住许可,还因此总是被当作失败者对待。我多次申请签证被拒,签证官仅仅因为我是俄罗斯人就刁难我。
长期以来,美国一直是我的首要目标。我曾怀揣着通过投资来获得绿卡的梦想,但后来我了解到了杰出人才类的EB - 1A项目,以及它的申请门槛其实并没有那么高。于是我决定进一步提升自己的形象以符合申请条件。
所以我加入了IEEE,并很快晋升为高级会员。
我申请成为科迪奖(CODiE award)的评委,并且获得了批准。在获得了一定的认可度之后,事情真的就像滚雪球一样顺利起来了。
这就是我回顾过去时,感觉到自己的职业信誉随时间变化的情况:

从这张图可以看出,我浪费了很多时间。以下是我以现在的思维方式,会采取的不同做法,来优化这些经历。
第二部分:我的建议
1. 身处最佳之地,融入全球人际网络
我毕业于离家步行仅15分钟的一所大学。在2002年的俄罗斯,大家普遍都是这种想法:只关注身边的小世界。我当时的同学中只有一个去了莫斯科上学,更别说去国外读书了。当时根本没有可以借鉴的例子,让人们知道还可以走得更远,而且我那时也没办法通过互联网去了解其他的发展路径。

另一方面,我的谷歌导师比我小4岁。他来自墨西哥,在韩国读书,然后进入了谷歌在韩国的分公司,之后又搬到了美国。想象一下,从高中毕业仅仅6年时间就做到这些,这是多么厉害啊。
在你们这个年纪,是各方都想要争取的人才。只要准备充分,你们可以选择去任何一所大学学习自己想学的专业。每过一年,这样的机会都会变得更难争取。
我这辈子一直都觉得有更好的地方存在,而且想着总有一天我会去到那里。但过去20年里,那里发生了很多事,而我却与之无缘。
要是知道有更好的地方,那就现在就搬过去吧。
我有个比我小4岁的朋友,在我刚在家乡上完大学四年级的时候,他被美国的一所大学录取了。这让我很震惊,也让我看清了一个残酷的事实:其实那样的机会一直都摆在我面前啊。
与单一国家绑定也存在巨大的风险。要是你的国家卷入战争或者遭到攻击了怎么办呢?我可是吃了不少苦头才明白这个道理的。拥有第二国籍就是应对这种情况的一种保障。趁现在获取成本还不高,赶紧去争取吧。我认为第二国籍这个概念应该像教育一样,成为一种社会标准,这样人们在二十多岁还没什么意识的时候就能去争取了。而且这本身或许就能减少战争的发生,因为拥有双重国籍的人会反对两国交战。
甚至在实际搬家之前,就要先融入全球专业人士的网络。我们国家的大多数人都生活在封闭的圈子里。他们确实有领英(LinkedIn)个人资料,也会用英语发布内容,但依然只有俄罗斯的人力资源人员会联系他们。这是因为仅仅改变语言是不够的。国际协会和国际会议是很多本地社区完全忽视的资源。你知道有更成功的社区吗?那就加入进去,为他们撰写文章、发表演讲。谷歌开发者专家(GDE)和IEEE只是我发现的两个例子,其实还有成千上万个全球性的社区能让你从中受益。
问题在于,在俄罗斯,人们不太相信各类协会组织。在苏联时期,所有的工会都是政府的代理机构,它们只会发放一些诸如疗养院住宿之类的小福利。如果你也有类似的情况,那就试着突破这种局限去看看吧。
固步自封是很危险的。截至2023年末,俄罗斯政府正在施压私营企业,要求解雇那些远程办公的搬迁员工。我的很多朋友在2022年匆忙搬走,但没有拓展全球人际网络,现在都被迫回到了俄罗斯,还面临着各种随之而来的个人风险。
你想想,要是在美国或者欧洲找一份远程工作,得花多少天呢?要是不确定的话,就去加入一些专业组织获取会员资格吧。
2. 要有商业思维
我的第一个商业项目就是之前提到的软件市场,那原本是一个很有前景的开端,但后来我遇到了问题,因为我当时没把它当作一门生意来看待。
第一个问题是,我希望这个项目是“公平”的,所以除了广告之外,我拒绝了任何盈利方式。我也拒绝了付费推广,因为我觉得学生程序员和成熟的软件供应商在这个平台上应该是平等的。这导致我没有足够的资源来进行后续开发,而与此同时,竞争对手却在稳步提升。现在我建议大家要积极抓住商业机会。这个世界上所有的“免费”事物都是建立在某些繁荣发展的商业基础之上的。你免费提供的每一样东西都应该是某个可靠商业流程的附带产物,而且这个商业流程要有明朗且长远的前景。否则,以牺牲自身资源为代价的所谓“慈善”行为,最终会毁了你自己,还会伤害到你周围的世界以及你试图帮助的人。
第二个问题就是“资源诅咒”。有了钱之后,我就变得无所事事了,什么都没做。我只是对网站做了一些符合自己审美的小改进,但再也没有像刚开始那几个月那样全力以赴地去推动项目发展了。这就是拿固定工资的人的心态,而不是一个商人该有的心态。我也不知道该怎么解决“资源诅咒”这个问题。我能给出的最好建议就是,无论你依赖什么,它都有可能崩塌。所以要提前想想,到那时你还剩下什么。
3. 接触盈利相关事务
大多数程序员面临的最大问题在于,他们的想法往往脱离经济实际。
编程是一项极具创造性的活动,它需要十足的安全感,而个人的不确定性和恐惧心理实际上很容易让编程工作停滞不前。这就是为什么程序员大多拿固定工资,不像市场营销、销售、交付、服务等岗位,工资中有很大一部分是激励性报酬。
程序员不仅不用担心产品销售情况,甚至就算没能按时完成任务,也没什么大不了的。普遍的想法是,程序员拿固定工资的情况下变懒散的风险,要小于团队成员因担心收入不足而工作效率降低的风险。
没错,编程工作中的截止期限确实会让人有压力,但那其实是想象出来的压力,在那些解雇员工并非易事的国家,我还从没见过有谁因为没按时完成任务就被解雇或者罚款的。就算是能力不足的程序员,通常也能被安排去做一些枯燥的任务,只是得不到加薪,不久后出于双方共同的意愿就离职了。
程序员拿固定工资还有另外两个原因。其一,在大型项目中,很难制定出一个合理且能及时反馈、足以影响程序员行为的盈利函数。在信息技术领域,一个典型的自然盈利反馈循环至少需要几个月时间。
其二,教程序员了解软件公司的经济情况是有风险的,因为这可能是他们离职去创办竞争企业的唯一阻碍。如果他们有这样的想法,而且性格外向,那他们去创业的可能性是最大的,比市场营销、销售、技术支持等所有辅助岗位的人员都更有可能,因为他们拥有最稀缺、最有价值的技能和专业知识。
虽然固定工资对心理健康有好处,但你却无法培养出对业务有利的直觉判断。管理层可能会口头向你解释各项工作的优先级,但这永远都不如与业绩挂钩的佣金来得有效。这会引发很多问题。
程序员们会抱怨说,他们想花更多时间重构代码,而不是开发新功能。或者他们觉得没必要那么快推出测试版,想再多花几个月时间把事情做得“完美”些。又或者他们会向管理层施压,要求扩展最简可行产品(MVP),添加他们喜欢开发的功能。再或者他们会推荐使用自己个人偏好但并非最优的技术。我以前也总是这样做。
这样做的后果就是:
• 你很难去创业,因为你骨子里没有正确的做事优先级,只能边做边学,还会损失大量资金。
• 很难找到那些以创业为导向、不需要别人盯着就能专注于业务的程序员。
如果你融入了商业思维,就能获得优势。在这方面,教育起不到什么作用,但我知道有两种方法可以做到这一点。
获取佣金: 如果你的工资与利润挂钩,那你的工作方式就会发生极大的改变。
作为程序员,你可以在为小企业做短期项目时采用这种方式。例如,为某企业制作一个聊天机器人,作为额外的销售渠道,然后协商好一段时间内按收入分成。
任何基于佣金的非编程工作也会有帮助。销售人员通常有很好的商业意识,要是他们转行做程序员,往往也能保留这种意识。
自由职业看起来似乎有助于体会盈利的感觉,因为你能迅速得到自己行为的反馈。你越快完成一个固定价格的订单,就能越快接到新订单。然而,这和真正的商业需求关系不大,因为你学会的只是用简单的方式完成每项任务,而不是从战略层面为企业对任务进行优先级排序。
聘请他人: 当你需要自己掏钱创业时,就会有不一样的视角了。在别人的项目里一个还算有用的小功能,到了你这儿可能要花费500美元或者5000美元,那你就会冷静地把它搁置一边,等进入市场有了收入来支撑它的时候再考虑。
等你有了收入,会发现有上百个这样被搁置的项目,而你需要去实施那些能最大程度提升收入的项目。你最喜欢的功能可能并不在优先实施的列表上。你得学会应对这种情况,还要向员工解释为什么不能让他们花两个小时去做自己想做的事。
以让项目能够自负盈亏并在此约束下优化其发展的方式来管理和调整项目,这是世上最难的技艺。
尽早学会这一点,能帮你节省几十年的时间。
4. 尽早涉足新兴技术,及时脱离衰落技术
人工智能: 我几十年前就知道神经网络了。18年前我还上过相关的课程,并且自己搭建了一个简单的网络。那时候还没有TensorFlow之类的工具,我得手动用C++编写一个感知机类,然后从那个基础层级往上搭建所有东西。到了年底,我就把那些知识搁置一边了:好吧,人们可以用编程做文本编辑器、计算器、电子邮件客户端,现在还能做神经网络了。对我来说,它只是众多技术中的“一个”,并没有什么特别突出的地方。
同时,大家都知道人工智能将来某个时候会主导整个行业。然而,课程结束后,我并没有把这个知识和我新学到的技能与实际要做的事情联系起来。
3年后,也就是2008年,我又有了一次机会,当时有人邀请我参与一个从视频流中检测商品盗窃行为的系统开发工作,但我拒绝了,因为我想做自己的“生意”。
现在在我目前的创业项目中,我需要能够检测一段代码使用了哪些算法的人工智能技术。这比行业前沿的人工智能应用要简单得多,但我却觉得很难上手,一直在拖延。
移动应用: 还有移动应用开发也是如此。17年前我上过移动开发相关的课程,当时用的是Java移动版(Java Mobile Edition),还不需要针对特定操作系统进行编码,但当时能在口袋里的小设备上运行程序就已经很让人惊讶了。于是,我用JavaME做了一个俄罗斯方块游戏,放到 网上,然后就把这事抛到脑后了。
时光飞逝,14年过去了,如今一切都围绕着移动应用。我在没有任何安卓和iOS开发经验的情况下开始学习Flutter。大多数Flutter相关的招聘职位都要求有原生移动开发经验,并且把Flutter看作是在此基础上的一个花哨玩意儿,所以我并不是很符合要求。
我的一个朋友是一家工作室的技术负责人,他们从事移动开发已经12年了,客户包括肯德基、汉堡王、思爱普(SAP)和玛氏公司(Mars)。我原本也可以创办这样一家工作室的,但我没有这么做。
PHP: 而我20年前选择了PHP。在当时,用它来在3个月内启动一个创业项目是个不错的选择,但我在这个领域停留的时间太久了。
4年前,当我决定找一份“正经工作”而不再做自由职业者时,我才意识到这一点。PHP相关的工作很枯燥。不知为何,大公司在新项目的后端开发上几乎都选择了其他技术。
这时我才恍然大悟。其实之前当其他有潜力的技术出现时,比如Node.js、Go语言等,我就已经看到了一些苗头。但我当时觉得很安稳,毕竟出于很多原因,PHP对我的客户来说是最佳解决方案。然而,聚光灯已经转移了,PHP的市场在不断萎缩。
如果你察觉不到一项技术走向衰落的早期迹象,那之后你就得去留意更明显的迹象,而且要付出更高的代价。小型企业网站的市场就被无代码网站服务给抢占了,然后大公司也纷纷弃用PHP了。
一项技术不会无缘无故被淘汰,原因就是它不太适用了。如果你说只要技术符合自己的用途,流行与否并不重要,那你可得仔细想想了。肯定有其他技术更符合行业需求,所以大概率也更适合你自己的需求。
就拿PHP来说,它的标准库是各种风格的混杂,类型检查不完善,配置也很困难。我上次做PHP相关工作时,花了好几周时间来修复和配置代码检查工具(linter),而像Go、Dart或者TypeScript这类有类型的编译型语言,这些工具都是开箱即用的。
判断技术所处阶段: 很难判断一项新兴技术只是一时的潮流,还是会主宰整个领域。不过,到了某个阶段,答案就会清晰明了。如果到了那个时候你还视而不见,那就是在自欺欺人了。对于一项衰落的旧技术也是同样的道理。
理想情况下,当局势明朗时就应该做出转换。至少,当你意识到自己在自欺欺人时,就得着手转换了。
积极质疑: 你必须要积极主动,要经常问自己:“这项技术还行得通吗?”
你周围的人可不会关心你是否要放弃某项技术。
雇主需要你维护现有的技术体系。同事们出于自己不敢转换技术栈的担忧,也希望得到你的认可。如果你顺其自然,最终就会守着一项已经没落却还在垂死挣扎的技术,而且到时候要是想转换,难度会非常大,甚至可能都没办法转换了。
看看Stack Overflow上的薪资图表就知道了:

他们给Objective - C程序员更高的薪资,就是为了阻止他们转向Swift。从Perl转向Python也是同样的情况。
注意事项: 你不能仅仅因为一项技术流行就去跟风,那样你对它不会有热情的。选择自己的发展道路背后是有更深层次原因的。我喜欢从整体上设计系统,它包括后端、前端、基础设施以及很多中间环节。我一直在保持和提升一系列技能,以便能够完整地构建这样的系统。
如果我在2005年全身心投入人工智能领域,或者2006年就投身移动应用开发,那我可能就会缺失这些技能了。我会怀念在工作中运用这些不同技术的感觉。我以前是根据自己的习惯而不是对未来的展望来选择技术方向的,现在想来,我很后悔。
5. 思考下一轮淘汰
这条建议和衰落的技术类似,但涉及的范围更广。不仅技术会更新换代,利用这些技术做事的“模式”也是如此。这个概念不太好理解,所以我专门写了一篇文章来阐述它,请花些时间读一读那篇文章,然后再接着看这里的内容。
我认为:
整个技术发展的历史并非是创造的历史,而是淘汰的历史。
网站的出现不是因为它们很酷,而是因为它们取代了纸质目录。 像GetSoft.ru这样的软件市场出现,不是因为我们喜欢在早期论坛上查找屏保程序或者聊天,而是为了省去购买光盘的麻烦。 应用平台商店让自定义软件市场没了生意,因为记住并输入“getsoft.ru”去获取人们想要的应用程序,这已经变成了一个多余的步骤。 一切都转向移动端,不是因为手机很时髦,而是因为体积更大的电脑携带起来实在太不方便了。 无代码网站的兴起,是因为从有想法到搭建出网站的过程太漫长了。
Flutter现在很流行,也是我的主要业务方向。目前使用Flutter的模式是,公司聘请程序员或者外包供应商,然后由他们来创建、发布和维护应用程序。这是值得投入的模式吗?
我们越来越频繁地听到像FlutterFlow和AppSheet这类低代码和无代码解决方案。偶然间,我得知我的两个朋友各自在独立开发一个“基于Flutter的WordPress”,目的是取代常规的小型网站,并且更轻松地生成Flutter应用程序。
即便一项技术本身还没有衰落,但你可能正处在它应用方式的一条死胡同里。这并不意味着你会像我在网站开发领域陷入红海竞争那样,在Flutter开发机构的红海中被淹没。当时有人在网站开发领域取得了巨大成功,未来几年也会有人通过手动编写Flutter应用程序获得成功。
只是说,你可能不再顺风顺水,而是要艰难前行了。而且你可能正在浪费本可以用来为迎接下一波浪潮做准备的时间。
想想你的客户和用户面临的负担吧。要知道总会有新的东西出现来解决这些问题,而最好那个解决方案是由你提供的。
6. 在产业链中占据更高位置
2002年我在制作业余电脑游戏时,竞争非常激烈。我的网站每天通过各个软件市场能获得大约10个访问量,要把这个变成一门生意可太难了。于是,我自己创建了一个软件市场,第一年每天就有1100个访问量。
这就是在产业链上往高处迈了一步。我不再需要和别人竞争,而是把他们的竞争转化为了自己的优势,我可以提供各种各样的软件供用户选择。
很快我又了解到还有更高的位置可以占据。有个人创建了SoftSearch.ru,这是一个针对软件市场的搜索引擎。到2004年时,已经有数百个软件市场了,他利用这些资源,真正做到了汇聚所有软件。我不清楚他的收入情况,但随着市场变化,各个软件市场之间相互竞争,有的被淘汰,而他却依然能从中获益。我在2014年关闭了GetSoft.ru,而他直到2019年才关停SoftSearch.ru。
所以这是一种模式。这种模式的两个常见例子就是谷歌和优步(Uber)。谷歌没有和其他网站在内容方面进行竞争,而是往高处走了一步,通过搜索各个网站并从它们的竞争中获益。优步没有和司机们在同一个层面竞争,而是利用了司机之间的竞争。
你不一定要在自己的业务中成为像谷歌或优步那样的巨头。大多数情况下,经营业务和整合资源所需要的技能截然不同。一个软件市场相对来说是比较简单的软件,但其中可能包含一些真正有价值、制作难度极高的内容。当一款软件售出时,软件作者获得的收入和认可往往比软件市场所有者更多。你可能更擅长经营业务,而不是去整合某个领域,不过要清楚有这样一种模式存在。
另一个处于产业链更高位置的例子就是成为教育者。当你没时间去对自由职业者进行反复试用筛选时,有一个巧妙的办法能找到优秀的自由职业者,那就是找一个教这个职业技能且带出了很多成功学生的人,然后聘请这位老师来做这份工作。虽然这样做比聘请普通自由职业者的成本要高,但成功率也更高。这就是为什么在一个衰落的市场中,教师往往是最后才会失业的群体。
我的一位雇主曾经教大家如何经营日用品和服务类的生意,之后他转而教人们如何在自己喜欢的细分领域进行教学。在第二次创业中,他的收入几乎增长了4倍,因为他在教育产业链上又往上走了一步。
还有一个处于产业链更高位置的活动例子,就是为你所在的领域制定标准、规范行为准则或者设立奖项,这能让你立刻脱颖而出。我觉得在你还没在自己的工作中表现出色之前,是没办法强行推动这些事的,但要知道在某个阶段,这些举措对你和整个行业来说可能都是最好的发展方式。
7. 选择科研而非应用
我是一个投身于工业界而非学术界的人。我做的都是基于科学和常识、切实可行的事情,但我不研究新算法、理论或者原理,我也不做学术研究,我只经营自己的业务,直到那些聪明的科研人员推出新的应用程序接口(API)供我使用新成果。我真希望自己能处在他们的位置上。
实际上,在获得学士学位之后,这就是一个你要做出的正式选择。如果你攻读硕士学位,那就是走科研路线了。你不能仅仅通过编写一个有用的程序就能拿到硕士学位,你需要进行自己的研究或者做出一项能给世界带来新想法的发明。
我当时没有去攻读硕士学位。在我们国家,有一种“工程师学位”,是在获得学士学位后再进行1.5年的应用型学习,而不是花2年时间做研究,所以我选择了工程师学位,现在我后悔了。

15年前,进入市场很容易,只要把事情做对就能取得成功。想想脸书(Facebook)就是这样,他们做的事情并没有比别人更新颖,只是把已有的东西应用到了一个爆发式增长的领域而已。
但现在是科研的时代了。优秀的架构和整洁代码的优势已经减弱了,因为默认情况下,更多的人都能做到这些了。这些东西在战术层面依然重要,但仅凭它们已经没办法让你脱颖而出了。
相反,现在只要谁有一点“神奇之处”,就能立刻取得成功。当出现某个凭借人工智能预测或生成能力脱颖而出的产品时,上百个针对同一目标的现有服务就会消失不见。
Python语言的兴起就是一个很好的例证。它之所以受欢迎,主要是因为它有丰富的数学库。

对科研的推崇并不是什么新鲜事。40年前,科学家们忙着研究数据库索引和搜索算法,当时那些眼红的程序员可能会希望自己能发明出一个好算法,然后拥有市场上最好的数据库管理系统(DBMS)。但时光流转,那些系统如今仅仅成了程序员们在其基础上构建神奇应用程序的基石了。神经网络模型也会面临同样的情况。如果你错过了它们的发展阶段,那以后就只能使用现成的模型在更高层面上简化自己的工作了。
不同的是,40年前科研威胁到的是图书管理员和电话接线员的工作。现在受到影响的则是分析师、口译员、设计师和助手们的工作,程序员们也快了。他们不会全都失业,但每一位科学家所需要配备的程序员数量正在稳步下降。
而且这种趋势还会继续下去。如今科研与市场的联系比以往任何时候都更紧密了。很快,消费者购买的将是纯粹的科研成果。他们会使用瘦客户端,到时候没人会知道应用程序员是谁,就像你知道ChatGPT的前端是谁做的吗?不知道吧,因为他们是完全可替代的,而且很可能拿的是最低的薪水。

另外,如果你在思考下一轮淘汰(你确实应该思考这个问题),那首先察觉到这一点的肯定是科研人员。仅仅是为了探寻下一轮淘汰情况,就足以说明应该选择科研作为职业,然后利用科研成果去开创革命性的业务了。
有些淘汰源于实践,比如社交网络,它们就是把旧技术应用到了新领域而已。但如果没有科研助力,要减轻人类的负担会越来越难。
我感觉自己就是个专注应用的人,但这其实从来都不是我的初始设定。我真希望自己当时去攻读了硕士学位,做几年研究,然后再决定自己更喜欢哪条路。从科研领域出发,如果你愿意,随时可以转做技术工作,但反过来就难多了。
8. 不仅投资自己,也要投资其他方面
我这辈子一直理所当然地认为程序员很抢手,能赚很多钱,所以从来没觉得自己需要存钱。结果到了38岁,我银行里只有2万美元存款,开着一辆12年车龄的旧车,在我离开的那个国家还有四分之一套公寓的产权。
与此同时,我那些勉强维持生计的年轻朋友们都已经还了很大一部分房贷了。
意识到20年就这么过去了,而我一直活在“未来”,却从未将其变为现实,这真的挺让人震惊的。
要把心思放在理财上,去好好学习一门投资课程,然后开始投资,买套房子。
我成功获得了谷歌开发者专家认证,这让我变得很抢手,跻身团队领导和首席技术官(CTO)的行列。要是没有这个认证,大多数雇主都会更倾向于选择25岁的年轻人,而不是38岁的我,更别说10年后48岁的我了。
我上一份工作被解雇了,因为他们没有适合我技能的合同了,只提前了29天通知我。整个团队里,他们只留下了最年轻的一个人来维护现有软件。我不清楚他们这么做的原因,部分原因可能是觉得资深员工会厌烦做维护工作,反正迟早也会离职吧。但事实就是只有最年轻的那个人保住了工作。
和我年纪相仿的大多数开发者都没有这样的竞争优势,所以你得为更糟糕的情况做好准备。随着人工智能的发展,没人是安全的。所以千万别把自己当成特殊的存在,你所依赖的任何东西都可能在某一天消失殆尽。你现在就应该拥有实实在在的保障,而不是只存在于梦想之中。
更糟糕的是,过了30多岁,这个世界就开始把你当作一个没房没钱的失败者了。一年前,我申请澳大利亚签证被拒,理由是我没有表现出挣钱和存钱的习惯,而且和任何国家都没有紧密联系(没有房产),所以他们担心我不会回国。后来申请英国签证也是同样的结果。
这很让人意外,因为我20多岁的时候,很轻松就能申请到美国、法国、荷兰等国的签证,那时我钱和财产都更少呢。
年轻的时候,在别人眼中你充满希望,所有大门都向你敞开,这种兴奋感掩盖了世界的另一面:
如果有门,那就意味着有人会被关在门外。
而那个被关在门外的人,就是快到40岁却不符合社会标准的人。哪怕只是为了避免这种情况,也要去满足社会标准啊。
9. 寻求在信息技术行业领军企业的工作机会
我做了大概8年的自由职业者,但这段经历没什么值得一提的。我曾为我所在城市一家很有名的牙科诊所做了个网站,那又怎样呢?
我甚至都没法把这个案例展示给别人看,因为两年后他们就找别人做了个新网站。我大概有40个这样的案例。
当你开始在行业领军企业工作时,他们一开始给的工资可能不高,但你在那里能快速成长。我认识一些人,他们刚入职时拿的是国内平均工资,6年后工资涨到了原来的10倍,而且他们有很多宝贵的经验可以讲,凭借这些就能轻松找到下一份工作。
没有哪份自由职业工作的难度或者趣味性能够达到值得大公司关注的程度,那不过是用你最好的年华去换钱罢了,仅此而已。
真希望我能早点明白这个道理。然而,我早期读到的关于自由职业现象的文章都在夸赞它带来的自由,所以我从来没质疑过这种工作方式。实际上,真正能带来自由且不会让你沦为一事无成的流浪汉的,只有自己创业,但那就是另外一回事了。
在小企业工作比做自由职业稍微有意思一点,因为你能获得一些管理和营销方面的经验,但从技术层面来讲,那仍然只是些琐碎的工作。比如,我曾在一家教育公司担任首席技术官(CTO),我用已经流行了十年的主流技术为他们做了一个客户关系管理系统(CRM)和一个学习管理系统(LMS),公司发展得很不错。那又怎样呢?不管你的业务性质如何,在别人看来,无非就是PHP + MySQL加上增删改查(CRUD)操作而已。

大公司需要以下这些技能:
• 分布式系统架构。
• 高负载处理。
• 事务管理、竞态条件处理、并行计算。
• 请求优化、性能分析。
• 自动化测试以及持续集成/持续交付(CI/CD)。
• 合理把握重构与应对遗留系统的比例。
• 对变更和部署极为谨慎。
在典型的小企业信息技术部门,你根本学不到这些技能。但如果你愿意,从大公司的专业岗位转到小企业工作是很容易的。
正是这种技能要求上的不对称性决定了你应该趁还来得及的时候,去寻求在行业领军企业的工作机会。而且这样你还能积累很多值得炫耀的经验。
另一个关键原因在于,做自由职业或者在小企业工作时,你通常就是技术最厉害的那个程序员,所以你只能通过互联网学习。但向同事学习可比你通过阅读和观看视频学习高效多了。
那种学习氛围是潜移默化的。在工作的时候,你会接收到大量你没留意但却实实在在吸收了的信息,它们会成为你的一部分。如果你在家做自由职业,你所处的环境就是外面狗叫声,这对你毫无帮助。但要是你在办公室里和专业能力很强的同事们一起工作,你周围就是大家在讨论那些你从未想过的问题的绝妙解决方案,不知不觉中,这些就成了你自身知识储备的一部分了,而且根本不需要你主动去获取。
赶紧离开那种你是技术最厉害的人的地方吧。
好消息是,大公司经常会招聘实习生并培养他们。比如,我弟弟在上学的时候就在英特尔工作了两年。在24岁的时候简历上有这样一段经历,挺不错的吧?等毕业之后,再想获得这样的机会就难多了。
10. 做关键之事
仅仅在大公司工作本身是不够的。你可以选择做很多工作,感觉它们或多或少都差不多,但从长远来看,对你的履历而言并非如此。
例如,EB - 1A绿卡项目中有一项标准要求你承担关键角色,也就是要对所在组织的关键指标有重大影响。即便你从事的是需要世界顶尖技术的前沿工作,但在旁观者看来,它可能算不上关键,因为其影响可能是间接的,又或者像你这样的人太多了,很难评估你个人的贡献。
另一方面,你完全可以不涉及任何现代技术,却依然能做关键之事。比如,我曾经有幸负责过一家公司的认证系统,那只是一些PHP代码,但我发现并修复了一些关键漏洞,我还帮助他们在持续集成(CI)流程中引入了静态分析,这减少了意外停机时间。这些成果加起来,很可能帮我满足了EB - 1A项目的一项标准(我说“很可能”是因为当申请首次获批时,他们不会告诉你是哪些优势起了作用,但我觉得这一点应该是比较有力的)。
当然了,你不需要在“关键”和“前沿”之间做选择,两者可以兼顾。选择好你的公司和职责,合理安排时间,让你的工作成果对这两方面的衡量指标都有帮助。
在考虑一个职位时,要想想,即便你不是正式的领导,要向一个外行人证明你对项目的成功起着核心作用有多容易。这和仅仅技术精湛相比,是你个人形象塑造的一个全新维度。
我只花了4年时间做我认为关键的事,这意味着有16年都浪费了,那些年并没有真正提升我的形象,而本来我的形象可以比现在厉害5倍的。
大多数时候,关键角色的机会只要你准备好了,就会主动找上门来。首席执行官(CEO)或者首席技术官(CTO)会直接点你的名,就像我遇到过很多次的那样。但在那之前,你也可以主动去寻找这样的机会。
如果我是一个寻求关键角色的新手,我会去做认证、加密、高负载系统运维开发(DevOps)或者查询优化方面的助手工作。这些岗位更看重的是细致认真,而不是丰富的经验。一般来说,只要是容易解释清楚且一旦出错代价很高的工作就行。
11. 正确理解《致加西亚的信》
我所知道的最重要的商业文章就是埃尔伯特·哈伯德(Elbert Hubbard)写的《致加西亚的信》。现在花几分钟读一读吧,它篇幅很短。

几乎每次我要求别人做任何一项任务时,他们问的问题都远比应该问的多得多。通常一项一周就能完成的工作,我得花大概2个小时去解释相关事项,而这些事其实花5分钟讲讲就应该很清楚了。
如果你已经读到这里了,我觉得我不用再多赘述了,这篇文章会让你明白该怎么做的。
另一方面,也有一些做事一根筋的人,方法不对还引以为傲,不过这种情况比较少见,问题也没那么大。
我以前也是这样的人。有一次我需要创建一个端点,以便前端能显示数据库里是否有某些记录。我预计到某个时候他们可能还需要记录的数量,所以我就把数量也一并返回了。要是他们之后需要这个数量,不用我帮忙也能直接展示出来。代码就像这样简单:
“SELECT COUNT(*) FROM t WHERE something;”
后来一位首席技术官(CTO)知道了我的做法后很生气。他让我测试一下这个查询的耗时,结果耗时不到一毫秒,所以我觉得没什么问题。然后他又让我测试下面这个查询的耗时:
“SELECT 1 FROM t WHERE something LIMIT 1;”
结果这个查询快了20倍。
我错了吗?在我来自的那种面向小企业的低负载应用场景里,我没做错,在那里为未来快速改进做准备是最重要的技能之一,所以我当时甚至都没问该怎么做更好。我所欠缺的是在高负载系统方面的经验以及对相关背景的了解。
如果你有疑问,你需要能够判断这个疑问是出于习惯、等着别人告诉你怎么做而提出来的,还是确实有必要问的。然后你要么把疑问放下,要么就去问清楚。而这只有在深入理解背景情况之后才能做到,背景情况包含业务需求、预算、目标、路线图、架构及其局限性、待办事项列表、外部依赖关系、整个代码库的历史等等诸多因素。
如果你真的不确定该怎么完成工作,
最不麻烦且最有助于提高效率的问题就是问问工作的优先级是什么。
然后你再根据这个来制定解决方案。一个答案或许就能让我避免去扫描整个数据表了。
我能告诉你的第二件好事就是,要留意这种平衡,要针对你的项目专门去了解上述所有因素,这样才能更好地判断什么时候该问问题,什么时候不该问。
鉴于你本身是有能力且积极主动的,
这种问问题和不打扰别人之间的平衡,是你能否获得晋升的关键因素之一。
12. 为重要的开源项目做贡献
开源项目贡献对于你的简历、面试、会员申请、奖项评选,甚至人才移民项目等都很重要,这些方面都会考量你在开源方面的贡献并据此给你加分。
我在开源方面最受欢迎的贡献是给PHPStan(PHP语言最流行的静态代码分析器)添加的一个功能。我写的这段代码已经被下载了超过1.35亿次。

这很可能帮我满足了EB - 1A项目中“对所在领域有重大科学贡献”这一标准,而这是获得绿卡所需条件的三分之一。
为了做出这个贡献,我当时不得不转为兼职工作,因为在34岁的时候,周末还要花时间写代码真的挺难的。如果你才20多岁,你的时间基本是免费且无限的,所以要好好利用啊。
我还有一些更令人印象深刻但没那么受欢迎的贡献,比如为阿帕奇(Apache)的两个应用程序(阿帕奇光束游乐场、阿帕奇光束之旅)做的前端开发,以及用Flutter编写的一个代码编辑器。

如果你选对了项目,做开源贡献就好比早早买对了股票,之后你什么都不用做,就能看着下载量蹭蹭往上涨(以百万计)。和股票一样,如果你错过了这个机会,到了一定年纪,你就达不到社会标准,会受到区别对待。但和股票不同的是,即使项目本身不行了,你在开源方面的贡献也不会贬值,因为评判依据是你所做贡献达到的最高人气值。
和做其他事一样,为了做贡献而做贡献是很无聊的。我做的所有开源项目都是因为工作需要才做的。所以你应该选择一份能把开源贡献作为附带收获的工作,这就是平衡的秘诀,能让你轻松拥有不错的履历。
我们总是希望自己参与的软件包能大受欢迎,这样我们就能成为顶级开源仓库的所有者了(如果项目没火起来就退出吧)。但大多数人都没这个运气,我自己最火的Flutter软件包也只排在前16%,挺让人失望的。
不要把所有精力都放在自己的项目上,去帮帮那些已经很有名的项目吧,这样就算你自己的项目没火起来,你的履历也不会太难看。
我在职业生涯中从事专业开源工作的时间还不到7%,真希望当时能多做一些。我认识一些谷歌开发者专家,他们80%的职业生涯都在参与开源项目呢。这样的机会是存在的,要去主动寻找啊。
13. 大力提升曝光度
20年前,是否要公开自己是个人选择。那时候还没有社交网络,互联网上也没有视频,人们要想获得知名度,就得给专业杂志投稿,这很费劲,所以当时专业人士选择低调行事、不这么做也是可以的。要找工作的话,你只需要把简历写成.doc文件格式,然后发给各个公司就行,他们别无选择,只能相信你,然后邀请你去面试。
但现在不一样了,保持公开透明几乎不费什么力气,所以如果你还低调行事,那就显得你胆小、没能力或者人生优先级有问题了。哪怕是内向的人,至少也得写写文章,不然容易引人怀疑。如果你突然冒出来,在脸书(Facebook)上只有50个好友,没写过什么东西,也没有公开记录能证明你做过什么事,那你想找一份像样的工作可就难了。
既然现在大家都很公开透明了,那你就得大力提升自己的曝光度才能脱颖而出,要把记录自己取得的每一项成就、每一个发现以及发布的每一个可复用的成果变成自己的一种习惯。
对你来说,闭嘴不谈应该比向外界分享更难才对。
多写文章: 我在2004年9月29日发表了我的第一篇技术文章,浏览量达到了5000次,我当时可高兴了,那时我还是个大三学生,就已经有很多人能从我的经验中学到东西了。
但不知为何,我第二篇文章的发表时间却是17年之后了。
我运营这个博客才两年,浏览量就已经超过十万次了,还收获了几百个粉丝。粉丝数量是呈指数增长的,因为一个亮眼的数据会吸引更多人关注。要是我中间那17年没停笔的话,我现在可能都成名人了。
等我在Medium平台上的粉丝达到一千个的时候,我会专门写一篇故事分享(更新:文章已发布,此处应该是原作者后续的备注)。同时,给大家分享几个小建议:
• 不要在代码审查和指导环节重复自己说过的话。如果你说了两遍同样的内容,那就花点时间把它写下来然后发表出去,之后只需要给别人发文章链接就行。如果写作对你来说不是很自然的事,这是开启写作的最简单方法。
• 在所有热门平台上发布文章。如果你只使用一个平台,那平台的推荐算法一变,你就可能受影响。你花了好几年时间积累粉丝,结果突然之间他们可能都看不到你新发布的文章了。很多平台都出现过这种情况,现在大多都只是作为文章的托管平台了。为了避免这种情况,要在各个平台都发布文章。
• 遵循“作者优先”原则。在选择工作时,看看公司是否认同这个理念,是否愿意推广你的Medium账号。有些公司实际上允许你在工作时间写作,甚至会为你发表的文章额外付费,而且还允许你使用个人的Medium账号,不过他们可能不太允许你在文章结尾呼吁读者订阅你的个人电报(Telegram)或推特(Twitter)账号。
• 把所有重要的事都写成文章,哪怕是签证被拒这种事。这样一来,你的人生就没有什么损失了,因为最差的情况也就是多了一篇文章而已。
• 写私人日记。我从斯蒂芬·柯维(Stephen Covey)那里学到了这个小窍门。刚开始写的时候,你的想法可能很直白,比如“我去了那儿,我做了那个”。一年之后,你会不知不觉地开始写一些长篇大论的哲学思考内容了。
制作视频: 顶级的视频博客通常比顶级的文字博客拥有多10倍的粉丝数量,这意味着如果我们只写文章,那我们就会错失很多机会,几乎相当于不存在一样。
我不太擅长制作视频,我讨厌排练,而且通常在正式录制前至少得完整试拍一次才行。我讨厌那种感觉,就是如果我在录制过程中说错了就得重新开始录制,而且我讨厌提前安排好诸如打开文件夹、切换页面之类的屏幕录制准备工作,我也讨厌视频编辑,因为太费时间了,而且等发现可以改进的地方时往往已经来不及了。真希望我早就学会爱上视频制作并且付诸实践了。
年轻的时候制作视频要容易得多,因为那时候感觉时间多得是,所以我上面提到的那些讨厌的地方都不算事儿了。所以别听我的抱怨,赶紧行动起来吧。
我早在2011年就开通了我的YouTube频道,挺早的了,但之后我没怎么打理它。不过到现在也已经有超过十万次的浏览量了,还算不错,不过频道内容和编程没什么关系,都是其他方面的内容。
我还上过视频制作相关的课程,实际上我在摄像方面还不算差,还制作了3个短视频(此处给出了三个视频的链接)。
我甚至还制作了一个关于如何拍好自己的视频课程,涵盖了从不怕直播到设置相机支架、灯光、麦克风,再到专业视频编辑等15个主题,而且从今天起我要把它免费公开(不过课程是俄语的)。
文字的一大优势在于,你可以随时对其进行完美编辑,这一点和视频不一样。我在写这篇文章的时候还不知道我的绿卡申请结果,等我知道了,我就可以把文中相关的内容都更新一下。目前视频还做不到这一点,但人工智能很快就能让我们先写好视频脚本,然后渲染生成视频,就好像是你亲自录制的一样,你的面部表情、屏幕画面以及所有动作都会配合得恰到好处,这样一来,我上面提到的那些烦恼就都不存在了,不过话说回来,那些习惯录制和发布视频的人还是会更有优势,因为他们思维更敏捷,而且有推广视频的经验,所以要尽早开始行动啊。
我打算以后给我的文章都配上视频,并且把以前的文章也补上视频内容。
参加演讲活动: 我小时候和青少年时期结巴很严重,所以只要有机会我就尽量不说话。而且我好像还有阿斯伯格综合征(Asperger syndrome),这让我很难实时清晰地表达自己的想法。等到别人都已经能自如地表达想法并且很有感染力的时候,我却还很木讷(这也是我擅长写作的原因之一,写作算是一种补偿性技能)。
后来我意识到我错过了很多生活中的精彩,于是决定改变这种状况。我付出了很多努力,才做到了别人一开始就能轻松做到并且习以为常的事。
我这辈子有两次在2000人的场合发表演讲的经历,不过是关于政治方面的,和编程无关(一次表现不太好,一次稍好一点,两次都是用俄语演讲的)。
这种经历非常震撼,能让你在很大程度上得到解放。
现场演讲是你生活和工作的一个全新维度。通过演讲,你能结识那些原本根本没机会认识的人。而且现场观众对你形成的印象比通过视频要深刻得多,你能和他们建立更牢固的联系,在他们取消关注你之前(如果会取消关注的话),你能获得更多认可,因为你更加真实,人们更愿意听真实的人讲话。
在会议上发表演讲对你在很多方面都有帮助:有助于你加入各类组织(比如成为谷歌开发者专家、IEEE会员),能给移民项目加分等等。而且演讲机会是会随着时间积累越来越多的,通常被邀请去演讲的都是那些之前有过演讲经验的人,所以要积极参与进去啊。
最简单的开始演讲的方式就是在你所在的大学做兼职教师,毕竟那里的人都认识你。我就是在意识到自己需要改变之后这么做的。我请我的一位教师朋友帮我代了一个学期的课(她先和教授确认之后同意了),这给了我一个比较宽松的环境来锻炼自己、找到感觉。如果你想让自己感觉好一点,可以看看我最开始的几堂课(给出了两堂课的链接,都是俄语的)。

如果你身处领导岗位或者技术能力很强,那很容易就能在一些技术交流会上成为演讲嘉宾。只要问问你的上级该怎么申请以及去哪里演讲就行。我就是这么做的,我的上级很惊讶,然后安排了一场有另外两名来自大公司(他的朋友所在公司)的演讲者参与的交流会,当时台下有40名听众。
很多管理者都认为程序员不喜欢演讲,所以他们甚至都不会主动建议程序员去演讲。演讲机会可不是等你准备好了就会主动降临到你头上的,你得主动去争取啊。
我很后悔错过了那么多演讲机会,现在我已经是谷歌开发者专家了,每周都会收到国际会议的邀请,而且终于有空闲时间了,我要开始接受这些邀请了。
14. 保存好一切
你的工作成果: 小时候,你不会在意自己的工作成果。要不是父母帮忙保存,你可能连小时候画的画都留不下来。幸运的是,我还留着这个:

后来你开始在意了,就会试着保存过去的作品,以备日后不时之需或者用来向别人展示。
成年后,你会发现自己特别害怕丢失这些成果存档,仿佛它们已经成了你自身的一部分。你会思考为什么它们对你如此重要,也许你会试着克服这种恐惧,从自己内心而非积累的这些东西里寻找安全感。然后你可能就不再那么在意自己的成果存档了,不会再费心去保存那些体积大的文件或者难以整理的东西,甚至可能会故意删掉一些来让自己轻松些。
虽然这种态度或许意味着你的心理健康状况有所改善,但之后你又会意识到,要是能把过去的东西保存下来,其实也是挺有意思的一件事。
我的硬盘在2000年左右坏了,所以我没办法给你们展示我15岁之前做的游戏了。我1998年用QuickBASIC 4.5写的一个《打砖块》(Pong)克隆版游戏,现在对你们来说没什么用了,但我真希望能在这里放一张截图啊。不过,我还有仅次于它的好东西,那就是2001年用Visual Basic 5写的《挖金子》(Digger)克隆版游戏,里面所有的宝石都是用3DS Max渲染的:

当你在写自己入行20年的纪念文章时,试着展示一下自己早期的作品吧,挺有意思的。
反馈信息: 还有一件更重要的事需要保存,那就是来自客户、同事、上级等各方的反馈。要是以后你需要这些反馈,再去获取可能就很难了。因为一个人可能会:
• 离职了,没办法再签字证明了。
• 忘记了你工作成果对他们的价值。
• 变得太出名、太忙了。
• 更换了所有联系方式。
• 去世了。
比如,我曾经给PHPStan做了一个改进,这个改进在2020年的时候就很受欢迎也很重要。我当时觉得要是以后需要向别人证明我的工作成果,那个代码合并请求(PR)还在那儿呢,所以就没费心去获取更多的证明材料。
后来在申请绿卡的时候,我得向移民官证明我的贡献,可移民官大概率没办法轻易读懂那个代码合并请求的含义,也理解不了它的影响。并不是所有移民官都会费力去理解你向他们解释的内容,他们有些人只认权威人士签字的书面事实材料。有些移民官就是在故意找借口拒绝你,我在申请英国签证的时候就遇到过这种情况。
所以我就请PHPStan的作者给我写一封推荐信,用通俗易懂的语言说明一下我的工作意义,但他说自己太忙了,没时间打印出来然后寄给我(我的律师说这种纸质信件是他们更倾向的格式)。我辛苦做了这个功能,花了几十小时呢,听到这个回复真的挺崩溃的。但毕竟已经过去3年了,人们确实会忘记之前对你工作的感受,而且他们也不欠你什么呀。
如果你付出了很多努力,而且工作完成得很不错,那做完之后就赶紧要一封推荐信吧。只要在工作完成后不久提出这个请求,就是很自然的事。
为了这次绿卡申请,我给很多PHP相关领域的知名人士都写了信,其中有两位同意书面确认这个功能很重要,而且有一定影响力。
我的这个请求其实挺奇怪的,大概意思就是:“您好,我是某个项目的非主要贡献者,您知道这个项目,但不一定用过。这个项目的作者拒绝确认我的贡献,您能不能看看,然后确认一下它确实很重要呢?”
我措辞已经尽量委婉了,但还是感觉挺难堪的。回复我的人不到10%,而且大多数人甚至都不愿意去了解一下情况。我后来还得知我最后几封信都进了对方的垃圾邮件箱,所以有些收件人看到我的邮件就直接当作垃圾邮件举报了。要是你依赖的人没能帮上忙,事情就会变得极其棘手。
千万别等到别人把你忘了才想起来去做这件事,你肯定会被忘记的。
15. 照顾好自己的身体
这条建议其实应该放在最前面说的,但要是那样的话,这篇文章感觉就会像那种俗套的新时代鸡汤文了。
我现在38岁,身体已经出现了一些健康问题。
我有脊柱侧弯,脊柱呈S形弯曲。我十几岁的时候,医生就跟我说,如果不矫正的话,后背会经常疼,但17岁的人都觉得自己无所不能,所以我没把医生的建议当回事。
其实在我20多岁中期之前,矫正还是比较容易的。但我直到30岁左右才开始重视这个问题,那时候矫正就已经很难了。我通过瑜伽和按摩,花了两年时间把弯曲程度从25度改善到了21度,但进展太慢了,后来我就放弃了,现在想想真后悔啊,因为到了38岁,矫正就更难了。我的后背疼了好多年了,几乎就没怎么停过。
我的膝盖也疼,都没法跑步了。这得从大学体育课上的单腿深蹲说起,2002年俄罗斯的学校根本不在乎十七八岁学生的健康状况,当时也没人检查我的动作是否标准,就要求我做那个练习,结果做完之后膝盖就开始疼了。后来我才知道,由于我肌肉力量薄弱,膝盖承受的压力不合理,膝盖韧带一直处于过度紧张的状态。
跑步之后情况更糟了。我这辈子从来没人教过我正确的跑步姿势。从学校到大学,根本没人在意这个。老师就只知道说:“跑!”后来我才知道,我跑步的方式会让冲击力直接作用到膝盖上。其实有专门研究跑步的运动医生,他们会让你在跑步机上跑步,然后用慢动作回放给你看,详细解释你哪里做错了,指导你改变跑步习惯,这样就不会伤到自己了。所以,哪怕你觉得自己跑步姿势没问题,也最好去看看这样的医生。而且千万别相信那些健身教练。
韧带一旦扭伤,就再也没法完全恢复了。每一次受伤都会降低它对下一次受伤的耐受度,之后受伤就会更疼,恢复时间也更长。
现在每次徒步对我来说都是一场冒险,第二天膝盖可能就开始疼了,而且一疼就是一个月。我能登上厄尔布鲁士山(Elbrus,欧洲最高峰)而且当时膝盖没疼,真的算是个奇迹了。你可不想经历我这样的事啊。

饮食也是个问题。我曾经尝试过吃素,但没考虑过我吃的食物是否包含了身体所需的、能替代肉类营养的所有成分。第一年感觉还挺好的,我觉得自己身体很纯净,精力充沛,就跟那些劝别人吃素的素食主义者说的一样。但过了两年半,我就感觉不对劲了,那种兴奋劲儿没了,随便干点什么,像崴脚或者扭手腕这种小事都很容易发生(别忘了韧带是没法完全恢复的),而且我隐隐约约觉得身体好像缺了点什么,但又说不上来具体缺什么,就是一种身体发出的信号。然后我就又开始吃肉了。现在想想,真希望我没经历那两年半的素食时光,或者把那段时间缩短到6个月就好了。
现在有太多鼓吹各种饮食法的人都是骗子。他们自己试了某种饮食法,感觉变好了,就把它当作放之四海而皆准的方法到处宣扬。其实吃素后感觉变好,是身体对压力和营养缺乏的一种防御反应,和那些新时代的狂热素食主义者宣扬的恰恰相反。而且,除了20种氨基酸之外,还有很多其他营养成分需要考虑,但普通人根本不会去研究这些。
我听过很多因为饮食不当伤害到身体的故事,有些人的某些身体组织再也没能恢复,变得更容易受伤,还患上了慢性疾病。
我没有具体的数据统计,也许对大多数人来说吃素没什么问题。但千万别相信那些只拿个别案例说事然后一概而论的人。要是有疑虑的话,为了保险起见,我建议还是吃肉吧。
需要记住的事情有:
• 做任何活动都有正确的技巧,要是方法不对,你可能会伤到自己,而且这种伤害可能无法恢复,会给你带来长久的疼痛。
• 大多数监督你训练或者声称能治好你的人都不可信,他们要么不在乎,要么根本分不清对错,还是得找顶尖的运动医生。
• 在20多岁中期之前治好身体出现的毛病,过了这个阶段,很多机会就没了。
• 千万别仗着年轻就觉得自己身体能自愈,这种“超能力”会消失的。你年轻时对身体做的每一件错事,到了30岁之后都会找回来的。
16. 别让这些成为阻碍
对于我在这里提到的大多数改变,其实很早之前我就知道自己得去做了。
我们国家一直以来对自由都有所限制,在2011年的时候情况变得尤其糟糕。如果当时我就搬走的话,我早就处在一个更好的职业环境里了,而且现在应该已经有第二国籍了,而不是要等到2029年。而且那时候俄罗斯人在国外也更容易被接纳。
但我对过去有着很深的眷恋。我一直在帮助那些我曾经给做过网站的人,哪怕我有4年没做编程相关工作了,他们还在用我做的网站引擎,所以我觉得自己有义务支持他们,要是不管他们,感觉太不厚道了。
我当时不知道,其实就算你关停自己的业务,也不会有什么可怕的后果。他们很快就能找到人替代你,只是如果你还能帮忙,他们就懒得去另外找人了。你说“以后请找别人吧”根本不管用,得明确跟他们说“我不干了”,尤其是面对他们的紧急任务时。
不要像GoDaddy(一家域名注册及网站托管公司)那样,在圣诞节前19天通知所有俄罗斯客户终止服务,太不地道了,我们原本还以为那些想集体惩罚无辜俄罗斯人的行为在过去22个月里已经结束了呢:

而且不要对客户撒谎:

但也别让别人利用你对自己产品的这份眷恋,让你做超出自己真正意愿的事。
个人感情方面的事就更难割舍了。在我过去的大多数感情关系中,我要么觉得要是对方改变了,我们就能复合,要么就是想着万一她遇到麻烦了,我想在身边帮帮她。所以我就留在那个城市,然后自然而然地又开始新的感情,就这样不断循环。
而且我还有一个很喜欢的按摩师,还有一位特别棒的瑜伽老师,9年了,我到现在都找不到能替代他们的人。
这些还只是我意识到的情况,肯定还有大量潜意识里对食物、公园、街道、他人认可等等方面的眷恋。
我当年选择去一所都排不进世界前1500名的大学,而且它离我家只有15分钟步行路程,从蝴蝶效应的角度来看,这可能是我这辈子影响最大的一个错误决定。确实,在2002年的时候,很难获取信息,也没有我认识的榜样可以参照,但也确实有人选择了离开啊。
这就是最糟糕的地方,不是“哦,我也想啊,但有东西在阻碍我”,而是潜意识里就不愿意去审视周围,甚至都意识不到有些情况其实并不是最优选择。
这就是为什么人们建议要主动去做一些改变,哪怕只是为了改变而改变,比如每个月去另一个城镇过个周末,尝试新的菜肴等等。这样做可能会让更大的改变变得更容易,也可能只是一种小把戏,而不是立刻去做那些重要的改变。
每次我说自己在克服一些眷恋的时候,其实是对那种觉得需要准备好才能改变的想法的眷恋在作祟。
对于每一次改变,我总是处在准备阶段,总觉得在做出改变之前,还得再多完成几件事,其实这都是借口。
我从来没有比改变前一天准备得更充分的时候,每年我都会意识到,和当下的情况相比,去年那些所谓的眷恋不过是蹩脚的借口罢了,然后到了下一年,我又会产生更强的眷恋,有更多理由不去改变。
是俄乌冲突这场变故推动我做出了改变,现在我的生活并没有崩塌,我才明白那些借口是多么可怜又可悲。
如果你生活中也经历过类似的冲击,但还是没有做出原本计划好的改变,那很可能以后在压力没这么大的时候,你也永远不会去改变了,除非你正视那些借口。
我建议你正视那些借口,现在就去做自己想做的事。

就是这样,一共16条建议,我不喜欢那些所谓的数字魔力(意思是不一定非得凑够某个特定数字的建议)。
真的能快速达成目标吗?
好吧,怎么才能在5年里做到原本花了20年才做到的事呢?
我本来打算写一写我认识的最年轻的谷歌开发者专家是在23岁时获得这个称号的,我估算的依据就是这个。但后来发生了一件特别令人惊讶的事。
在一次Flutter相关的线上交流中,我遇到了艾拉·麦克费尔(Aila McPhail)和她妹妹苏梅(Sumay),她们俩两年前分别是9岁和12岁的时候,就创办了一所面向儿童的在线学校,现在她们在推特(Twitter)上已经有超过1500个粉丝了(我才41个粉丝),而且她们的学校已经服务过超过500名学生了。她们住在福尔斯彻奇(Falls Church),那是一个人口不到1.5万的小镇。

苏梅距离能申请谷歌开发者专家称号还有4年时间,但她已经能在虚拟会议中和Flutter团队的高层管理人员交流了。艾拉还有7年才能申请这个称号,但她表达想法的时候就像个成年人一样,只有她的声音和视频能透露出她的年龄。
我也是11岁就开始编程了,而且我从18岁之前就开始浪费时间了。她们做得可比我好多了,你们也可以的!
绿卡相关
如果你来这里是想了解通过杰出人才项目申请绿卡的信息,我现在还没办法跟你说太多。我的申请8天前刚获批,还得再过几个月走完手续、等一等,才能拿到实际的绿卡。
订阅我的频道,关注我的电报(Telegram)频道:ainkin_com
我会在几个月后,等所有流程都走完了,把几乎整个申请材料的内容都发布在上面,而且你也不会错过我的任何故事了。 
这篇文章里我分享了很多自己的经历、想法以及给大家的建议,希望能对你们有所帮助呀。生活也好,职业发展也罢,总是充满了各种选择和挑战,我们常常会在不知不觉中走了弯路或者错过了一些好机会,但只要能意识到这些,并且愿意做出改变、积极行动起来,什么时候都不算晚呢。
也许你们看了我的这些内容后,会觉得有些地方和自己的情况很相似,那不妨试着按照我说的方法去做,看看能不能让自己的生活或者工作变得更好一些。要是你们有不一样的看法或者有自己独特的经验,也欢迎分享出来呀,毕竟大家相互交流、相互学习,才能一起进步嘛。
再次感谢大家花时间阅读这篇长文,祝愿你们都能在自己选择的道路上不断收获,实现自己的目标哦。

点个“在看”不失联
最新热门文章推荐:
开发者的福音:10款超棒工具让你的工作效率翻倍,告别加班熬夜的痛苦!
十亿行数据挑战:python申请出战
十亿行数据挑战:go申请出战(从15分到5秒)
十亿行数据挑战:C++如何快速高效地处理海量数据?
印度裔科学家AshishVaswani的Transformer模型为何让中国AI学者刮目相看?
传统爬虫 vs AI爬虫:为什么AI能轻松应对网站结构变化,自动理解并适应不同网页内容?
训练Transformer模型:预测股票价格(教程与代码样本)
国外C++大佬分享:多年编码后发现的 8 个 C++ 性能技巧
从美国到中国:入选AI2000榜单最顶尖学者的Trevor Darrell
参考文献:《dvice to my younger self and you after 20 years in programming》
到顶部