今天正好是我开始写代码 20 周年。这些是我取得的一点成绩:
- 因在科学技术方面具有非凡能力而获得绿卡申请批准。
- 成为 Google 开发专家。
- 成为 IEEE 高级会员。
- 曾在一家拥有 100 名员工的公司担任首席运营官。
- 编写的一段代码被下载了 1.35 亿次。
- 向 2000 位听众演讲两次。
- 根据国家电视台的报道,成为俄罗斯最诚实的人。
尽管如此,我还是有很多遗憾,而且花了太长时间。我认为,如果我尽早运用我所学到的态度、原则和工作方法,我可以在 5 年的职业生涯里,获得这里的大部分成就。如果您正在开始自己的职业生涯,这篇文章有可能挽救您 15 年的生命。
在第一部分中,我将简要介绍一下我的职业生涯。在第二部分中,我将逐一分享会产生强烈影响的每一条建议。
第 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 年俄罗斯的心态:一个封闭的小世界。我的同学中只有一个人去莫斯科读书,更不用说国际大学了。只是没有可以走得更远的先例,而且我也没有互联网来学习其他路径。
下诺夫哥罗德国立技术大学,主楼。
另一方面,我在 Google 的主管比我小 4 岁。他来自墨西哥,在韩国学习,在那里进入谷歌,然后搬到了美国。想象一下,在高中毕业后短短 6 年里,你自己就经历了这一切。
在这个年纪,你是所有人最想要的。您可以加入任何一所大学,学习您想学习的任何内容。接下来的每一年都会变得更加困难。
我一生都认为有一个更好的地方,并且在某个时候我会以某种方式到达那里。在过去的 20 年里,那里发生了很多有意义的事情,而我却没有。
当我在家乡读完大学四年级时,我的一个比我小四岁的朋友被一所美国大学录取了。这令人震惊,也揭示了一个痛苦的事实:这个机会也一直在我身边。
与单一国家的联系也带来巨大的风险。如果你的国家发动战争或受到攻击怎么办?我是通过痛苦的方式才学会的。第二公民身份是对此的对冲。趁便宜的时候去买吧。我认为第二公民身份的概念应该像教育一样成为一种社会标准,因此人们甚至在 20 多岁左右形成意识之前就已经获得了第二公民身份。它还应该自行减少战争,因为两国人民反对这些国家打仗。
即使在实际搬家之前,也要先联系全球专业人士。我国的大多数人都生活在封闭的泡沫中。他们确实有英文的 LinkedIn 个人资料和帖子,但仍然只有俄罗斯的 HR 给他们发短信。这是因为改变语言是不够的。国际协会和会议是许多当地社区完全错过的。您知道更成功的社区吗?加入其中,为他们写作和发言。GDE 和 IEEE 只是我发现的例子,有成千上万的全球社区可以让你受益。
问题是在俄罗斯人们不相信联想。在苏联,所有工会都是政府的代理人,他们只发放疗养院、住宿等小福利。如果你也有同样的情况,请尝试超越这一点。
留在泡沫中是有风险的。截至 2023 年底,俄罗斯政府正在敦促私营企业解雇那些搬迁并继续远程工作的人。我的许多朋友在 2022 年匆忙搬家,但没有建立全球网络,被迫返回俄罗斯,并面临随之而来的所有个人风险。
您在美国找到一份远程工作需要多少天?欧洲?如果您不确定,请为自己申请一些会员资格。
- 这是生意
我的第一个商业项目是我之前提到的一个软件市场。这是一个充满希望的开始,但后来我遇到了问题,因为我没有将其视为一项业务。
第一个问题是我希望这个项目是'公平的',所以我拒绝除了广告之外的任何货币化。我拒绝任何付费促销,因为我的想法是学生程序员和老牌供应商在平台上必须平等。这使得我没有足够的资源来进行任何发展,而竞争却在稳步加剧。现在我建议积极抓住商机。这个世界上所有'免费'的东西都依赖于某人生意的繁荣和发展的基础。你免费赠送的每一件东西都必须是某些可靠的业务流程的副作用,并且可以预见到光明的未来。否则,以牺牲你的资源为代价的慈善事业将摧毁你并伤害你周围的世界和你试图帮助的人。
第二个问题是资源诅咒。没钱让我缺乏动力,所以我没有这么做。我对网站做了一些符合我审美的小改进,但我从未像最初几个月那样全力以赴。这是受雇者的想法,而不是商人的想法。我不知道资源诅咒的补救措施。我能告诉你的最好的消息就是,你所依赖的一切都会崩溃。想想那时你会剩下什么。
- 赚钱
大多数程序员最大的问题是他们的想法不是基于赚钱。
编程是一项高度创造性的活动,需要完全的安全性,并且实际上可能会因为个人的不确定性和恐惧而停止。这就是为什么程序员大多有固定工资,不像营销、销售、交付、服务等领域的许多其他职位,这些职位的工资中有很高的激励部分。
程序员不仅担心产品是否畅销,而且担心是否按时完成任务。这里的普遍想法是,程序员因固定工资而变得懒惰的风险小于团队因担心拿不到钱回家而放慢脚步的风险。
是的,在编程中,截止日期是有压力的,但那是想象中的,我从未见过有人因为未能在截止日期前完成而被解雇,甚至被罚款,在一个解雇是非同小可的国家。即使是失败的程序员也常常可以被经济地利用来从事无聊的任务,他们只是得不到加薪,很快就会为了互惠互利而辞职。
程序员获得固定工资还有两个原因。第一,在大型项目中,很难提出任何有意义的利润函数,既公平又足够快地提供反馈来影响你的行为。在 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 的需要。
- 应用商店让定制市场破产,因为记住并输入