对于来自喀麦隆等弱势群体的程序员来说,成功之路充满艰辛。许多非洲人甚至不知道计算机编程是什么——而许多知道的人则认为这只是西方或亚洲国家的人们才能从事的职业。
我 18 岁才拥有第一台电脑,19 岁读高中时才开始编程,而且不得不手写大量代码,因为我无法将笨重的台式机带到学校。在过去的五年里,我不断进步,从一个弱势群体的程序员成长为一名成功的程序员,我从中学习了很多。虽然这些经验来自我在非洲的经历,但其中许多也适用于其他弱势群体,包括女性。
1. 学习如何编码
这是显而易见的:要成为一名成功的程序员,你首先必须成为一名程序员。在非洲社区,这可能并不容易。要学习如何编码,你需要一台电脑,可能还需要互联网,但这些对于非洲人来说并不常见。我直到 18 岁才拥有一台台式电脑——大约 20 岁才拥有一台笔记本电脑,有些人可能仍然认为我很幸运。有些学生甚至在进入大学之前都不知道电脑是什么样子。
你仍然必须找到学习编码的方法。在我拥有电脑之前,我常常步行数英里去见一位有电脑的朋友。他对电脑不是很感兴趣,所以我花了很多时间使用它。我还经常去网吧,这花光了我大部分零花钱。
利用当地的编程社区,因为这可能是你最大的动力来源之一。当你独自工作时,你可能会感觉自己像个忍者,但这可能是因为你与其他程序员互动不多。参加技术活动。确保你至少有一个比你更优秀的朋友。将那个人视为竞争对手,努力超越他们,即使他们可能和你一样努力。即使你永远无法获胜,你的编程技能也会不断提高。
2. 不要过分解读统计数据
许多来自弱势群体的聪明人甚至从未进入“学习如何编码”的阶段,因为他们将统计数据视为硬性事实。我记得当我渴望成为一名黑客时,我曾经因为技术领域中黑人远少于白人的统计数据而感到沮丧。如果你在谷歌上搜索“有史以来最优秀的 50 位计算机程序员”,榜单上可能不会有很多(如果有的话)黑人。科技界大多数鼓舞人心的人物,如 Ada Lovelace、Linus Torvalds 和 Bill Gates,都是白人。从小到大,我一直认为科技是白人的事情。我曾经认为我做不到。小时候,我从未看过一部科幻电影,其中黑人扮演黑客或计算机专家。总是白人。我记得当我上高中时,我们的老师写道编程是我们课程的一部分,我以为那是个玩笑——我想,“从什么时候开始,这怎么可能呢?” 我离真相不远。我们的老师根本不会编程。
统计数据还显示,许多你仰慕的、令人惊叹的程序员,无论他们的肤色如何,都是在 13 岁开始编码的。但你直到 19 岁才知道编程的存在。你会问自己这样的问题:我该如何赶上?我甚至有这方面的智力吗?当我 13 岁时,我还在玩愚蠢的幼稚游戏——我怎么能与这些人竞争?
这可能会让你得出结论,白人在技术方面天生更优秀。这是错误的。是的,统计数据是正确的,但它们只是统计数据。而且它们可以改变。让它们改变。你的环境对你成长过程中的行为影响很大。你怎么能将自己与父母在你九岁之前就给你买了电脑的人相比——而你直到 19 岁才见到电脑?那是 10 年的差距。而且那个九岁的孩子也有很多人指导他。
无论你的背景如何,你都可以成为一名伟大的软件工程师。这可能会有点困难,因为你可能没有西方世界的人们拥有的资源或机会,但这并非不可能。3. 拥有当地的英雄或导师
我认为生活中有一个你仰慕的人是最重要的事情之一。我们都钦佩像 Linus Torvalds 和 Bill Gates 这样的人,但试图将他们作为你的榜样可能会让人感到沮丧。Bill Gates 在 13 岁开始编码,并在 17 岁时创立了他的第一家企业。我 24 岁了,还在试图弄清楚我一生想做什么。这些故事总是让我怀疑为什么我还不够优秀,而不是寻找让自己变得更好的理由。
拥有当地的英雄或导师更有帮助。因为你们都生活在同一个社区,所以更有可能不会有如此大的差距让你感到沮丧。当地的导师可能在你开始编码的年龄左右开始编码,并且不太可能在很小的时候就创立一家大型企业。
我一直很钦佩科技界的知名人士,现在仍然如此。但我从未将他们视为导师。首先,因为他们的故事对我来说像是幻想,其次,我无法接触到他们。我选择那些我能够接触到的人作为我的导师和榜样。选择榜样并不意味着你只想达到他们的水平就停止。成功是循序渐进的,你需要为每个你想达到的阶段找到榜样。当你达到一个阶段时,再为下一个阶段寻找另一个榜样。
你可能无法从 Bill Gates 这样的人那里获得一对一的建议。你可以获得他们在会议上向公众提供的建议,这也很棒。我总是关注聪明人。但是,最有影响力的建议是针对你的建议。考虑到你的目标和情况的建议。你只能从你可以直接接触到的人那里获得这种建议。
我是人生不同阶段的许多导师的产物。其中一位是 Nyah Check,他在大学时比我高一年级,但在技能和经验方面,他领先我两到三年。当我还在上高中的时候,就听说过他的故事。他让人们渴望成为伟大的程序员,而不仅仅是专注于获得 4.0 的 GPA。他是法语非洲最早参与 Google Summer of Code 的人之一。还在大学时,他出国旅行的次数比许多讲师梦想的还要多——而且没有花一分钱。他可以编写连我们的课程讲师都无法理解的代码。他与人共同创立了 Google Developer Group Buea,并创建了一个精英程序员俱乐部,帮助许多学生学习编码。他创建了许多其他社区,例如 Docker Buea meetup,我是该组织的首席组织者。这些事情激励了我。我想像他一样,并且知道通过与他成为朋友我会获得什么。与他的讨论总是非常鼓舞人心——他谈论编程以及他环游世界参加会议的冒险经历。我从他那里学到了很多东西,我认为他教导了我很多。现在,年轻的学生也想和我在一起,原因和我当初想向他学习的原因一样。
4. 参与开源
如果你在非洲并且想从顶尖工程师那里获得顶尖技能,那么你最好的选择是加入一个开源项目。非洲的科技生态系统规模很小,而且大多由初创公司组成,因此在你热爱的领域获得经验可能并不容易。非洲的初创公司很少从事机器学习、分布式计算或容器以及 Kubernetes 等技术。除非你的热情是 Web 开发,否则你最好的选择是加入一个开源项目。我通过参与 OpenMRS 社区学到了我所知道的大部分知识。我还为其他开源项目做出了贡献,包括 LibreHealth、Coala 和 Kubernetes。在获得技术技能的同时,你还将建立你的有影响力的人脉网络。我的大多数同龄人都是从书本上了解 Linus Torvalds 的,但我有和他合影的照片。
参与开源推广计划,如 Google Summer of Code、Google Code-in、Outreachy 或 Linux Foundation Networking Internships。这些机会可以帮助你获得初创公司可能无法提供的技能。
我曾两次以学生的身份参加 Google Summer of Code,现在我是一名导师。我曾担任 Google Code-in 组织管理员,现在我是一名志愿开源开发者。所有这些活动都有助于我学习新事物。
5. 尽可能利用多元化项目
多元化项目很棒,但如果你像我一样,你可能不太喜欢从这些项目中获益太多。如果你在一个五人团队中,而你的录用基础是你是一名黑人,而其他四人是白人,你可能会怀疑自己是否真的足够优秀。你不会希望人们认为基金会赞助你的旅行是因为你是黑人,而不是因为你和任何其他人一样有价值。这绝不仅仅因为你是少数族裔——而是因为赞助组织认为你是一位杰出的少数族裔。并非只有你一个人申请了多元化奖学金,而且并非所有申请人都获得了奖励。尽可能利用多元化机会,并建立你的知识库和人脉网络。
当人们问我为什么 Linux 基金会赞助我去参加开源峰会时,我说:“我受邀在他们的会议上发表演讲,但他们有你可以申请的多元化奖学金。” 这听起来不是很酷吗?
尽可能多地参加会议——多元化奖学金可以提供帮助。学习所有你能学到的东西。练习你所学到的东西。结识朋友。申请发表演讲。从小处着手。每当我站在人群面前发表演讲时,我的右腿都会发抖,但通过练习,我已经变得更好了。
6. 回馈
始终找到回馈社会的方式。指导别人。在社区中担任积极的角色。这些是我回馈社区的方式。这不仅是一种道义责任——而且是一种双赢,因为你可以在帮助他人实现梦想的同时学到很多东西。
我曾参与 Google Developer Group Buea 组织的编程语言聚会,在那里我指导了 15 名学生学习 Java 编程(从初级到中级)。项目结束后,我创建了一个 Java 用户组,以保持 Java 社区的凝聚力。我从聚会中招募了两名成员,加入我成为 LibreHealth 的志愿者开发者,在我的指导下,他们为该项目做出了有用的提交。他们后来被接受为 Google Summer of Code 学生,我被指派在项目期间指导他们。我也是 Docker Buea(喀麦隆官方 Docker 聚会)的首席组织者,并且我也是 Docker 校园大使。
在这个社区担任领导角色迫使我不断学习。作为 Docker 校园大使,我应该培训学生如何使用 Docker。正因为如此,我学习了很多关于 Docker 和容器的有趣知识。
Ivange Larry Ndumbe 将在 8 月 27 日至 31 日在加拿大不列颠哥伦比亚省温哥华举行的 Open Source Summit North America 会议上,介绍主题为 成为弱势群体中成功的程序员 的演讲。
10 条评论