原文链接:https://medium.com/dev-publicity/advice-to-my-younger-self-and-you-after-20-years-in-programming-a3a2ccc7a942
未经许可,禁止转载!
间隔我正式开始编程的事情已经由去二十年了。在这些年里,我有以下收成:

得到了科学领域“卓越能力”的绿卡申请批准
成为了Google的开拓者专家。
成为了IEEE的高等会员。
担当过一家拥有100名员工的公司的首席运营官。
我编写的一段代码的下载次数达1.35亿次。
两次面向2000人的不雅观众揭橥演讲。
根据国家电视台的评比,我是俄罗斯最老实的人。
然而,我也有很多缺憾,而且这期间花费的韶光太长。我认为,如果我早点运用我学习到的态度、原则和优先事变,就可以在5年内迅速达到奇迹上的大部分目标。如果你的职业生涯刚刚起步,这篇文章可以为你节省15年的韶光。想象一下,如果我在23岁(而不是如今的38岁)就拥有如上所有的造诣(除了IEEE,须要10年韶光)。
在本文的第一部分中,我将简要先容我的职业生涯。在第二部分中,我将详细先容我认为拥有最大影响力的每一条建议。
第一部分:2003年~2023年的职业发展
2003年12月22日,我迟迟无法入睡,于是决定探求一些域名。我检讨了一些溘然想到的域名,创造了GetSoft.ru,于是我将它买了下来。
我能用这个域名干点什么呢?我想着。末了,我决定我可以构建一个软件市场。
当时,我成为一名业余开拓者已经7年了(从11岁开始)。我制作了《俄罗斯方块》、《炸弹人》、《坦克大战》等游戏的克隆版本,并把它们上传到我的网站,然后将链接放到当时的许多初创市场。当时的那些软件市场确实不太方便,而我知道自己能做一个更好的。
我学习了PHP,不过只是由于当时互联网上的大多数URL都以“.php”结尾。
2004年3月4日,我推出了GetSoft.ru。
我的初版业务网站(经由Google翻译)
接着,我编写了一个脚本,解析了一个竞争对手网站的内容,并发送了类似于下面的个性化垃圾邮件:
你好,某某某。我们推出了一个新的软件市场。请将您的程序(标题1,标题2,标题3...)添加到个中!
这一招见效了,带来了一些初始内容,吸引了搜索流量,进而吸引了更多的供应商:
这个网站让我得到了在Telma(如今改名为Harman Connected Services)演习的机会。这家公司坐落于俄罗斯下诺夫哥罗德,与我在同一所城市,由于为摩托罗拉手机制作固件而小有名气。我在那里事情了一年就离职了,由于我认为自己很聪明,有更好的机会,而且当时我通过出售广告赚了很多钱。
这笔收入让我变得
我没有想出拯救自己的网站的操持,于是,我开始以自由职业者的身份为他人制作企业网站。我曾考虑过成立一家代理机构。
2011年,我偏离了编程方向。我结识了一位非常了不起的老师。在他的帮助下,我开始讲课,讲的都是一些自己的兴趣爱好,例如拍照和摄像,一贯持续到2013年。后来,他鼓励我投放公寓装修广告,然后将这些潜在客户卖给装修工人。虽然小有所成,但很有限。后来,他聘请我教授别人如何获取订单并售出,这份事情一贯持续到了2014年中期。
后来,他又聘请我担当他的另一家教诲公司的学习材料制作主管,后来又提升我为CTO和COO。我为他搭建了所有的IT根本举动步伐,并从零开始制作了学习管理系统。
顶峰期间,我们有100多名老师,2500多逻辑学生,以及100多家生动的同盟营销互助伙伴。那段韶光的收入增长了四倍,2015年的利润为274,000美元,是俄罗斯均匀人为的600倍。
2016年,他重新方案了管理和薪酬,而我辞职了,并写了一本关于如何做好事情以及如何升职的书(目前仅有俄文版)。
后来,我再次开始从事自由职业,由于我一贯有一个梦想,那便是经营自己的公司,而这又霸占了我多年的韶光。当时,企业网站的市场紧缩,大略的无代码做事占主导地位。我制作了自己的CRM,但很难卖出去,由于不适宜市场。由于个人的自傲心作祟,我无法接管普通事情。
时至2019年,我终于意识到由于没有在大公司事情的经历,让我有很多欠缺。于是,我搬到了莫斯科,并在Calltouch找到了一份事情,这是俄罗斯一流的电话跟踪和营销剖析平台。2020年秋日,我辞职,再次开始创业。
我的这家创业公司须要最便宜的移动以及Web前端,于是我决定学习Flutter。我不想摧残浪费蹂躏自己的积蓄,适值我的一位朋友正在利用Flutter,我就在他那里找了一份兼职事情。那段韶光里,我停息了自己的创业公司,为他事情。与此同时,我开始写博客。2022年2月,战役导致我们的客户破产。
我逃到了格鲁吉亚(一个欧洲国家),在Akvelon找到了一份事情,这是一家外包软件供应商。而这成为了我人生的迁移转变点。这家公司为Apache创建了一些有名的开源项目,通过他们,我结识了一些谷歌工程师。
我在Akvelon事情了一年,由于个人的事情经历以及写作,我得到Google开拓者专家的头衔。
当时正是搬到发达国家的好机会。我讨厌成为一名没有居留容许的永久游客,由于身份问题,我总是被人视为失落败者。
美国一贯是我的紧张目标。我曾经梦想赚到足够多的钱,拿到投资移民的绿卡,但现在我理解到EB-1A精彩能力操持,而且创造它是可行的。我决定进一步提升个人资料,达到他们的哀求。
以是我加入了IEEE,并迅速晋升为高等会员。
后来,我又申请成为CODiE奖的评审,并得到了批准。
第二部分:我的建议
1. 挑选最好的地方,并建立环球网络我就读的大学间隔我家步辇儿只需15分钟。那是2002年俄罗斯的思维办法:一个小而封闭的天下。在我的同学之中,只有一个人去了莫斯科读书,更不用说出国留学了。当时,身边没有人做榜样,让我看到一个人可以走得更远,而我也没有互联网,没办法理解其他渠道。
反不雅观我的Google主管,比我年轻4岁,来自墨西哥,在韩国上学。然后加入了当地的Google,随后又搬到了美国。想象一下,高中毕业仅6年,你就能达到这个高度。
这个年事段是人生最美好的光阴。做好充分的准备,你可以去任何梦想的大学。之后难度会逐渐增加。
一贯以来,我都相信这个天下上有更好的地方,我迟早会到达那里。在过去的20年里,那里发生了很多事情,而我并未参与个中。
我有一位朋友,比我小4岁,在我刚刚在家乡读完四年大学时,他就被一所美国大学录取。震荡之余,我意识到一个事实:机会一贯都在等着我。
即便不出国,你也可以建立环球专业人士关系网。我身边的大多数人都如井底之蛙。虽然他们也建立了LinkedIn档案,也发了很多英语帖子,但只有俄罗斯的招聘职员与他们联系。
这是由于仅仅改变措辞还不足。许多地方社区都短缺国际协会和会议。如果你知道某个更为成功的社区,请立即加入,然后参与写作与演讲。对我来说,Google开拓者专家和IEEE便是很好的例子,环球有成千上万的社区在等待你。呆在井底是有风险的。
2. 创业
我的第一个商业项目便是前面提到的软件市场。虽然有一个很好的开头,但后来我面临很多问题,由于我没有将其视为一项业务。
第一个问题是,我希望这个项目是“公正的”,因此我谢绝了除广告之外的任何变现办法。我谢绝了所有付费推广,由于我认为学生程序员和已建立的供应商在平台上该当平等。这导致我的开拓资源不敷,而竞争却在不断加剧。以是,我建议你积极捉住商机。这个天下上所有“免费”的东西都依赖于某个人的成功和不断增长的业务根本。你免费供应的每一件东西都必须是某个可靠的业务流程的副产品,并且须要拥有足够明确的光明未来。否则,用自己的资源年夜方解囊的慈善行为将毁掉你,侵害你周围的天下以及你试图帮助的人。
第二个问题是资源谩骂。有了钱,我就什么都不想干,以是我什么都没有干。虽然我为迎合自己的审美轻微改进了一下我的网站,但从未像最初的几个月那样全力以赴。这实在是打工人的思维,而不是贩子的思维。我不知道如何战胜资源谩骂。我能见告你的最好建议是,无论你依赖什么,总有一天会崩塌。仔细想想,那时你会剩下什么。
3. 获牟利润
对付大多数程序员而言,最大的问题在于,他们并不会从经济角度考虑问题。
编程是一项高创造性的活动,须要绝对的安全性,个人的不愿定性和恐怖会导致你结束不前。这便是为什么程序员大多有固定人为,与市场、发卖、配送、做事等其他职位不同,这些职位的薪资很大一部分来自佣金。
程序员不仅不担心产品是否热销,乃至不担心是否按时完成任务。人们普遍的意见是,相较于程序员由于固定薪水而变
截止日期确实会给编程事情带来压力,但这只是一种假想,我从未见过任何人因未能定期完成事情而被开除,或者受到处分,特殊是在一些国家开除并不是大略的事情。纵然是不称职的程序员也会被安排一些呆板的任务,只不过不涨人为罢了,而且他们很快就会辞职,对双方都有好处。
程序员拥有固定薪水的缘故原由还有两个。首先,大型项目很难提出一个合理的利润打算公式,既担保公正,又能够快速反馈以影响到个人行为。IT行业常见的自然利润反馈循环至少须要几个月的韶光。
另一个缘故原由是让程序员理解软件公司的经济学是有风险的,由于去掉这唯一的障碍,他们不仅会离职,而且还会创立竞争性企业。如果他们乐意,并且性情外向,他们有这类举动的概率远高于市场、发卖、支持等赞助职员,由于他们拥有最稀缺、最有代价的技能和专业知识。
虽然薪水固定对生理康健有好处,但不利于我们培养判断什么对公司业务发展有利的直觉。管理层可能会口头阐明公司的紧张业务,但这远不如佣金来得有效。
程序员抱怨他们希望花更多韶光重构,而不是构建新功能。或者,他们不明白迅速推出测试版的缘故原由,想要再多几个月的韶光来完善事情。或者,他们向管理层施加压力,哀求扩展最小化可行产品,添加他们喜好的功能。或者,他们希望利用个人喜好的技能,只管不是最佳选择。
后果是:
我们这些人很难创业,由于我们不知道如何精确地排列各项事情的优先顺序,须要在实践中学习,并且会丢失大量资金。
很难找到以业务为导向的程序员,不须要人监管也能关心业务。
以商业思维创业可以得到上风。目前没有任何的干系教诲,但我知道有两种方法可以供应帮助。
佣金
如果你的薪资与利润成正比,你会彻底改变自己的行为。
作为程序员,你可以在为小企业做小型项目时获取相应的佣金。举个例子,为某人制作一个谈天机器人作为额外的发卖渠道,对方赞许给你一些分红。
任何按佣金计酬的非编程事情也是有帮助的。发卖员常日具有良好的商业直觉,如果他们变成程序员,也会保留这种直觉。
自由职业彷佛也有助于培养对利润的觉得,由于你的行为会迅速得到反馈。完成一个固定价格的订单的速率越快,就可以越快得到一个新的订单。然而,这很少与业务需求有关,由于你只是学会以大略的办法完成每个任务,而不是从业务计策的角度决定优先处理哪些任务。
雇佣某人
用自己的钱创办一家公司可以为你打开一个全新的天下。别人眼中一个不主要的小功能,在你看来可能是500美元或5000美元的本钱,你会残酷无情地将其搁置,直到进入市场并有资金支持。
在开始有收入后,你会创造成百上千被搁置的功能,你须要实现那些现阶段能够最大程度推动收入增长的功能。你最喜好的功能可能并不在列表的最上端。你必须学会忍耐,而且还要向员工阐明为什么你没有那么多钱让他们花两个小时做他们想做的事情。
以能够让项目自大盈亏,并在这一约束下优化其增长的办法来管理和调度项目,这是这个世上最厉害的本事。
尽早学会这一点,可以将为你节省几十年的功夫。
4. 打仗仍处于早期阶段的技能,及时跳出走向衰退的技能
人工智能我打仗神经网络已经几十年了。18年前,我上过一门干系的课程,做了一个大略的神经网络。当时没有TensorFlow或其他产品,我不得不手工创建一个感知器的C++类,以及在这之上的统统。但没过多久,我就把这些知识抛到了脑后,我只知道我们可以编写文本编辑器、打算器、电子邮件客户端,现在还可以制作一些神经网络。对我来说,人工智能只是个中一项技能,没有特殊之处。
实在,当时人们普遍认为未来AI将主导全体行业。然而,在课程结束之际,我并没有将那些知识和我的新技能与将来我从事的事情联系起来。
三年后,我碰着了一次机会,有人约请我参与一个能够从视频流中检测杂货盗窃的系统,那是在2008年!
我谢绝了,由于我想自己创业。
现如今在创业时,我须要一种能够检测代码片段利用了什么算法的AI。虽然比行业最尖真个技能要大略得多,但我理解起来依然有困难,而且我有拖延症。
移动运用
还有一项技能是移动运用。17年前我曾上过一门关于移动开拓的课程。当时是Java Mobile Edition,没有针对特定操作系统的编码事情,但令人惊异的是你可以在一个小到能放入口袋里的设备上运行代码。但我用JavaME做了个俄罗斯方块,放到网上,然后就抛到脑后了。
14年后,统统都变成了移动运用。我开始学习Flutter,事先没有任何Android和iOS开拓的知识。大多数Flutter的招聘都哀求原生移动的开拓履历,并将Flutter视为一种花哨的工具,以是我不太适宜。
我有一位朋友是一家“专注于移动开拓12年”的事情室的技能卖力人。他们的客户包括肯德基、汉堡王、SAP和Mars。我本可以创办这样的事情室,但我没有。
PHP
相反,我在20年前创建了一家PHP干系的公司。在3个月内启动创业公司,这并没有错,但我在那里勾留了太永劫光。
4年前,当我决定找一份“真正的事情”,而不是自由职业时,我意识到了这一点。PHP的事情很无聊。由于某种缘故原由,大公司新项目的后端险些都利用了其他技能。
当时,我被现实狠狠打脸。我曾亲眼目睹了其他技能的兴起:Node.js,Go等等。但我一贯呆在舒适圈内,我的客户认为PHP是最佳办理方案,而且缘故原由有很多。然而,时移势易,如今PHP的市场正在萎缩。
如果你没有看出某个技能即将消亡的早期迹象,就不得不等到更困难的迹象涌现,付出更高的代价。小公司网站的市场被无代码网站做事扼杀。接着,大一点的公司也转身离开了。
技能不会无缘无端被抛弃。缘故原由是不得当。如果你说你不看重盛行度,只要能达到你的目的即可,还请三思。其他更适宜行业哀求的技能,很可能也更适宜你的需求。
对付PHP来说,问题在于标准库稠浊了你可以想象的所有风格,类型不明确,配置困难。在末了一份PHP的事情中,我花了几周的韶光修复和配置linter,而对付Go、Dart或TypeScript之类的编译型措辞来说,这是开箱即用的功能。
认清生命周期阶段
我们很难判断某个新兴的技能只是短暂的辉煌,还是会主导全体领域。然而,这个问题的答案在某个韶光会变得十分清楚。如果你还说没瞥见,那么便是自欺欺人。旧技能的消亡亦是如此。
空想情形下,你该当在前景明朗的时候进行切换。至少该当在意识到你在自欺欺人时进行切换。
主动质疑
你必须积极主动。主动质疑:“这仍是精确的选择吗?”
你周围的人可能并不关心你是否抛弃某项技能。
店主须要你掩护现有的技能栈。同事须要你的赞许才能安心地切换技能栈。如果你顺其自然,终极可能会被迫去利用一些已经走上末路却仍在假装自己还活着的技能,即便你有机会切换,也将是一段糟糕的经历。
看看StackOverflow的薪水统计表:
他们为Objective-C支付更高的薪水是为了阻挡你转向Swift。阻挡你从Perl转成Python时也涌现了同样的情形。
补充解释
不要由于某项技能很盛行就去学,这样你不会有学习的激情。在选择发展方向时,背后必须有更好的缘故原由。我喜好系统的整体设计,包括后端、前端、根本架构以及许多其他部分。因此,我会闇练节制一系列系统设计的技能。
如果我在2005年完备投身于人工智能,或者在2006年完备投身于移动运用,就会错过这些技能。那么,我将错过在事情中体验这些技能的机会。我选择技能的根据是个人的习气,而不是对未来的远见。这是我后悔的地方。
5. 想一想下一个淘汰的技能
这条建议谈论的是技能的淘汰,只不过是从更高层面。不断呈现和消亡的不仅是技能,还有利用这些技能的“模式”。
我认为,全体技能的发展不是一部创造史,而是消亡史。
网站的涌现不是由于它们很酷,而是由于必须淘汰纸质目录。
GetSoft.ru之类的市场涌现不是由于我们喜好查找屏幕保护程序,并在早期论坛上谈天,而是为了消灭去店里购买CD的需求。
平台商店导致定制市场没落,由于人们希望在获取运用时省略记住并键入“getsoft.ru”的多余步骤。
统统都变成移动不是由于手机有多好,而是由于打算机的体积过大,是一种包袱。
无代码网站的涌现是由于从想法变成网站的过程太漫长。
如今Flutter很受欢迎,也是我的紧张业务。目前的利用模型是公司雇佣程序员或外包供应商,创建、发布和掩护运用程序。这是值得投资的模型吗?
我们听到越来越多有关低代码和无代码办理方案的,例如FlutterFlow和AppSheet。一次有时的机会,我得知我的两个朋友正在独立开拓一个“基于Flutter的WordPress”,这样既能够淘汰常规的小型网站,又能更轻松地天生Flutter运用。
纵然这项技能尚未消亡,你也有可能处于详细利用的某个已去世的分支上。这并不虞味着,你会像我当初淹没在网站代理的红海中一样,淹没在Flutter代理的红海中。当年一些人通过网站取得了巨大的成功,而一些人将在未来几年通过手动编写Flutter运用而取得巨大的成功。
只不过你可能不再是乘风破浪的人,而是在努力向前游。你可能在摧残浪费蹂躏本可以用来欢迎下一个浪潮的韶光。
仔细想一想你的客户和用户所面临的包袱。你必须清楚某些产品的涌现会肃清这一包袱。而这最好是你供应的产品。
6. 开展代价链中的业务
2002年,我考试测验制作业余电脑游戏,当时的竞争非常激烈。每天通过各个市场访问我的网站的人只有大约10个,将其变成一项业务会非常困难。于是,我制作了自己的软件市场,第一年日均访客就达到了1100名。
这是代价链中更高的一步。我无须再与其他人竞争,而是将他们的竞争转化为我的上风。我可以供应所有可选择的软件。
很快,我理解到还有一个更高的位置。有个人创建了SoftSearch.ru,这是一个软件市场的搜索引擎。时至2004年,软件市场已达数百个,他充分利用这些软件市场,并真正拥有了每一款软件。我不知道他的收入是多少,但当时市场正在变革,很多被淘汰,他仍旧是受益方。2014年,我关闭了GetSoft.ru,而他直到2019年才关闭了SoftSearch.ru。
这是一种模式。这种模式的两个极度的例子是Google和Uber。Google没有与其他网站在内容上竞争,而是更上一层楼,为全体网络建立了搜索引擎,并受益于这些网站。Uber利用了司机之间的竞争,而不是在相同的领域与他们竞赛。
你不一定要成为自己行业中的Google或Uber。在大多数情形下,业务及其整合须要截然不同的技能。市场是相对大略的软件,但个中包含的宝藏可能难度赶过了几个数量级。当一款软件售出时,作者得到的收入和认可度比市场所有者更多。你可能更善于自己的业务,而不是组织全体领域。但你该当意识到这种模式。
还有一个居于代价链中更高位置的例子是成为西席。在探求自由职业者时,如果你没有韶光反复试错,一种聪明的办法是找到该领域的一位西席(他有很多成功的学生),并雇佣这位西席来完成事情。虽然比普通自由职业者要贵,但成功率更高。这便是为什么在一个衰落的市场中,教诲者是末了失落业的人。
我的一位店主就在教人如何从事大众利益和做事的经营。后来,他转而教人如何成为自己喜好的领域的老师。后者为他带来了4倍的收入,由于他在教诲链中走向了更高的一步。
另一个处于代价链中更高位置的例子是为领域制订标准、行为准则或奖项。这会瞬间将你提升到其他人之上。我认为在成为高手之前,你不必勉强,但要意识到在某个时候,这些方法可能是你乃至全体行业最好的发展方向。
7. 选择科学而非运用
我是一个喜好实际行动的人,不太适宜学术界。我从事的是能产生实际成果的事情,虽然基于科学和知识,但我不研究新的算法、理论或原则。我不做研究。我做自己的业务,然后等着有人为我供应新的API,让我能够利用新的好东西。我希望自己更靠近他们的位置。
实际上,这是在得到学士学位后你要做的一个重大选择。如果选择攻读硕士学位,那么就要从事科学研究。编写有用的产品换不来硕士学位,你须要进行自己的研究或发明,为天下供应新的思路。
我没有攻读硕士学位。在我们国家,工程学位毕业后可以选择工程学位,只需在得到学士学位后进行1.5年的运用性学习,无需两年的研究性学习。以是,我就选择了这个,但我后悔了。
15年前,进入市场是比较随意马虎的。只要把事情做好,就能够跻身行业前列。想一想Facebook。他们并没有在其他人的成果之上创新,唯一不同的是,他们将这款软件运用到了迅速发展的领域。
而今是科学的时期。架构出色和代码清晰的上风已经减弱,由于默认情形下越来越多的人都能做到这一点。这些在战术上很主要,但单靠它们无法独自崭露锋芒。
与之相对,具备一些“邪术”元素的人很快就能取获胜利。一个拥有AI预测或生成功能背景的做事问世,就会导致其他上百个现有的做事消逝。
Python的崛起是一个很好的例证。这门措辞之以是受欢迎,紧张是由于它有丰富的数学库。
对科学的赞颂并非新鲜事。40年前,科学家们忙于数据库索引和搜索算法。有的程序员可能希望自己发明了一个好算法,并拥有市场上最好的数据库管理系统。但光阴流逝,这些系统成为了程序员构建运用的根本。神经模型也将经历同样的过程。如果你没有参与它们的开拓,那只能利用现成的模型来简化更高层次的事情。
不同的是,40年前的科学威胁到了图书馆员和电话操作员的事情。而现在,它正在减少剖析师、设计师和助手的事情。程序员将是下一个受影响的群体。他们不会全部失落业,但是程序员与科学家的比例正在稳步低落。
而这种趋势将连续。科学离市场更近了。很快,消费者就会直接购买科学。他们将利用瘦客户端,这类产品没有作者,只有一位运用程序员。你听说过为ChatGPT制作前真个人吗?没有,由于他们可以轻易被取代,而且得到的报酬也非常少。
此外,如果你在考虑下一个淘汰的技能,科学家是最早得到信息的人。在探求下一个淘汰技能的过程中,选择一个科学职业,然后利用你的成果首创革命性的奇迹。
一些淘汰源于实践,比如社交网络。它们只是将旧技能运用于新领域。但是随着韶光的推移,在不借助科学的情形下减轻人类的包袱变得越来越困难。
我觉得自己偏运用,但从不会止步不前。我希望自己攻读硕士学位,从事几年的研究,然后再决定哪个更适宜我。立足于科学,如果你乐意随时可以降级去做产品。反之则较为困难。
8. 不要仅投资源身
回顾我的全体人生,我一贯认为程序员的需求飞腾,而且薪资很高。因此,我从未以为有必要存钱。结果,38岁的时候,我的银行卡里只有2万美元,一辆开了12年的车,以及公寓的四分之一(但我已经离开了那个国家)。
与此同时,我的一些年轻的朋友,虽然收入不高,但他们已经还清了大部分房贷。
20年的光阴须臾即逝,惊异之余,我意识到过去一贯生活在“未来”,却从未将其变为现实。
你该当看重理财。参加投资课程,学习投资,买屋子。
由于得到了Google开拓者专家的认证,我备受青睐,成为了团队领导和CTO。如果不是这个认证,相信大多数店主都会选择一个25岁的人,而不是一个38岁的人,更不用说10年后48岁的我了。
我的上一份事情,老板主动哀求解约,是由于他们没有适宜我的技能的事情了。他们提前29天关照的我。全体团队只留下了一个年轻人来掩护现有的软件。我不知道他们的情由是什么。部分缘故原由可能是,高等程序员对掩护感到厌倦,随时可能会辞职。但事实仍旧是,只有最年轻的那个人保住了事情。
大多数和我年事相仿的开拓职员没有这样的竞争上风,以是你必须做最坏的打算。随着人工智能的发展,没有人是安全的。因此,永久不要认为自己是分外的人。你依赖的任何东西都可能在某一天消亡。届时,你可不肯望自己口袋里只有2万美元。
更糟糕的是,过了35岁,这个天下将你视为一个没有财产和金钱的托钵人。一年前,我申请澳大利亚签证被拒,缘故原由是我没有展现出赢利和存钱的习气,也没有任何房产,以是他们担心我会滞留。
我很震荡,由于20多岁的时候,我险些可以绝不费力地得到美国、法国、荷兰等国的签证,而那时我拥有的金钱和财产更少。
年轻的时候,人们对你充满了希望,所有的大门都会为你洞开,这种抱负粉饰了天下的另一壁:如果有门,那是为了将某些人关在门外。
而“某些人”便是年近40的所有人,我们不再“不符合社会标准”。就冲着这一点,我们也要做到符合社会标准。
9. 在IT行业的领军企业找事情
我做了8年的自由职业,到头来什么都没留下。我为当地最有名的的一家牙科诊所制作了一个网站。那又怎么样呢?
我乃至不能向任何人展示这个网站,由于两年后他们又制作了一个更新的网站。我有大约40个类似的案例。
在行业的领军企业里事情,常日拿不到太高的薪资,但你可以快速发展。我知道有人刚开始的人为也便是均匀数,六年后翻了10倍。而且他们还有很多可以讲述的资历,可以为他们争取到任何事情机会。
自由职业的难度和有趣程度无法与精良的企业比较。你不过是用人生最美好的光阴换取金钱而已。
多么希望我能早点明白这一点。我看到过很多早期的文章,都在赞赏自由职业带来的自由,以是我从未对这个想法产生过质疑。事实上,能够带给你自由,而且不会让你变成无所作为的流浪汉的唯一办法是建立自己的业务,但这又是其余一个话题了。
在一家小公司事情可能比自由职业有趣一点,由于你可以得到一些管理和市场的履历,但严格来说,这仍旧是一份平庸的事情。举个例子,我曾是一家教诲公司的CTO。我为他们制作了一个CRM和一个LMS,利用的技能已经盛行了十年之久。虽然那家公司发展良好,那又怎么样呢?无论业务的性子如何,对付其他人来说,这些系统只不过是PHP + MySQL+CRUD。
大公司须要很多技能:
分布式系统的架构。
高负载。
事务,处理竞争条件,并行打算。
要求优化,性能剖析。
自动化测试以及CI/CD。
精确的重构比例,应对一些遗留代码。
修正和支配代码时须非常小心。
在小公司的IT部门事情,以上技能你统统打仗不到。但如果你乐意,可以很轻松地从大公司的专家降级到小公司的某个职位。
这种技能哀求上的不对称性决定了你该当趁着还有机会探求一份在行业领军企业里事情的机会。此外,你还能得到大把吹嘘的资历。
另一个关键缘故原由是,从事自由职业或在小公司事情,你常日都是技能水平最高的那个程序员,以是你只能通过互联网学习。但从同事那里学习比阅读和不雅观看视频学习的效果更好。
这种学习渗透到了空气中。事情时,你能收到大量旗子暗记,虽然把稳不到,但仍旧会被你接管,成为你的一部分。如果你在家里从事自由职业,表面只有狗叫声,对你毫无意义。但如果你在办公室,周围都是闇练的专业职员,有人正在谈论你从未想过的问题的办理方案,这就变成了你免费学习的机会,乃至不须要你主动哀求。
如果你是周围技能水平最高的人,那么你该当逃离这个地方。
好是大公司常日会招聘演习生,然后逐步培养。例如,我兄弟在读大学期间在英特尔事情了两年。这无疑成了24岁的简历上浓墨重彩的一笔。离开学校,就很难得到这样的机会了。
10. 承担关键任务
仅仅进入大公司事情还不足。你有很多选择,看似都差不多,但从个人长期发展的角度来看,就完备不同了。
举个例子,EB-1A绿卡有一个标准哀求你承担关键角色,详细定义是根据组织的度量标准有着重大影响。纵然你从事的是最尖真个事情,须要节制天下上所有的技能,别人也不一定会将其视为“关键”,由于影响力有可能是间接的,或者可能有太多像你这样的人,而你个人的贡献度很难评估。
另一方面,你乃至可以在完备不涉足任何当代技能的情形下承担关键任务。例如,我曾经有幸卖力一家公司的身份验证系统。那只是一些PHP代码,但我创造并修复了一些关键的漏洞。我还帮助他们在CI中引入了静态剖析,减少了意外停机韶光。很有可能是这两者的帮助,我才达到了EB-1A操持的标准(我说“很有可能”,是由于我第一次申请就通过了,但没有人见告我他们是如何统计分数的,但我认为这是强有力的一点)。
当然,你不须要在“关键任务”和“尖端技能”之间进行选择,你可以两者兼之。选择得当的公司和职位,然后花点韶光深耕,就可以同时知足这两个考验标准。
在考虑一个职位时,想一想是否可以轻易向生手证明你为项目的成功做出了关键性的贡献,即便你并没有任何正式的领导职务。这可以让你的简历达到一个完备不同的维度,而不仅仅是技能上的卓越。
我只有4年的韶光在做在我看来是关键的任务。这意味着,别的16年的韶光都白白摧残浪费蹂躏掉了,对我的简历没有本色性的提升,我本可以提升5倍。
大多数时候,只有做好准备的人才能捉住关键角色的机会。CEO或CTO会直接找你,就像我经历过的那样。但在那之前,你仍旧可以积极地探求这样的机会。
如果我是一名低级程序员,在探求关键角色时,我希望成为身份验证、加密、高负载系统DevOps或查询优化等领域的助手。这些职位哀求你干事滴水不漏,而不是丰富的履历。常日,如果一个职位的缺点本钱很高,而且无法轻易找借口脱身,那便是我要探求的职位。
11. 《致加西亚的一封信》
美国作家艾尔伯特·哈伯德的著作《致加西亚的一封信》是一本很了不起的商业书本。篇幅很短,只需几分钟就能读完。
在我给别人分配任务时,常日他们都会问太多问题。如果是一周的事情,我常日须要花大约两个小时来阐明那些我认为理应5分钟就能明确的事情。
如果你一起坚持读到这里,我相信不须要详细展开解释,你已经心领神会了。
另一方面,有些热血青年不问是非黑白就开干,结果每每会做错事。不过这种情形较为罕见,我也不太担心。
我也曾是个中之一。有一次,我须要创建一个端点,以便前端可以显示数据库中是否存在某些记录。我猜想他们可能会须要记录数,以是我返回了记录数。如果他们真的须要,就可以直策应用了。于是,我写了一条非常大略的语句:
CTO在看我的办理方案后非常生气。他哀求我统计一下耗时。结果为不到1毫秒,我看不出有什么问题。然后,他要我统计下面这条语句的耗时:
结果快了20倍。
我错了吗?以前我在小企业事情,运用程序的负载都很低,为将来快速改进而做好准备是最主要的技能之一,这便是为什么我问都没问就做了这些事情的缘故原由。我缺少的是在高负载的系统和环境中事情的履历。
在碰着问题时,你须要判断这个问题是出于某种习气,还是有必要。然后,根据你的判断决定是放弃,还是问一问。这须要对大环境的深刻理解,包括业务需求、预算、目标、路线图、架构及其限定、待办事项列表、外部依赖、全体代码库的历史等等。
如果你不愿定如何完成事情,最大略、最有效的方法是想一想哪些事情须要优先处理。
然后从中得出办理方案。就上面的SQL语句而言,如果我想清楚这一点,可能就不会扫描全体表了。
其次,你须要意识到平衡,根据上述所有的这些项目成分,更好地判断问还是不问。
提问代表积极主动,不去打扰别人代表你能胜任这个职位,二者之间的平衡是你晋升的关键成分之一。
12. 为主要的开源项目做贡献
开源贡献可以为你的简历、口试、会员操持、奖项,乃至人才移民操持加分。
我最受欢迎的开源贡献是PHPStan中的一个功能,PHPStan是最盛行的PHP静态代码剖析器。我的这段代码下载次数超过了1.35亿次。
这很可能是我通过EB-1A操持的一个标准“为领域做出重大科学贡献”的缘故原由之一,也为我得到绿卡贡献了三分之一的力量。
为了贡献这段代码,我不得不换成兼职事情,由于当时我34岁,已没有精力只利用业余韶光写代码。20多岁的时候,我们的韶光非常自由,而且精力无限,以是请善加利用。
我还有两个最厉害但不太受欢迎的贡献是,为两个Apache运用(Beam Playground、Tour of Beam)编写的前端以及一款Flutter的代码编辑器。
开源贡献加上写作和演讲,为我赢得了Google开拓者专家的头衔。从该操持的口试来看,我觉得开源的贡献比写作和演讲更为主要,但我也不十分确定。
如果你选择了得当的项目,开源贡献就像是在早期购买了精确的股票。之后,你什么都不用做,只需静不雅观下载数量不断增加,直到数百万。就像股票一样,错过这样的机会,到了一定年事,你将不再“符合社会标准”。然而,与股票不同,纵然项目失落败,开源贡献也不会低落,评判标准依然是盛行度的最高点。
但是,与其他事情一样,为了做贡献而做贡献会很无聊。我为开源做的这些贡献都是由于我在事情中有这类的须要。因此,你该当选择一份事情,而开源贡献只是顺手而已,平衡的窍门是:无需额外的努力就能换来不错的结果。
我们总是渴望自己的软件包成为热门,这样我们就能成为顶级开源代码库的所有者。但大多数人都没有这么幸运。我最好的Flutter软件包只能排进前16%,很令民气碎。
别把所有的鸡蛋都放在自己的篮子里,你可以去帮助那些有名的人。这可以与自己的项目不火的风险形成对冲。
纵不雅观我的全体职业生涯,只有不到7%的韶光在专职从事开源事情,但希望我能做出更多贡献。据我所知,有些Google开拓者专家80%的职业生涯都在从事开源事情。你也有这样的机会,只需逐步探求。
13. 走向"大众
20年前,是否成为"大众人物还是个人选择。当时还没有社交网络,互联网也没有视频,为了得到有名度,人们必须为专业杂志撰稿。这须要付出很多努力,以是对付专业人士来说,保持低调也未尝不可。找事情时,你只需发送自己的简历。而对方也别无选择,只能相信你,并约请你参加口试。
如今,这种方法已经弗成了。成为"大众年夜世人物险些不费吹灰之力,保持低调只能解释你畏惧、身无所长或者人生存划有问题。纵然是内向的人,至少也该当写一些文章,以免引起疑惑。如果你溘然涌如今社交网络上,有50个朋友,却没有任何作品,也没有关于你的公开记录,那么就很难找到一份像样的事情。
现如今每个人都是公开的,以是你该当积极走向"大众年夜众才能脱颖而出。你该当把自己取得的每一个造诣、每一个创造和每一个可重用的成果都记录下来。
保持沉默理应比向全天下表达自己更难。
多写作
我的第一篇技能文章揭橥于2004年9月29日。阅读次数为5千多次,我感到非常高兴。那时我是一名大三的学生,许多人已经在学习我的履历了。
由于某种缘故原由,我揭橥第二篇文章已时隔17年。
最近这两年,我才开始写博客,如今已有十万多次的浏览和几百个粉丝。粉丝的数量呈指数增长,由于这些数字越高越能吸引更多人。如果中间没有间隔17年,我现在可能已成为一名巨星。
下面是我的一些建议:
不要在代码审查和辅导会议中重复自己说过的话。相同的话,如果你说了两次,就该当花点韶光写下来并发布,然后将链接发送给他们。如果你没有写作的习气,就从这个最大略的方法开始吧。
在所有盛行的平台上发布文章。仅利用一个平台,有可能推举算法会改变。你花了多年韶光建立的粉丝群,肯定不肯望他们溘然看不到你的新文章了。许多平台都涌现过这样的情形,现在紧张用作文本的托管。在各个平台发布文章,就可以降落这种风险。
遵照“以作者为先”的原则。选择事情时,请检讨该公司是否支持这条原则,并帮忙宣扬你的社交账号。有些公司许可你在事情韶光内写作,乃至会支付额外的稿费,只管他们可能不许可你在文章结尾呼吁读者订阅你的个人账号。
将统统主要的知识都转化为文本,纵然是签证被拒。这样,你的在生活中就永久不会有丢失,由于即便碰着最差的情形,你也为此撰写了一篇文章。
写私人日记。刚开始的时候,可以非常大略,比如“我去了某地。我做了某事。”一年后,你会创造自己在不知不觉中写下了富有哲理的长篇笔墨。
制作视频
一样平常来讲,热门视频的粉丝数量是热门博客文章的10倍以上。这意味着,仅靠写作会无形中失落去很多。
我不善于制作视频。常日在正式录制之前至少须要完全地演习训练一次,但我讨厌演习训练。我讨厌在镜头面前演出,或者由于说话卡顿重新录制。我讨厌为了录屏提前准备,比如打开文件夹和选项卡等。我讨厌编辑视频,由于太耗韶光,而且我总是在事后创造还有许多须要改进。真希望自己能够早一点学会制作视频。
年轻时制作视频要随意马虎得多。由于你有大把的韶光,也不会碰着上述我讨厌的所有事情。以是无需理会我的抱怨。
2011年,我开始做YouTube频道,算是比较早,但后来我没有花太多韶光在上面。不雅观看次数超过10万,还算不错。不过,我的频道讲述的不是编程,而且其他干系的内容。
我参加过有关视频制作的课程,拍照方面的学习还算不错,制作了3个短片。
我乃至制作了一个关于如何拍摄视频的课程,个中包括不症结怕直播,如何设置相机支架、照明和麦克风,以及专业编辑等15个主题。
文本最大的上风在于你可以随时编辑,直到完美,而视频无法做到这一点。我在获悉绿卡申请结果之前就写下了本文,然后在拿到结果后又更新了相应的部分。视频却不能这样,但是在AI的帮助下,我们可以撰写视频脚本,然后渲染视频,觉得就像自己录制的一样。你的面部表情、屏幕、所有动作都将完美地放入视频,以是我上述所有抱怨的问题将不复存在。话虽如此,那些天生习气录制和发布视频的人会更有上风,由于他们思维更敏捷,而且具有推广视频的履历,以是尽快开始学习制作视频吧。
在活动中发言
我的童年和少年期间有口吃的问题,以是我会尽可能避免说话。其余,我彷佛还患有阿斯伯格综合征(社交与非言语交际障碍),因此我很难清晰地表达自己的想法。终年夜往后,普通人都具备表达自我的能力,而且他们都很有魅力,而我显得很迟缓(这是我善于写作的缘故原由之一,算是一种补偿)。
后来,我意识到我错过了很多良机,于是我决定改变。我不得不更加努力,才能得到其他人从一开始就享受并视为天经地义的东西。
以前,我很害怕讲话,如今却两次面向2千人讲话,只管是关于政治而不是编程(都是用俄语)。
这种经历很难忘,可以极大地解放自己。
现场演讲是生活和事情的全新维度。你会碰着平时永久不会碰着的人。此外,比较于视频,现场不雅观众对你的印象更为清晰和光鲜,你们之间可以建立更稳定的联系,你可以得到更多信赖。你更为真实,而真实的人更有说服力。
在会议上演讲还能让你收成各方面的赞誉:成为组织成员(Google开拓者专家,IEEE),移民操持加分等。随着韶光推移,你参加演讲的机会将越来越多。哪些人会被约请演讲?之前揭橥过演讲的人。
最大略的磨炼演讲的方法是成为大学的兼职老师,让人们认识你。在意识到须要改变自己之后,我就采纳了行动。我的一位朋友是老师,在跟教授确认后她赞许让我成为一个学期的代课老师。我就这样拿到了磨炼自己的机会。
如果你是某个职位的领导,或者是一名技能高手,就可以轻而易举地成为某次聚会的演讲者。你可以问问你上级在哪里演讲。我就问过我的上司,他感到很惊喜,并安排了我与其他两位大公司的员工共同开展了一次互换会,统共有40名不雅观众。
很多经理都以为程序员不喜好演讲,因此乃至都不会提这样的建议。与其等待别人恩赐,不如主动去讯问。
我很后悔当初没有捉住机会多多讲话。现在我是一名Google开拓者专家,每周都受邀参加国际会议,而且我终于有了空闲韶光,因此我将接管这些约请。
14. 保存统统
事情成果小时候,你可能不太关心自己的劳动成果。只有父母会为你保留童年期间的画作。
后来,你开始在意并考试测验保存过去的成果,为的是将来可能有须要,或者只是为了炫耀。
成年后,你会把稳到自己害怕失落去存档,彷佛它们已成为你的一部分。你会质疑为什么这些存档对你来说这么主要。你可能会战胜这种恐怖,在自己身上找到安全感。逐渐地,你不再那么关注你的存档。你可能不想保存一些弘大的文件或难以整理的东西。乃至可能会故意删除一些东西来解脱自己。
虽然这种态度代表更好的生理康健,但后来你意识到,保留过去的东西仍旧很有趣。
我的硬盘在2000年旁边破坏了,以是我无法展示15岁前制作的游戏。1998年,我利用QuickBASIC 4.5复刻了游戏《乓》,虽然对你来说没有太大意义,但我多么希望能在这里放一张截图。幸好我还有2001年利用Visual Basic 5复刻的《Digger》游戏,个中所有的宝石都是在3DS Max中渲染的:
在回顾过往20年的文章里,你可以展示自己早期的作品,它们是那么可爱。
反馈
更主要的须要保存下来的是客户、同事、上级给你的反馈。日后须要的时候,就很难获取了。由于他们可能会:
辞职,然后失落去了在文件上具名的权力。
忘却你的工为难刁难他们的代价。
变成名人,变得太忙。
变动所有联系办法。
离世。
举个例子,我在PHPStan中进行了一项改进。2020年的时候,这个库还很受欢迎。我以为如果日后须要向某人证明我的事情,看看PR就知道了,因此就没有获取更多的证据。
后来,在申请绿卡的时候,我必须向移民官证明我的贡献,但这位移民官不明白PR的含义,也不明白它的影响。即便你向他们阐明,也并非每位移民官都会努力去理解。有些人只看中威信人士签署的文件。有些人会探求接口来淘汰你。
因此,我讯问PHPStan的作者是否可以供应一封信,大略地解释我的事情的意义,但他说他太忙了,无法打印并寄给我一封纸质信函(这是我的状师的建议)。听到这个,我感到十分沮丧,由于当时我花费了几十个小时在那个功能上。但时隔三年,人们已经忘却了当初你的事情带给他们的觉得,他们不欠你什么。
如果你付出了很多努力,做好了某件事,那就想法网络一封证明信。在刚结束事情之际,提出这样的哀求很自然。
至于我的绿卡,我不得不写信给PHP干系的许多"大众年夜世人物,个中两人赞许出具书信证明这个功能很主要,而且产生了影响。
我的这个要求确实有点奇怪。只有不到10%的人回应了,大多数人都没有看信,有些乃至直接进了垃圾邮件。以是,千万不要等到你被人忘却。遗憾的是,你一定会被人忘了。
15. 保重身体
这部分内容实际上真该当放在文章开头,但那样这篇文章觉得就像是一篇廉价的新时期文章。
我今年38岁,有一些康健问题。
我有脊椎侧弯的问题,呈S形。十几岁的时候,年夜夫见告我如果不纠正的话背会疼,但每个人17岁的时候都以为自己无敌,以是我压根没听进去这些建议。
直到25岁之前,纠正都不难。但我一贯等到30岁旁边才开始关注,那时已经很难了。我通过瑜伽和推拿,用两年的韶光将波折的弧度从25度改进到了21度,但进展非常缓慢,所往后来我放弃了。我多么希望当时自己没有放弃,由于到了38岁,纠正就更加困难了。近几年来,我的背部一贯很疼。
我不能跑步,由于我的膝盖会疼。这是大学体育演习时单腿深蹲造成的。其余,从未有人见告我如何精确跑步,我的跑步办法会把地面的冲击力直接通报到膝盖。有些运动年夜夫专门研究跑步。他们可以辅导你,如有必要,你可以试试。
除此之外还有节食的问题。我曾考试测验素食主义,但没有把稳我的饮食是否包含身体所需的肉类的所有营养。第一年效果很好,我觉得自己充满活力。但两年半后,我感到不对劲。愉悦感消逝了,而且我创造自己的腿和手腕很随意马虎扭伤。我模糊觉得自己的身体短缺一些东西,然后我又开始吃肉了。现在我希望自己没有那两年半,或者缩减到6个月。
永久不要相信个例。如果受伤,去看年夜夫。素食主义不能拯救你分开地狱。
请记住以下几点:
每一种体育运动都须要一定的技巧。如果做得禁绝确,可能会受伤,而且可能无法康复,并引起永久性的疼痛。
如果须要监督你演习的人,请咨询高等运动年夜夫。
在25岁之前治愈困扰你的问题。过了这个岁数,你会失落去很多机会。
不要相信年轻时的自愈能力。这种超能力会消逝。你对身体所犯的每一个缺点都会在30岁后回到自己身上。
16. 不要被绊住脚上面我先容了很多自身的变革,其实在做出这些改变之前我就知道自己必须这么做。
我非常恋旧。纵然放弃编程四年后,我仍在帮助那些为他们制作网站的人。他们在利用我的引擎,以是我以为有责任支持他们,否则很无礼。
当时我不知道,如果关闭自己的业务,不会发生什么恐怖的事情。他们可以在几天内找到替代品,只不过你乐意帮忙,他们
至于个人问题就更难了。在过往的大多数关系中,我一贯认为如果有一天她转变主张,我们就可以重新在一起了;或者我只是想在她陷入困境时待在她身边供应帮助。我就这样在原地等待,直到自然而然地找到其他人,统统又周而复始重新开始了。
我有一个非常喜好的推拿师。还有一个很了不起的瑜伽老师,九年了都没有换过。
这些只不过是我自己意识到的事情,没故意识到切实其实定还有很多,比如食品、公园、街道等等细枝末节的留恋。
我就读的大学在环球前1500名中都排不上号,但离我家只有15分钟的步辇儿路程,考虑到蝴蝶效应,这可能是我生平中最缺点的决定。的确,2002年的时候,我很难得到任何信息,或者找到一个榜样,但有些人确实先行了一步。
最糟糕的情形莫过于被莫名地绊住脚。这是一种潜意识的阻碍,会蒙蔽你的双眼,让你乃至无法认识到某些事情实在并不主要。
这便是为什么人们建议为了改变而进行一些改变,比如每月去另一个地方度周末,考试测验新的菜肴等等。这样可以让更大的变革变得更大略,也有可能是避免立即履行重大变革的一种技巧。
面对每一次改变,我都希望自己做好准备。我须要在做出决定之前完成一些事情,这实在是一个谎话。
准备永久不会充分。每一年我都会创造比较于当下拥有的统统,过去一年的留恋只是借口。然而,在接下来的一年里,我会培养更强烈的留恋,而且还有更多情由不做出改变。
我建议你直面这种谎话,现在即刻做你想做的事。
人生真的可以加速吗?
真的可以在5年的韶光里做完原来须要花费20年的事?
我原来操持写,据我所知最年轻的Google开拓者专家只有23岁(据我估计)。但后来我碰着了更夸年夜的例子。
在一次Flutter电话会议上,我碰着了Aila McPhail。她和妹妹Sumay在两年前建立了一所在线儿童学校,那时她俩分别是12岁和9岁。如今,她们拥有1500多名推特粉丝(而我只有41名),她们的学校已经为500多逻辑学生供应了做事。姐妹俩居住在美国弗吉尼亚州北部Falls Church,一座人口不到1.5万的小镇。
Sumay还有4年的韶光才能申请Google开拓者专家的头衔,但她已经能够通过在线会议与Flutter团队的高等经理互换了。Aila须要再等7年才能申请Google开拓者专家,但她能够像一个成年人一样表达自己的想法,只不过她的声音和视频暴漏了她的年事。
我也是11岁开始打仗编程,而后在18岁前开始虚度光阴。这两位女孩比我更精良。你也可以!