38岁俄罗斯程序员,分享了20年编码生涯,总结了16条人生建议

程序员说未来 2024-03-08 00:20:39

这篇文章有19635字,非常长,如果你正在地铁上,我建议你先收藏起来,这里总结的建议真的非常实用,我花了两天时间,才把他阅读并整理好,自己也受益匪浅。

今天正好是我开始写代码 20 周年。这些是我取得的一点成绩:

因在科学技术方面具有非凡能力而获得绿卡申请批准。成为 Google 开发专家。成为IEEE高级会员。曾在一家拥有 100 名员工的公司担任首席运营官。编写的一段代码被下载了1.35亿次。向2000位听众演讲两次。根据国家电视台的报道,成为俄罗斯最诚实的人。

尽管如此,我还是有很多遗憾,而且花了太长时间。我认为,如果我尽早运用我所学到的态度、原则和工作方法,我可以在 5 年的职业生涯里,获得这里的大部分成就。如果您正在开始自己的职业生涯,这篇文章有可能挽救您 15 年的生命。我不敢想象,我在 23 岁而不是现在 38 岁的时候就拥有了所有这份清单(IEEE 除外,这需要 10 年)。

在第一部分中,我将简要介绍一下我的职业生涯。在第二部分中,我将逐一分享会产生强烈影响的每一条建议。

第 1 部分:我如何度过 2003 年至 2023 年

2003年12月22日,我无法入睡,决定寻找可用的域名。我查了一下我想到的一些内容,并发现了 GetSoft.ru 等。我就购买了。

“我应该用它做什么?” - 我想。—“我想,我可以创建一个软件市场”。

那时,我已经成为一名业余开发者 7 年了(从 11 岁开始)。我正在制作俄罗斯方块、炸弹人、坦克城等游戏的克隆版本。我会将它们上传到我的网站,然后将链接放到当时的许多软件市场。它们真的很不方便,但我知道如何做一个更好的。

我学习 PHP 只是因为互联网上大多数 URL 都以“.php”结尾

2004 年 3 月 4 日,我推出了GetSoft.ru。

我的第一个商业网站的谷歌翻译版本。

然后我编写了一个脚本来解析竞争对手的网站,并发送一些个性化垃圾邮件,例如

你好,(姓名)。我们正在推出一个新的软件市场。请将您的程序(Title1、Title2、Title3...)添加到其中!

方法很有效,很快就获取了一些初始内容,吸引了搜索流量,进而吸引了更多供应商:

这个网站为我赢得了诺夫哥罗德市Telma(现为Harman Connected Services )的实习生职位。他们为摩托罗拉手机制作所有固件,并以此而闻名。一年后我辞职了,因为我认为自己更聪明,而且通过销售广告赚了很多钱。

收入让我变得懒惰。到了 2010 年,当市场发生变化、收入下降时,我错过了早期社交网络的黄金时代。我没有组建社区,仅靠搜索流量生活。

我无法想出拯救网站的计划,只是开始以自由职业者的身份为其他人制作公司网站。我在某个时候萌生了建立一个机构的想法。

2011年,我放弃了编程。我遇到了一位朋友,他是一位出色的老师。他帮助我开始有效地教授我的爱好。2013 年之前,我一直在学习摄影和摄像课程。然后,他通过投放公寓装修广告并将销售线索出售给实际的装修商,激励我创业。我取得了一些有限的成功。然后他聘请我教其他人如何获得订单并销售产品,我一直这样做到 2014 年中期。

然后他聘请我担任学习材料制作主管,负责他的教育业务的另一次迭代,然后任命我为首席技术官和首席运营官。我建立了他需要的所有 IT 基础设施,并从头开始制作了一个学习管理系统。

在高峰时期,我们拥有 100 多名教师、2500 多名学生和 100 多名活跃的联盟营销合作伙伴。在此期间,收入增长了四倍,2015 年利润为 27.4 万美元,是俄罗斯平均工资的 600 倍。

2016 年,他正在重组管理层和薪酬,然后我辞职并写了一本书,讲述我学到的优秀工作方法以及如何晋升(到目前为止只有俄语)。

然后我再次成为自由职业者,因为我有一个永久的梦想,那就是经营自己的事业,这又让我失去了很多年。那时,企业网站市场萎缩,简单的无代码服务占据主导地位。我制作了自己的 CRM,但很难销售,因为它不适合市场。由于我的自负,我无法找到一份正式的工作。

到了2019年,我终于意识到没有在大公司工作让我错过了多少。我搬到了莫斯科,并在Calltouch找到了一份工作,这是俄罗斯领先的呼叫跟踪和营销分析平台。2020年秋天,我辞职了,重新开始做自己的事情。

对于我的初创公司,我需要最便宜的移动和网络前端,并决定为此学习 Flutter。我不愿意浪费我的积蓄,很快就从使用 Flutter 的朋友那里接了一份副业。很快我就暂停了创业并为他工作。与此同时,我开始了这个博客。随后,战争导致我们的客户于 2022 年 2 月破产。

我逃到了格鲁吉亚,并在外包软件供应商Akvelon找到了一份工作,这对我来说是一个转折点。他们正在为Apache开发著名的开源项目,通过他们,我结识了一些 Google 工程师。

Apache Beam Playground和Tour of Beam是我领导前端开发的两个应用程序,全部捐赠给 Apache 并由 Google 工程师监督。

我在 Akvelon 工作了一年,我在那里所做的事情和我的写作足以让我获得Google 开发专家的头衔。

那是移居发达国家的好时机。我厌倦了作为一个没有居留证的永久游客住在某个地方,因此总是被视为失败者。我多次被拒签,官员们只是因为我是俄罗斯人而辱骂我。

很长一段时间以来,美国都是我的第一目标。我的理想途径是挣钱获得投资型绿卡,但现在我了解到 EB-1A 计划的非凡能力以及它是多么平易近人。我决定进一步改善我的个人资料以适应它。

于是我加入了 IEEE,并很快晋升为高级会员。

IEEE高级会员卡。

我申请担任CODiE 奖评委并获得批准。在获得一定程度的认可后,事情真的会像滚雪球一样迅速增长。

事后看来,我觉得我的可信度随着时间的推移而发生变化:

我现在所感受到的职业信誉的变化。

这张图显示了很多时间被浪费了。以下是我会根据我目前的心态采取不同的做法来优化这一点。

第 2 部分. 我的建议去你认为世界上最好的地方

我毕业于离我家最近的大学,步行15分钟。这就是 2002 年俄罗斯的心态:一个封闭的小世界。我的同学中只有一个人去莫斯科读书,更不用说国际大学了。只是没有可以走得更远的先例,而且我也没有互联网来学习其他路径。

下诺夫哥罗德国立技术大学,主楼,摄影:Alexey Trefilov,许可证。

另一方面,我在 Google 的主管比我小 4 岁。他来自墨西哥,在韩国学习,在那里进入谷歌,然后搬到了美国。想象一下,在高中毕业后短短 6 年里,你自己就经历了这一切。

在这个年纪,你是所有人最想要的。您可以加入任何一所大学,学习您想学习的任何内容。接下来的每一年都会变得更加困难。

我一生都认为有一个更好的地方,并且在某个时候我会以某种方式到达那里。在过去的20年里,那里发生了很多有意义的事情,而我却没有。

当我在家乡读完大学四年级时,我的一个比我小四岁的朋友被一所美国大学录取了。这令人震惊,也揭示了一个痛苦的事实:这个机会也一直在我身边。

与单一国家的联系也带来巨大的风险。如果你的国家发动战争或受到攻击怎么办?我是通过痛苦的方式才学会的。第二公民身份是对此的对冲。趁便宜的时候去买吧。我认为第二公民身份的概念应该像教育一样成为一种社会标准,因此人们甚至在 20 多岁左右形成意识之前就已经获得了第二公民身份。它还应该自行减少战争,因为两国人民反对这些国家打仗。

即使在实际搬家之前,也要先联系全球专业人士。我国的大多数人都生活在封闭的泡沫中。他们确实有英文的 LinkedIn 个人资料和帖子,但仍然只有俄罗斯的 HR 给他们发短信。这是因为改变语言是不够的。国际协会和会议是许多当地社区完全错过的。您知道更成功的社区吗?加入其中,为他们写作和发言。GDE 和 IEEE 只是我发现的例子,有成千上万的全球社区可以让你受益。

问题是在俄罗斯人们不相信联想。在苏联,所有工会都是政府的代理人,他们只发放疗养院、住宿等小福利。如果你也有同样的情况,请尝试超越这一点。

留在泡沫中是有风险的。截至 2023 年底,俄罗斯政府正在敦促私营企业解雇那些搬迁并继续远程工作的人。我的许多朋友在 2022 年匆忙搬家,但没有建立全球网络,被迫返回俄罗斯,并面临随之而来的所有个人风险。

您在美国找到一份远程工作需要多少天?欧洲?如果您不确定,请为自己申请一些会员资格。

这是生意

我的第一个商业项目是我之前提到的一个软件市场。这是一个充满希望的开始,但后来我遇到了问题,因为我没有将其视为一项业务。

第一个问题是我希望这个项目是“公平的”,所以我拒绝除了广告之外的任何货币化。我拒绝任何付费促销,因为我的想法是学生程序员和老牌供应商在平台上必须平等。这使得我没有足够的资源来进行任何发展,而竞争却在稳步加剧。现在我建议积极抓住商机。这个世界上所有“免费”的东西都依赖于某人生意的繁荣和发展的基础。你免费赠送的每一件东西都必须是某些可靠的业务流程的副作用,并且可以预见到光明的未来。否则,以牺牲你的资源为代价的慈善事业将摧毁你并伤害你周围的世界和你试图帮助的人。

第二个问题是资源诅咒。没钱让我缺乏动力,所以我没有这么做。我对网站做了一些符合我审美的小改进,但我从未像最初几个月那样全力以赴。这是受雇者的想法,而不是商人的想法。我不知道资源诅咒的补救措施。我能告诉你的最好的消息就是,你所依赖的一切都会崩溃。想想那时你会剩下什么。

3.赚钱

大多数程序员最大的问题是他们的想法不是基于赚钱。

编程是一项高度创造性的活动,需要完全的安全性,并且实际上可能会因为个人的不确定性和恐惧而停止。这就是为什么程序员大多有固定工资,不像营销、销售、交付、服务等领域的许多其他职位,这些职位的工资中有很高的激励部分。

程序员不仅担心产品是否畅销,而且担心是否按时完成任务。这里的普遍想法是,程序员因固定工资而变得懒惰的风险小于团队因担心拿不到钱回家而放慢脚步的风险。

是的,在编程中,截止日期是有压力的,但那是想象中的,我从未见过有人因为未能在截止日期前完成而被解雇,甚至被罚款,在一个解雇是非同小可的国家。即使是失败的程序员也常常可以被经济地利用来从事无聊的任务,他们只是得不到加薪,很快就会为了互惠互利而辞职。

程序员获得固定工资还有两个原因。第一,在大型项目中,很难提出任何有意义的利润函数,既公平又足够快地提供反馈来影响你的行为。在 IT 领域,典型的自然利润反馈循环至少需要几个月的时间。

另一个原因是,向程序员传授软件公司的经济知识是有风险的,因为他们很容易退出并开展同类竞争业务。如果他们想要这样做并且性格外向,那么他们这样做的机会最高,相比营销、销售、服务等支持人员,他们拥有最稀有和最有价值的技能和专业知识。

虽然固定工资有利于你的心理健康,但你无法凭直觉判断什么才是适合公司的。管理层可能会向你口头解释优先事项,但这永远不如佣金有效。这会导致很多问题。

程序员抱怨他们想花更多的时间进行重构,而花更少的时间在新功能上。或者他们不明白快速启动测试版的原因,并希望再花几个月的时间来让事情“正常”进行。或者他们向管理层施压,要求扩展 MVP 以添加他们喜欢的功能。或者他们根据个人喜好推广次优技术。我花了很多年的时间来理解这一切。

后果是:

对你来说创业是很困难的,因为你的血液中没有正确的优先顺序,需要边做边学,结果损失了很多钱。很难找到面向初创公司的程序员不关注技术,而专注于业务。

如果你能整合商业思维,你就能获得优势。任何教育都无济于事,但我知道有两种方法可以做到这一点。

获取佣金

如果你的薪水是利润的函数,你就会彻底改变你的工作。

作为一名程序员,您可以在小型企业的短期项目中获得这一点。例如,制作一个聊天机器人作为某人的额外销售渠道,并同意在一段时间内分享收入。

任何非编程的佣金工作也很有帮助。推销员通常具有良好的商业意识,如果他们成为程序员,他们也会保持这种意识。

自由职业似乎有助于获得利润的感觉,因为你可以快速得到关于你的行为的反馈。您完成固定价格订单的速度越快,获得新订单的速度就越快。然而,这很少与业务需求有任何关系,因为您学习以简单的方式完成每项任务,但没有为业务战略性地确定任务的优先级。

雇人

当你需要自己花钱创办一家初创公司时,第三只眼就会睁开。一个在别人的项目中比较有用的小功能现在可能要花费 500 美元或 5000 美元,你会冷酷地把它搁置起来,直到你进入市场并有收入来资助它。

当你获得收入时,有数百件被搁置的事情,你需要立即实施那些最能增加收入的事情。您最喜欢的功能可能不在顶部列表中。你必须学会处理这个问题,并向你的员工解释为什么你不能让他们花两个小时做他们想做的事情。

以自我资助的方式管理和调整项目,并在这种约束下优化其增长是宇宙中最高的技艺。

尽早学习它。这将挽救你数十年的生命。

学习并使用新兴技术人工智能

我了解神经网络已有几十年了。18 年前,我上过一门关于它们的课程,并制作了一个简单的网络。没有 TensorFlow 或其他任何东西,我必须手动为感知器创建一个 C++ 类,以及该级别以上的所有内容。年底,我只是搁置了这些知识:好吧,人们可以制作文本编辑器、计算器、电子邮件客户端,现在还可以制作一些神经网络。对我来说,那东西是“其中之一”,而不是突出的。

与此同时,众所周知,人工智能将在未来某个时候主导该行业。然而,我并没有将这些知识和我的新技能与课程结束后我可以实际操作的东西联系起来。

3 年后,我得到了另一个机会,当时我被邀请开发一个可以检测视频流中食品杂货盗窃的系统,那是在 2008 年!我拒绝了,因为我想要自己的“生意”。

现在,在我目前的初创公司中,我需要人工智能来检测一段代码使用的算法。它比行业前沿简单得多,但我很难理解,而且我很拖延。

移动应用程序

另一个案例是移动应用程序。17 年前我上过一门关于移动开发的课程。当时是 Java 移动版,没有特定于操作系统的编码,但令人惊讶的是你可以在口袋里的这个小东西上运行东西。好吧,我用 JavaME 做了一个俄罗斯方块,把它放在网上,然后就忘记了。

一晃 14 年,一切都是移动的。我在没有任何 Android 和 iOS 开发知识的情况下开始学习 Flutter。大多数 Flutter 职位发布都需要原生移动开发经验,并且将 Flutter 视为除此之外的一个奇特玩具,所以我不太适合。

我的一位朋友是一家“从事移动开发 12 年”的工作室的技术主管。他们的客户包括肯德基、汉堡王、SAP 和玛氏。我本可以创办这样一个工作室。但我没有。

PHP

相反,我在 20 年前进入了 PHP。在 3 个月内让一家初创公司运行起来是正确的事情,但我在这方面呆得太久了。

四年前,当我决定找一份“真正的工作”而不是自由职业时,我意识到了这一点。PHP 工作很无聊。由于某种原因,大公司在新项目的后端使用了几乎所有其他东西。

就在这时,真相向我袭来。之前,当其他有希望的事物出现时,我就看到了它的出现:Node.js、Go 等。但我很安全,我的客户认为 PHP 是最佳解决方案,原因有很多。然而聚光灯已经移开,PHP 市场正在萎缩。

如果你不了解一项技术消亡的早期迹象,你将不得不更努力地了解这些迹象并付出更高的成本。小型企业网站市场被无代码网站服务扼杀。然后大公司就转身离开了。

一项技术不会无缘无故地被放弃。原因就是体验不好。如果您说技术是否符合您的目的,受欢迎程度并不重要,请仔细观察。其他东西更适合行业要求,因此它很可能也更适合您的需求。

对于 PHP,问题在于标准库是你能想象到的所有样式的不一致组合、糟糕的打字和硬配置。我花了几周时间为我的上一份 PHP 工作修复和配置 linter,这是一种开箱即用的类型化编译语言(如 Go、Dart 或 TypeScript)。

及时改变

很难判断一项新兴技术是否只是一种短暂的趋势,或者是否会主导该领域。然而,到了某个时候,事情就会变得清晰起来。很快,看不到它就变成了对自己的谎言。旧事物的死亡也是如此。

理想情况下,当视角确定时进行切换。至少当你发现自己在对自己撒谎时要改变态度。

积极质疑

你必须积极主动。积极质疑“这仍然是趋势吗?”

你周围的人对你离开这项技术不感兴趣。

雇主需要你维护他们的遗产。同事们因为担心更换技术栈而需要您的批准。如果你顺其自然,你最终会做一件拼命假装活着的事,如果你还能做到的话,你会经历一个可怕的转变。

看看StackOverflow的薪资图表:

他们为 Objective-C 支付更高的费用,以阻止你转向 Swift。这同样会阻止您从 Perl 切换到 Python。

一个系统

你不能因为它很流行就去做流行的技术,你就会对它没有热情。选择你的道路背后有一个更高的理由。我喜欢设计一个整体系统。它有一个后端、一个前端、一个基础设施以及介于两者之间的很多东西。我拥有一套技能来充分构建它。

如果我在 2005 年完全进入人工智能领域,或者在 2006 年进入移动应用领域,我会怀念这些技能。我怀念的是我工作中这些东西的味道。我根据自己的习惯而不是未来的愿景来选择口味。我很遗憾。

思考未来趋势

这个建议类似于丢掉过时的技术,但它涉及更大的前景。不仅技术来来去去,而且你用它们做什么的“模型”也来了又去。这个想法并不简单,所以我专门写了一篇文章。请花些时间阅读该内容,然后继续此处。

我相信整个技术史不是创造的历史,而是淘汰的历史。

网站的出现并不是因为它们很酷,而是因为它们必须消除纸质目录。像 GetSoft.ru 这样的市场的出现并不是因为我们喜欢查找屏幕保护程序并在早期论坛上聊天,而是为了消除购买 CD 的需要。应用商店让定制市场破产,因为记住并输入“getsoft.ru”对于获取人们想要的应用程序来说是一个多余的步骤。所有东西都变成了移动设备,并不是因为手机很花哨,而是因为更大的计算机在物理上是一种负担。无代码网站的出现是因为从想法到网站的路径太长。

Flutter现在很流行,也是我的主要业务。目前的使用模式是公司雇用程序员或外包供应商,然后他们创建、发布和维护应用程序。这是值得投资的模式吗?

我们越来越多地听到像FlutterFlow和AppSheet这样的低代码和无代码解决方案。一次偶然的机会,我了解到我的两个朋友正在独立开发一个“WordPress in Flutter”,以消除常规的小型网站并更轻松地生成 Flutter 应用程序。

即使该技术尚未消亡,您也可能已处于其使用的死角。这并不意味着你会像我一样淹没在 Flutter 代理的红海中。有些人当时在网站上取得了巨大成功,有些人将在未来几年通过手动编写 Flutter 应用程序取得巨大成功。

只是你可能不再乘风破浪,而是奋力向前游。而你可能会浪费本可以用来迎接下一波浪潮的时间。

想想您的客户和用户面临的负担。知道有某种东西可以消除它。最好是你的报价。

在产业链的更高层开展业务

2002 年,当我制作业余电脑游戏时,竞争非常激烈。我的网站每天约有 10 位来自市场的访问者,将其转化为一项业务非常困难。相反,我创建了自己的软件市场,第一年每天就有 1100 名访问者。

这是链条中更高的一层。我不再需要与他人竞争,而是将他们的竞争转化为我的优势。我可以提供所有软件可供选择。

很快我就知道还有一个更高的职位。一个人创建了 SoftSearch.ru,这是一个软件市场搜索引擎。到 2004 年,市场已经有数百个,他利用它们真正拥有了每一款软件。我不知道他的收入,但随着市场的变化和市场的相互淘汰,他仍然会受益。我在 2014 年关闭了 GetSoft.ru,而他在 2019 年才关闭了 SoftSearch.ru。

所以这是一种模式。谷歌和优步是该模式的两个过度使用的例子。谷歌没有在内容上与其他网站竞争,而是更进一步,他们搜索网站并从竞争中受益。Google 不仅为 Windows Phone 和 iPhone 开发应用程序,还开发了自己的手机。Uber利用了司机之间的竞争,而不是与他们在同一领域竞争。

在你的企业中,你不一定非得成为谷歌或优步。大多数情况下,企业及其聚合需要完全不同的技能。市场是相对简单的软件,但它包含真正的宝石,但制作起来可能要困难几个数量级。当一款软件售出时,其作者比市场所有者获得更多的收入和认可。你很可能更擅长业务,而不是试图组织这个领域。只要注意模式即可。

另一个例子是成为一名教育工作者。当您没有时间与他们一起试错时,有一个聪明的方法可以找到优秀的自由职业者。只需找到一个教授该专业并拥有许多成功学生的人,然后聘请该老师来完成这项工作即可。这比一般的自由职业者要贵,但成功率更高。这就是为什么

在一个垂死的市场中,教师是最后失去工作的人。

我的一位雇主正在教授如何开展普通商品和服务业务。之后,他转向如何教人们在他们最喜欢的领域进行教学。在第二笔生意中,他的收入几乎是原来的四倍,因为他在教育链上迈出了更高的一步。

链条中较高级活动的另一个例子是为您的领域制定标准、行为准则或奖项。这立即使您凌驾于其他人之上。我认为,除非你在工作中表现出色,否则你不能强迫这样做,但请注意,在某些时候,这些步骤可能对你和行业来说都是最好的发展。

选择算法而非应用

我是工业界人士,不是学术界人士。我做的事情是基于科学和常识的,但我不研究新的算法、理论或原理。我不做学术。我做我自己的事,直到那些聪明的人给我一个新的 API 来使用新的东西。我希望我能更多地处于他们的位置。

这实际上是您获得学士学位后做出的正式选择。如果你学习是为了成为大师,那是科学的。你不能仅仅编写有用的东西来获得硕士学位,你需要自己进行研究或做出一项发明,为世界带来新的想法。

我没有去读硕士学位。在我的国家,可以选择“工程师学位”,即在获得学士学位后进行 1.5 年的应用工作,而不是 2 年的研究。所以我选择了这个,我后悔了。

我选择了工程师文凭而不是攻读硕士学位。

15 年前,进入市场很容易。一个人只要做对事情就能登上顶峰。想想脸书。与其他人所做的事情相比,他们没有做任何新的事情,只是将其应用到了爆炸性的领域。

现在是算法时代。优秀架构和简洁代码的优势已经减弱,因为更多的人默认这样做。这些东西在战术上很重要,但你不能再仅靠它们登上顶峰。

相反,任何有一点“魔法”的人都会立即成功。当一项人工智能预测或生成脱颖而出时,针对某个目标的一百种现有服务就会消失。

Python 的崛起就是一个很好的标志。它之所以受欢迎,主要是因为它拥有大量的数据库。

资料来源:PYPL(编程语言流行度)

对算法的赞扬并不是什么新鲜事。40 年前,科学家们忙于数据库索引和搜索算法。嫉妒的程序员可能希望他们发明了一种好的算法并拥有市场上最好的 DBMS。但时间已经过去,这些系统仅仅成为程序员构建并完成他们神奇应用程序的基础。神经模型也会发生同样的情况。如果您错过了他们的开发,您将只是使用现成的模型来在更高级别上简化您的工作。

不同的是,40 年前算法正在威胁图书馆员和电话接线员的工作。现在它正在削减分析人员、口译员、设计师和助理的工作岗位。程序员是下一个。他们不会全部失业,但是

每个算法所需的程序员数量正在稳步下降。

这种情况还将持续下去。算法比以往任何时候都更接近市场。很快消费者就会购买纯算法的产品。他们将使用客户端,没有人会相信它的作者,一位应用程序员。您听说过为 ChatGPT 开发前端的人的名字吗?不,因为它们是完全可以替代的,而且可能支付的费用是最低的。

没有人知道 ChatGPT 的前端是谁开发的。

另外,如果你正在考虑下一次消除(你应该这样做),那么首先知道它的是算法。寻找下一个消除本身就决定了选择算法事业,然后用你的成果来开创革命性的事业。

有些消除源于实践,例如社交网络。它们只是应用于新领域的旧技术。但如果没有算法,减轻人类负担变得越来越困难。

我强烈地觉得自己是一个应用型的人,但这从来不是我的天生设置。我希望我能攻读硕士学位,进行几年的研究,然后决定我更喜欢哪个。如果你愿意,你可以随时从算法转到工艺。反之则更难。

8.不仅仅把钱投资在自己身上

我一生都认为程序员的需求量很大并且赚很多钱是理所当然的。所以我从来不觉得我需要储蓄。结果,在我38岁的时候,我在银行里只有2万美元、一辆12年车龄的汽车以及在我离开的国家一套公寓的四分之一。

与此同时,我那些勉强维持生计的年轻朋友已经支付了大部分抵押贷款。

令人震惊的是,二十年过去了,我却一直生活在“未来”,却从未将其变成现实。

把你的心思放在金钱上。好好学习投资课程。开始投资。购买住宅。

我很好地获得了 Google 开发者专家认证,这让我在团队领导者和首席技术官的领域中受到了很高的需求。如果没有这一点,大多数雇主会更喜欢 25 岁的人而不是 38 岁的人,更不用说 10 年后我将是 48 岁的人了。

我被上一份工作解雇了,因为他们没有更多关于我的技能的合同。他们给了我 29 天的通知。在整个团队中,他们只保留了一名最年轻的人来支持现有的软件。我不知道他们的理由。部分原因肯定是一名高年级学生对支持感到厌倦,并且可能无论如何都会退出。但事实仍然是,只有最年轻的人保住了工作。

我这个年纪的大多数开发者都不具备这样的竞争优势,所以你必须为更糟糕的情况做好准备。随着人工智能的进步,没有人是安全的。所以永远不要把自己当作一个特别的人。你所依赖的任何东西随时都有可能耗尽。您现在就希望口袋里有超过 20 笔补助金,而不是在梦想中。

更糟糕的是,在你30多岁之后,世界开始将你视为没有财产和金钱的流浪汉。一年前,我被拒绝申请澳大利亚签证,理由是我没有表现出赚钱和储蓄的习惯,并且与任何国家有联系(没有遗产),所以他们担心我不会回来。然后是英国签证。

这令人震惊,因为在我 20 多岁的时候,我用更少的钱和财产轻松获得了美国、法国、荷兰和其他国家的签证。

当你年轻的时候,你向他们承诺,所有的门都为你敞开,这种欣快感掩盖了世界的另一面:

如果有门,那是为了向某人关闭。

这个人是指年龄接近 40 岁、不符合社会标准的人。

在IT行业的领导者中寻找工作

我做了大约 8 年的自由职业,这让我没什么可说的。我为我所在城市最有信誉的牙科诊所之一制作了一个网站。所以呢?

我甚至无法向任何人展示它,因为两年后他们从其他人那里得到了更新的一个。我身边就有大约40个这样的案例。

当你开始为行业领导者工作时,他们通常不会付给你很多钱,但你可以在那里快速成长。我认识一些人,他们的起薪是全国平均工资,六年后加薪到了这个水平的 10 倍。他们有很多事情可以告诉你,可以帮助他们找到工作。

对于任何有价值的公司来说,没有哪个自由职业是足够辛苦或足够有趣的。只是为了钱而出卖最好的年华,仅此而已。

真希望我早知道这一点。相反,我读到的关于自由职业现象的早期文章都赞扬它带来的自由,所以我从未质疑过这个想法。事实上,唯一能带来自由并且不会让你成为浪费的流浪汉的就是你自己的事,但那是一个完全不同的故事。

小企业的工作比自由职业更有趣,因为你可以获得一些管理和营销经验,但从技术上讲,这仍然是低端的工作。例如,我是一家教育公司的首席技术官。我使用十年来主流的技术为他们制作了 CRM 和 LMS。公司蓬勃发展。所以呢?无论您的业务性质如何,对其他人来说都只是 PHP + MySQL 和CRUD。

这只是赚取 27.4 万美元利润的 CRUD 系统之一。

大公司需要以下技能:

分布式系统的架构。高负载。事务、管理竞争条件、并行计算。请求优化、分析。自动测试和 CI/CD。重构和处理一些遗留问题的正确比例。对更改和部署要非常小心。

在典型的小型企业的 IT 部门中,您无法获得这些信息。但如果您愿意,您可以轻松地从大公司的专家降级为小企业的工作。

要求中唯一的不对称性决定了您应该在还可以的时候在行业领导者那里寻找工作。然后你还会有很多值得夸耀的事情。

另一个关键原因是,在自由职业者和小型企业中,您通常是最熟练的程序员,因此您只能从互联网上学习。但向同事学习比通过阅读和观看视频更有效。

它只是在空气中。当你工作时,你会收到大量你没有注意到但仍在消耗的信号,它们会成为你的一部分。如果你在家中从事自由职业,你的背景就是外面狗叫,这对你来说什么也没有。但如果你在一个拥有熟练专业人士的办公室里,你的背景就是有人在讨论你从未想过存在的问题的出色解决方案,并且它会免费成为你的一部分,甚至不需要你提出要求。

从你最熟练的地方逃跑。

好消息是大公司经常雇佣实习生来培养他们。例如,我的兄弟在学生时代就在英特尔工作了两年。在 24 岁的时候把这些写在你的简历上真是太好了,不是吗?学生时代过后,就更难做到这一点了。

10.做关键的事情

仅仅在大公司工作还不够好。你可以选择很多事情去做,它们感觉或多或少是平等的,但从长远来看,这对你的记录来说并不好。

例如,EB-1A 绿卡计划中的一个标准要求您扮演关键角色,该角色的定义是对组织的指标产生重大影响。即使你从事需要世界上所有技能的前沿工作,观察者也可能不会认为它很重要,因为它的影响可能是间接的,或者可能有太多像你这样的人,所以你的个人贡献很难来估计。

另一方面,您可以在不接触任何现代技术的情况下完成关键的事情。例如,我很幸运能够在我工作的一家公司负责身份验证系统。这只是一些 PHP 代码,但我发现并修复了一些关键漏洞。我还帮助他们在 CI 中引入静态分析,这减少了意外停机时间。这些因素加在一起很可能为我确保了 EB-1A 计划标准(我说“可能”是因为当申请在第一次尝试中获得批准时,他们不会告诉您他们认为哪些优点,但我认为这个优点很强大) 。

果然,你不需要在“关键”和“前沿”之间做出选择,你可以两者都做。选择你的公司和职责并花你的时间,以便它计入这两个指标。

在考虑职位时,请考虑一下向外行证明您是项目成功的核心,即使您不是任何正式领导者也是如此。这是您个人资料的一个完全不同的维度,而不仅仅是卓越的技术。

我只花了四年时间做我认为重要的事情。这意味着我浪费了 16 年时间,却没有真正改善我的形象,而我的形象本来可以令人印象深刻 5 倍。

大多数时候,只要你准备好了,关键的职位机会就会找到你。首席执行官或首席技术官只会叫你出来,就像我多次遇到的那样。但在此之前,你仍然可以主动寻求它们。

如果我是一名寻求关键职位的初级员工,我会成为身份验证、加密、高负载系统 DevOps 或查询优化方面某人的助手。这些职位更多地依赖于一丝不苟,而不是丰富的经验。一般来说,任何错误成本高的事情只要可以很容易地解释就可以了。

11.主动询问

据我所知,最重要的商业文本是埃尔伯特·哈伯德(Elbert Hubbard)所著的《致加西亚的讯息》(A Message to Garcia)。现在花几分钟阅读一下,它很短。

埃尔伯特·哈伯德和他最著名的故事。他并不是大多数人想到的哈伯德。

在我要求任何人完成的任何任务中,他们都会提出比他们应该提出的更多的问题。对于一周的工作,我通常会用大约 2 个小时的时间来解释我认为 5 分钟演讲中应该清楚的内容。

如果您已经做到了这一点,我相信我不应该对此进行扩展,并且文本将为您提供正确的信息。

另一方面,有些狂热分子做错事却以不提出问题为荣。但这不太常见,而且问题也较少。

我也是其中之一。我需要创建一个端点,以便前端可以显示某些记录是否在数据库中。我预计在某个时候他们也需要计数,所以我返回了计数。如果他们需要的话,他们可以在没有我帮助的情况下展示它。就这么简单

SELECT COUNT ( * ) FROM t WHERE某事;

一位首席技术官在得知我的解决方案后很生气。他让我计时。时间不到一毫秒,我没有发现任何问题。然后他要求我计时以下内容:

从t WHERE LIMIT 1中选择1 ;

而且速度快了 20 倍。

我错了吗?不是在我来自的小型企业的低负载应用程序领域,为未来快速改进提供配置是最重要的技能之一,这就是为什么我甚至没有问如何做到这一点。我缺乏的是高负载系统和环境方面的经验。

如果您有问题,您需要能够判断该问题是出于被告知要做什么的习惯而必须提出的,还是必要的。然后你要么放弃它,要么询问它。只有对上下文有深入的了解,上下文是业务需求、预算、目标、路线图、架构及其局限性、待办事项、外部依赖项、代码库的整个历史等的混合体。

如果你真的不确定如何做好这项工作,

你能问的最不麻烦、最有成效的问题是优先事项是什么。

然后你从中得出你的解决方案。一个答案可能会让我免于扫描整个表格。

我可以告诉你的第二件最好的事情是要意识到平衡并学习上面列出的所有这些专门针对你的项目的因素,以便更好地提出要求和不提出要求。

鉴于您基本上是有价值且积极主动的,

询问和不打扰之间的平衡是你晋升的关键因素之一。

为重要的开源项目做出贡献

开源贡献对于您的简历、面试、会员计划、奖项,甚至人才移民计划都很重要,这些都会给您带来分数。

我最受欢迎的开源贡献是PHPStan中的一项功能,PHPStan 是最流行的 PHP 静态代码分析器。我的这段代码已被下载超过 1.35 亿次。

下载 PHPStan 的统计数据。当我的 PR 落地时,下载量约为 1500 万次。

它很可能为我确保了 EB-1A 计划的一个标准,“对该领域具有重大意义的科学贡献”,这是获得绿卡所需的 1/3。

为了做出这样的贡献,我不得不转向兼职工作,因为当你 34 岁的时候,很难利用周末编码。如果你在 20 多岁,你的时间基本上是自由且不受限制的,所以好好利用它。

我最令人印象深刻但不太受欢迎的贡献是两个 Apache 应用程序的前端(Beam Playground、Tour of Beam)和Flutter 中的代码编辑器。

加上一些写作和演讲,他们给了我Google 开发专家的头衔。从该计划的采访来看,我觉得我的开源东西比我的写作和演讲更重要,但我永远不能确定。

如果你选择了正确的项目,开源贡献就像尽早购买正确的股票一样。然后你什么都不做,看着数以百万计的(下载量)计数。就像股票一样,如果你错过了,到了一定年龄你就达不到社会标准,就会受到歧视。与股票不同,即使项目减少,开源贡献也不会减少,因为评判你的标准是你所做的事情的最高受欢迎程度。

与其他任何事情一样,为了贡献而贡献是无聊的。我做的所有开源东西都是因为我的工作需要它。因此,你应该选择一份具有充足开源贡献的工作作为副作用,这就是平衡的秘密,让你无需付出额外的努力即可获得良好的记录。

我们始终希望我们的软件包能够成为热门产品,因此我们是顶级开源存储库的所有者(如果不这样做,请退出该项目)。这不会发生在我们大多数人身上。我自己的顶级 Flutter 包仅进入前 16%,这令人心碎。

不要把所有的鸡蛋都放在一个篮子里,去帮助已经出名的人。这将使你的记录与你自己的不繁荣的东西对冲。

在我的职业生涯中,我只在开源领域工作了不到 7%,我希望自己做得更多。我认识的 GDE 80% 的职业生涯都从事开源工作。这些机会是存在的,寻找它们。

疯狂地公开

20年前,是否公开是个人选择。没有社交网络,互联网上没有视频,人们必须为专业杂志撰写文章才能获得宣传。这需要付出很大的努力,所以对于专业人士来说,留在阴影中不这样做也是可以的。要找到工作,您只需将简历写入 .doc 文件并将其发送给公司。他们别无选择,只能相信你并邀请你接受面试。

现在已经行不通了。成为公众人物几乎不需要努力,所以如果你保持低调,那就表明你的恐惧、无能或有问题的优先级。即使是内向的人,至少也要写文章才会引起关注。如果你突然在 Facebook 上有 50 个朋友,没有文字,也没有公开记录你所做的事情,那么你将很难找到像样的工作。

现在每个人都是公开的,你应该疯狂地公开才能脱颖而出。写下你所取得的一切、你所做的每一个发现以及你发布的每一个可重复使用的作品应该成为你不可或缺的一部分。

对你来说,闭嘴应该比向世界说话更困难。

不断的写作

我于2004年9月29日发表了我的第一篇技术文章。它被浏览了5000次。我感到很高兴。我是三年级的学生,已经有很多人从我的经验中学习。

由于某种原因,我在 17 年后发表了下一篇文章。

我为这个博客写文章才两年,但我已经有超过十万的浏览量和数百名关注者。关注度呈指数级增长,因为令人印象深刻的人物会吸引更多人。如果我没有停下来17年,我现在已经是摇滚明星了。

当我在Medium上达到一千名粉丝时,我会写一个专门的故事。同时,一些简短的提示:

永远不要在代码审查和指导会议中重复自己。如果您重复说某件事,请花点时间写下来并发布,然后只给他们链接。如果写作不自然,这是开始写作的最简单方法。在所有流行平台上发布。如果你只使用一个,它可以改变推荐引擎。你花了数年时间来建立你的追随者,然后突然间他们不能保证看到你的新帖子。许多平台都这样做了,现在主要使用文本托管。通过无处不在来对冲这种情况。遵循“作者第一”的原则。选择工作时,请检查公司是否同意这个愿景并推广您的 Medium 帐户。有些公司实际上允许您在工作时间中写作,甚至为文章支付额外费用,同时允许您使用您的个人媒体,尽管他们可能不允许您通过致电订阅您的个人媒体来结束文章电报或推特。将所有重要的事情都变成文本,甚至包括签证拒签。这样,您的生活中就不会再有任何损失,因为最坏的情况下您将获得 +1 文本。写你的私人日记。我从史蒂芬·科维那里学到了这个秘诀。首先,你的想法很直白,比如“我去过那里。我就是这么做的。” 一年之内,你会不知不觉地写出长篇哲学文章。制作视频

热门视频博客的关注者数量通常是热门文本博客的 10 倍。这意味着我们会错过很多,如果我们只写的话,我们实际上就不存在了。

我不擅长视频。我讨厌排练,通常至少需要一次完整的测试才能进行像样的录音。我讨厌这样的感觉:如果我犯了错,我必须表现出色或重新开始视频。我讨厌预先安排诸如打开文件夹和选项卡以进行屏幕录制之类的事情。我讨厌编辑,因为它需要时间,而且我不断地想改进,但为时已晚。希望我能教自己热爱这一点并很久以前就做到了。

当你年轻的时候,制作视频会更容易。那是因为你的时间感觉是无限的,所以我讨厌视频的事情并不适用。所以不要听我的抱怨。

我在 2011 年很早就开始了我的 YouTube 频道,但后来我并没有对此做太多事情。我在那里有超过10万的浏览量,这还不错。但这与编程无关,而与其他任何事情有关。

我参加了视频课程,实际上在摄像方面还不错,并制作了 3 部短片。

我甚至制作了一个关于如何拍摄好自己的视频课程,涵盖 15 个主题,从不怕直播到设置相机手柄、灯光和麦克风,再到专业编辑,我从今天开始正式免费提供它(但它是俄语的) )。

与视频不同,文本的巨大优势在于您可以随时对其进行完美编辑。我在知道绿卡申请结果之前就写下了所有这些,然后当我了解它时我会更新所有提到的内容。目前还无法通过视频做到这一点,但人工智能很快将使我们能够编写视频脚本,然后对其进行渲染,让人感觉就像是您录制的一样。你的脸、屏幕和所有的动作都会完美地同步,所以我所有的抱怨都将不再适用。不管怎样,那些有录制和发布习惯的人会比那些编剧更有优势,因为他们在宣传视频方面思维更快,经验更丰富,所以尽快开始。

在活动中发言

我小时候和十几岁的时候口吃得很厉害,所以我利用一切机会不说话。我似乎还患有阿斯伯格综合症,这让我很难实时清晰地表达事物。到了人们普遍有能力说出自己的想法并且或多或少有魅力的年龄时,我就变得迟钝了(这也是我擅长写作的原因之一,这是一种补偿性技能)。

然后我意识到我错过了生活并决定改变它。我必须努力工作才能得到别人从一开始就享受并认为理所当然的东西。

我一生中两次从绝望的恐惧到向 2000 人的人群演讲,尽管那是政治而不是编程(一次笨拙,一次更好,都是用俄语)。

我于 2017 年 6 月 12 日和 2018 年 5 月 5 日在下诺夫哥罗德列宁广场的抗议集会上发表讲话。

这种体验令人兴奋,并以一种很好的方式解放你。

现场交谈是您生活和工作的全新维度。你会在其他职位上遇到你永远不会遇到的人。此外,现场观众对你的印象比他们从你的视频中看到的要清晰得多,你可以在他们取消关注你之前建立更牢固的联系并获得更多的信任(如果他们愿意的话)。你比较真实,人们会听真实的人说话。

在会议上发表演讲还可以为您带来很多好处:组织成员(GDE、IEEE)、移民项目得分等等。而且,随着时间的推移,说话会滚雪球。谁被邀请发言?那些以前做过的人。所以进入其中吧。

开始演讲的最简单方法是成为他们认识你的大学的兼职老师。在我意识到我需要改变之后,我就这么做了。我请求我的老师朋友非正式地代替她一个学期,她在与教授确认后同意了。这给了我一种宽容的方式来站稳脚跟。

我的第一场讲座是 2008 年 3 月 17 日在下诺夫哥罗德国立技术大学为 06-ST 小组举办的 Visual Basic 6 课程。

如果您拥有领先地位或强大的技术地位,那么很容易成为某些聚会上的演讲者。只需询问您的上级您可以如何以及在哪里发言即可。我这么做了,他感到很惊讶,并安排了与来自他有朋友所在的大公司的另外 2 位演讲者的会面,我们有 40 名观众。

许多经理认为程序员不喜欢说话,所以他们甚至不建议这样做。这不是当他们认为你准备好了时就会赐予你的东西,去索取吧。

我很遗憾错过了演讲。现在我是 GDE,每周都会收到国际会议的邀请,终于有了空闲时间,我将开始接受它们。

14.存储所有东西

你的工作

如果没有你的父母,你的幼稚画就不会留下来。幸运的是,我有这个:

然后你开始关心并尝试存储你过去的工作,以备以后需要它或只是为了炫耀。

作为一个成年人,您会注意到您担心失去该档案,就好像它是您的一部分一样。您质疑为什么它对您很重要。你可以克服这种恐惧,并在自己身上找到安全感的来源,而不是在你堆积的东西中。然后你可能会开始减少对你的档案的关心。

0 阅读:2

程序员说未来

简介:感谢大家的关注