去年,我在社交媒体上分享我是如何从住了 29 年的贫民窟搬到租住的高层公寓的。

技术社区的朋友们纷纷留言,给我很多关心和鼓励。微软的一位工程师 Dan Wahlin 发帖表示,他很想了解更多关于我的故事。把我这些年来的奋斗经历写下来并不容易,但我会尽力而为。

早些年

我出生在孟买,从我记事起我就住在贫民窟,就是你在电影中看到的典型的鱼龙混杂的贫民窟。我很幸运,大部分时间是和其中的好人们待在一起。

我是一个懒惰的人,板球是我的初恋。我在升学考试中表现很差,本来希望能取得更好的成绩,但结果低于我的预期。

我不确定接下来要做什么,想着读个理工专业,但我的分数不够高。

学习计算机科学

我会说这是我的运气或命运。我父亲的一位朋友向我们介绍了一些文凭课程。我申请了,然后幸运地被录取了。

我从多门课程中毫不犹豫地选择了计算机科学,但这学起来并不容易。

我是如何学习语言的

英语不是我的母语。我所在的学校将印度语作为第一语言。我也有口音问题(我来自北方,有不同的口音)。我记得因为我什么都听不懂,曾经在课堂上哭。我害怕再次失败,就像在升学考试中没有达到自己的期望一样。

但这次我不能选择放弃。我从来没有告诉父母我的学习很挣扎。我把自己拉回来,开始努力学习,不再打板球,与朋友隔绝。

我唯一想要实现的目标就是在这三个学年的第一年不要失败。在随后的考试中,我表现不错,第一年就拿到了大约 50% 的分数。

我对此并不满意,但这是我当时能拿到的最好的成绩。

进入第二年时,我成为了更好的自己,更有信心,考试成绩也更好。到了最后一年,我的得分超过了 60%。

我明白了,如果你决定做成某事,你就可以并且会做成。永远不要放弃,因为如果你认真对待它,你总是可以学习的。例如,我记得一位同学取笑我的口音——我把它当作挑战并加以改进。

遭遇挫折

通过期末考试后,我对学习获得计算机科学学位更感兴趣了。那是另一个为期 4 年的课程。

我打算继续我的学业。但在我大二的时候,我爸爸失业了。很长一段时间我都没有意识到这一点,有一天爸爸告诉了我这个坏消息。他让我开始找工作,因为他负担不起我每年大约 42k(550 美元)的 CS 学位费用。

我哭了一夜,睡不着。第二天,我妈妈注意到我在哭,就跟我爸爸说:“你想做什么就做什么,但我儿子要继续他的学业。”

我爸爸同意了,在我叔叔(我爸爸的哥哥)的帮助下,我得以继续上学。

学习 CS 学位课程

我的考试成绩还不错,可以进入 CS 学位课程。大二时,我被 2004 年刚刚开办的一个学院录取了。它不是一流的学院,但它属于孟买大学,所以我很高兴被录取。

这一年,孟买发生了大洪水,所以整个录取过程都被推迟了。两个月内我们就考试了,我很幸运我的所有科目都及格了。

大三的时候,我开始从图书馆借书来学习,因为我没有钱买那些书。我的一些教授曾经为我借过它们,所以我可以在考试时使用它们学习,然后再归还。

第三学年快要结束时,我家的财务状况变得更糟。这次我想退学,但一个朋友听到这个消息后,说:“你别担心,我会帮助你”。

我差点哭了。但是在假期里,我爸爸告诉我他设法存了最后一年的钱。

我很高兴,在最后一年我做得很好。在期末考试中,我的得分接近 70%。我以为这个糟糕的阶段已经过去了,因为我终于拿到了学位,然而我并不知道有些事情正在发生。

2008 年经济危机

大萧条发生了,那一年招聘的公司并不多。我不确定接下来要做什么。

我的朋友说我擅长编程,所以我应该找这方面的工作。我意识到自己真的很喜欢编程,而且我爱上了 C#。

我等了三四个月才找到第一份工作。在那份工作中,我可以学习新事物,并获得 5000 卢布的薪水,约合每月 68 美元。

8 个月后,我决定辞掉那份工作,然后失业了一个月。在接下来的 4 个月里,我找到了一些支持工作,这需要一些 SQL 知识,所以我复习了这些知识。

最后,2010 年 1 月,我找到了一份可以编写代码的工作。这是一个使用 C# 的 Windows 应用程序。我尽力了,但薪水仍然很低。

我每个月的工资是 12,000 卢布(163 美元),但没有足够的工作。我和我的经理谈过这件事,他告诉我要把这个当作学习新东西的机会。

我开始阅读更多的 C#。一位做数据库管理的同事帮助我使用 SQL(创建存储过程、函数和编写查询)。10 个月后,我收到了加薪 100% 的报价。迈出一大步! 我在这份新工作上又工作了 8 个月。

加入初创公司

我于 2011 年 8 月加入了一家初创公司,并在那里工作了 5 年。薪水不错,我加入时得到了超过 50% 的加薪,公司后来还为我买了保险。

一开始我就尽了最大的努力,我过去常常很快交付东西,因为我想要更多的工作。在几个月内,我与团队成员建立了良好的关系,包括 CEO 在内的每个人都对我的工作表示赞赏。

我明白了并不是每个人的职业生涯都会有一个好开始,但不要放弃——无论你在哪里工作,都要全力以赴,总有一天你会得到你梦寐以求的工作。

从来都不是一帆风顺的

那个时候我想一切都会好起来的——我有一份更稳定的工作,薪水也不错。但你永远不知道会出什么问题。

我的妻子怀孕了,在第 6 个月左右突然出现了一些并发症。医生告诉我们必须做紧急手术,并说他们不确定是否可以挽救婴儿。

他问我们是否可以将婴儿转移到已知处理此类病例的医院之一。她是有机会活下来的,但医疗费比我一整年的薪水还要多。

我说我会做任何事来救她。

我几乎没有任何积蓄,因为我要养家糊口,并负担我们所有的日常开支。

全部医疗费用是 11,000 美元,保险仅报销 5%。 我从银行借了一些个人贷款,朋友们也借给我一些钱。

然后,我和我的经理谈过,看看我那年是否可以得到额外的加薪,比我当时的薪水高 40% 左右。令我惊讶的是,经理和 CEO 同意了,我得到了加薪。

我每天都去医院看女儿,然后去上班。这是我三个月的日程安排。她出生时体重 845 克,回家后体重约 1.5 公斤。

我继续努力工作,还了朋友们借给我的钱,然后我得大部分工资都用来还银行贷款。我的妻子卖掉了她所有的珠宝,这样我们就可以偿还一些欠款。

上个月我终于能够给她买一枚戒指和一些金首饰,她开心极了。

生活对任何人来说都不容易。你需要面对很多挑战,你会有艰难的时刻,但如果你直面它,它会让你变得更强大。

追求更好的生活

我开始更多地关注我的职业生涯,这样我就可以赚更多的钱并偿还贷款,但我想念与女儿和妻子共度的时光。

我离开了父母的家,开始维持自己的家庭,那个时候我没任何积蓄。一个朋友给我租了一间房子,里面连一张床都没有,我在那里住了一年。我们白手起家。

我在那里住了一年,最后买了一些床垫来睡觉,还买了一台笔记本电脑来练习编程(是的,直到 2015 年我才拥有自己的笔记本电脑)。

不是每个人都知道你有时会挣扎——甚至是你的家人。不过不要放弃。当你处于人生低谷时,并不是每个人都会支持你。但如果你很幸运,你会有好朋友支持你,在别人做不到或不愿意的时候帮助你。

是什么让我坚强

在 2012-2015 年间,有很多次我真的想放弃。但我也想为我的女儿和妻子而战,让她们过上更好的生活,我想在我的工作中做到最好。

如果你正在阅读本文,请珍惜与家人共度的时光。工作超过 8 小时不会获得报酬,超过 8 小时的任何工作都是为雇主免费工作。

2015 年之后,我只有一次被要求工作超过 8 小时,我的回答是 “no”。为你自己工作,学习新东西,练习并创建一些东西。 它会在未来帮助你。

搬到浦那

2016 年左右,我离开了这家初创公司,因为我的经理非常不友好。当我离开时,我所有的同事都为我鼓掌,那是一个非常激动人心的时刻。

我搬到浦那,在一家跨国公司工作。我开始给家人更多的时间,每天工作不超过 8 小时,周末也不工作。在这段时间里,我意识到我想写博客,所以我写了几篇关于 .Net 和 Angular 的博客。

我开始做 Angular 培训课程,并赚了一些钱。我买了一张床,让女儿考上了好学校,还还了一些贷款。2017 年对我和我的家人来说是美好的一年。

额外的收入确实帮助了我们。我记得旧床垫的状况真的很糟糕,它开始影响我们的健康,我的妻子因此背痛得很厉害。额外的收入让我有能力买了一个优质的床垫。

永远不要陷入你的舒适区。如果工作不够具有挑战性或者你不喜欢它,如果你有能力,就离开那份工作。

另外,家人很重要。我们搬到新城市的原因之一是我想念我的家庭时间。

另一个艰难时期

2018 年开局有些艰难。我花了四个月的时间为一个人录制了一门课程,但他没有付钱给我。我与曾经合作进行培训的组织有一些冲突,所以我离开了他们。

我在赚钱,但我的学习停止了,我没有为开源社区做任何事情。

然后我的女儿被诊断出患有结核病。我当时又害怕又没动力。我在 2017 年底加入德意志银行,工作很好,压力不大,待遇也不错。

2018 年我没有时间为社区做太多事情,但我在我的完全使用 Angular 开发的项目中表现良好。

复活和我的 GDE 之旅

在经历了糟糕的 2018 年之后,我对 2019 年有了一些不同的想法。我真的很想为社区做出贡献,但我不知道该怎么做。

我决定参加一个 Angular 会议(这是我参加的第一次会议),在那里我遇到了 Angular 团队的 Vikram,并向他询问了一些技巧。

参加完会议回家后,我想开始做贡献,而 Angular 是我爱上的框架。

但是我找不到任何我可以解决的问题,所以我决定去 NgRx。我在 2 月 28 日发现了一个问题并提出了我的第一个 PR,并开始做出更多贡献。

大约在 3 月中旬,我在 Angular 仓库中发现了一个我可以解决的问题,并开始着手处理它,最终在那里提出了我的第一个 PR

三月份,我了解了一个叫作 GDE Program for Angular 的项目(谷歌开发者专家)。我决定继续搜索一下,然后了解到你是根据你的贡献获得邀请的。确实如此——在此之前,我并不知道 GDE 项目。

我发现我离 GDE 太远了,无论如何这不是我开始贡献的动力。

你什么时候开始为开源做贡献并不重要。我的建议是,任何时候开始都不晚。我在 32 岁之后开始为开源社区做贡献,这是我从事技术工作 10 年后做过的最好的决定。

为 inDepth.dev 写作

我已经停止写作很长时间了。我记得在为 NgRx 提交 PR 时,NgRx 团队激励我写一篇文章,甚至帮助我进行校对。

这篇文章发表了,我很兴奋,因为我喜欢 inDepth.dev 的高质量内容。我从没想过有一天我会在那个平台上写作。

我的第一个开源项目

2019 年 6 月左右,我开始创建一个个人项目。我了解了 Angular Builders,Minko 给出了一个很好的例子,说明如何在 GitHub 页面上部署应用程序。我受到了它的启发,所以决定创建一个自己的 Netlify 并在 NPM 上发布。

它变得很流行,现在被 GitHub 上的 200 多个项目使用。它也成为了 Angular 文档的一部分。

我的第一次会议演讲

NgSrilanka 的组织者 Sajeetharan 在 Twitter 上发帖称,他们正在为会议寻找演讲人。 所以我决定给他发一封电子邮件。一周之后,我被确认为演讲者。

这是我第一次在 300 名开发人员面前演讲。我很害怕,但我学到了一些东西:没有人第一次演讲时就会讲得很好。我观看了录像,自我提升,并且阅读了有关如何提高演讲水平的博客。

受邀加入 Google 开发者专家计划

8 月,我在 LinkedIn 上收到来自 Google 的 Siddhant Agarwal 的消息,询问我是否有兴趣申请谷歌开发者专家计划。2019 年 9 月,他们通过了我的申请,并邀请我参加面试。

11 月 13 日,也就是我的生日那天,我被宣布成为谷歌开发者专家。

几个月前,我以为我永远无法成为其中的一员——但有时,当你足够努力时,你不需要要求获得任何东西,而那些东西自然会向你靠近。

再说一遍,永不放弃。我从没想过有一天我会成为一名 GDE,我只想尽我所能为社区服务。不要期望任何回报,只要继续努力,你会得到比你想象的更多的回报。

来自我的新雇主的支持

不幸的是,在 2019 年底,我不得不辞去在德意志银行的工作。这不是一次愉快的经历,但我挺过来了。

我的新雇主在这种情况下支持我,人力资源部门总是向我保证他们会支持我,并且我会加入团队。

并非所有组织都是糟糕的——许多组织确实关心他们的员工。我希望有一天所有组织都关心开源社区,并鼓励更多员工为社区做出贡献。

2020 年 2 月之后

到目前为止,2020 年 2 月之后的生活一直很好。我已经能够在会议上发言而不必担心我的雇主,因为他们对此没有任何问题。我再次开始为开源社区做出贡献,并开始了一个名为“与 Santosh 的技术对话”的脱口秀,你可以在这里查看:https://www.youtube.com/TechTalksWithSantosh

成为印度第一个 GitHub star

2020 年 3 月,GitHub 推出了 GitHub Star 计划。这与其他计划不同,因为你不能提名自己——相反,你需要由社区中的其他开发人员提名。

我发布了关于这个计划的帖子,并鼓励我的开发人员同行提名一个值得参与的人。我没想到会有很多开发人员提名我!但后来我收到了计划发起方的电子邮件,要我提交个人资料。

我感到震惊和害怕,但我提交了个人资料。然后在 11 月,我被宣布成为印度第一个 GitHub Star!

最重要的是,我很高兴在 GitHub Star 个人资料上看到印度国旗。

image

下一步是什么

像所有开发人员一样,我确实有一个梦想。以下是我想要实现的一些目标:

  • 为开源做出更多贡献
  • 激励更多的开发人员为开源做出贡献
  • 努力完成我的节目“与 Santosh 的技术对话”,与社区分享我的知识
  • 努力实现我梦想中的开发倡导者工作,因为那是我喜欢做的事情——帮助开发人员取得成功

结语

这不是一个真正的总结,因为我的故事仍在进行中。我相信每个人都有值得讲述的故事。这就是我目前为止的故事。

最后,我问自己几个重要的问题:

我的挣扎结束了吗?
我不知道。
一切都会好起来吗?
我不知道。
我要停止奋斗吗?
绝不放弃。

谢谢阅读!

原文:From the Slums of Mumbai to a Rented Apartment – My 30-Year Developer Journey,作者:Santosh Yadav