GDE 社区亮点:Nishu Goel

Nishu Goel 是一位来自印度的著名 Web 工程师,也是 Angular 和网络技术领域的 Google 开发者专家。她向我们讲述了自己的社区参与情况、职业计划以及学习 Web 开发的最佳方式。

Monika Janota
Monika Janota

舞台上的 Nishu。

Nishu Goel 是印度的著名 Web 工程师、Angular 和网络技术方面的 Google 开发者专家、Microsoft 最有价值专家。她是 Step by Step Angular Routing(BPB,2019 年)和 A Hands-on Guide to Angular(教育版,2021 年)的作者,同时也是《Web Almanac 2021 JavaScript》一章的作者。Nishu 目前在 epilot GmbH 担任全栈工程师。她向我们讲述了自己的社区参与情况、职业计划以及学习 Web 开发的最佳方式。

Monika:让我们先从你的故事说起。是什么促使您成为了一名开发者,并在开发者社区中担任积极角色?

Nishu:我获得了计算机科学学士学位,学习了数据结构,从那时起,我就对编程产生了兴趣。在第三年的工程领域,我参加了 Microsoft think Cup Nationals 比赛,与开发者社区建立了联系。在比赛中,我们通过代码演示了各种解决方案。我们开发的应用旨在为当地学生(尤其是女孩)带来教育机会。在这段旅程中,我遇到了一些非常有启发的人,包括参赛者和组织者。

2018 年,我的职业生涯开始腾飞,我开始使用 Angular。Angular 成为我加入 GDE 计划的主要技术。就在那时,我开始围绕自己所研究和学习的主题撰写博文和创作内容。Dhananjay Kumar 帮助我踏上了这个旅程,并确保我有条不紊地跟上我的步伐。我的第一批文章讨论的是 Angular 的基础知识。不久之后,我开始在活动上发言,第一场活动是 ngNepal,即尼泊尔的 Angular 会议。此举引发了更多关于 Angular 和网络技术的发言邀请。

Nishu 和其他来自 ng-india 的人。

Monika:你的专业技术经验如何?

Nishu:最初两年里的一切都是关于 Angular 和 Web 组件的。我以前用 Angular 来构建网络,但很快我决定突破此局面,探索其他领域。我不想在必须切换项目的情况下限制自己。我就是这样开始在 Angular 中创建要用于其他框架的网络组件的。

我做的第一件事是使用 Angular 创建网络组件。我将其发布到了 npm,并在 React 项目中将其用作演示。我在稍后的一些演讲和演示中讨论过这一点。我的下一项工作需要使用 React 和 Typescript。现在,由于我一直在使用 React,所以我不再局限于只使用一种框架,而是会使用整个网络。那时我对网络有了很多了解,尤其是网络性能。这时,我必须开始考虑使用 Largest Contenful Paint (LCP)First Contentful Paint (FCP) 模式,FCP 表示应用需要多长时间加载,或者是渲染页面的最长时间。我一直在努力选择最佳做法并提高应用的性能。

由于对网页性能的关注,我参与了《网络年历》并编写了 JavaScript 这一章。《网络年历》是关于网络总体状况的年度报告,它揭示了人们如何使用各种不同的功能。去年,我们过滤了 860 万个网站,对数据进行了分析并将其呈现在这份报告中。该报告包含 <script> 元素中 asyncdefer 属性的使用情况统计信息。与 2020 年相比,有多少网站正确使用这些功能,又有多少网站完全不使用这些功能,又有多少网站改进了这些配置。上一份网络年历报告提到,大约 35% 的网站在同一脚本中使用了两个属性,这是反模式,降低了性能。去年也曾指出这一点,而今年,我们尝试了解情况是否有所改善。我还在 ngConf 和 Reliable Dev Summit 上发表过演讲,在那里我重点关注了网络性能。

《网络年鉴》的印刷版。

Monika:您还积极回馈社区。最近,您一直在乌干达非政府组织 YIYA 参与志愿活动,它是如何开始的?合作的要点是什么?

Nishu:首先,GDE 团队告知我们 YIYA 的志愿服务机会。该乌干达非政府组织一直在寻找工程师,帮助他们提供内容制作或技术功能方面的帮助。该计划旨在为乌干达的学龄儿童提供教育机会,让他们能够利用当地可用的技术(不是计算机或教科书,而是基本的拨号电话和收音机)为他们提供教育机会。孩子会拨打特定号码并收到一组信息,然后拨打另一个号码以获取更多信息,依此类推。它在疫情期间变得越来越有用。

我一直以来都参与社区和可持续发展目标,因此决定尝试联系您。在与 YIYA 团队会面后,我就 Python 脚本或他们发现的任何 bug 以及门户存在的任何问题提供了帮助。我们合作了一段时间。

Monika:您对 2022 年有什么计划?请问你有什么特别关注的吗?

Nishu:我要换工作搬到其他国家/地区。一般来说,我都会使用 Golang 从事 Web 方面的工作,以便提升网站性能。我会继续把精力放在 Web 性能方面,因为 Web 性能非常有趣,也很复杂,还有很多需要了解和优化的方面。即便是现在,在我为此投入大量时间之后,仍有很多时间要学。例如,我想知道为图片资源使用 CDN 如何帮助提高应用的速度。我想成为网络性能的专家 - 我逐渐实现这个目标,我相信 :)

Monika:您提到过,自己还不是专家,开始写文章,只是在写所学的内容。你会给新开发者什么建议,让他们觉得自己没有任何内容可分享?

Nishu:这就是我开始写作时的感受。我以为不应该推出这个?也许是错了?我担心自己写的内容对读者没什么帮助。但重要的是,我的写作对我有所帮助。一段时间后我就会忘记某些内容,然后会回到之前写的内容中。写下来是个好主意。

桌上的《Angular 路由》一书。

所以我建议所有人,只要在任何阶段写作就行了。即使您仅学完了一门课程的一部分,也只是通过写下来来进行学习。您在某个时候知道的一条信息对于不知道的其他人可能会有所帮助。您不必成为专家。写作对您大有裨益。任何人,无论他们职业生涯的哪个阶段,

Monika:最好关注刚刚学到东西的人,因为他们知道必须要掌握的所有知识。当你成为专家之后,会很难记得自己当初的样子。对刚刚开始 Web 开发的人有什么建议吗?

Nishu:很多人都会问,刚开始入手时应该选择哪种框架,但我认为这不是正确的问题。无论我们在任何时候学到的知识,都应该对后面的阶段有所帮助。我建议任何人放弃限制,先从 HTML 或 JavaScript 开始,这样未来可以盈利。

然后抓住时机抓住一切机会。当我偶然发现网络年鉴寻找作者时,就碰到了这种情况。我当时在想:“哦,这很有趣,可能有助于提升性能。”我就是这样成为 JavaScript 章节的内容主管,花了六个月的时间写下这本书。因此我认为,把握机会就是不懈努力。

Monika:对于网络技术的未来,您有什么总体预测或想法吗?下一个热门话题会是什么?哪些会迅速增长?

Nishu:很高兴我们现在能够在浏览器中运行服务器,这是一项了不起的进步。例如,最近我们引入了通过浏览器运行 Node.js 的功能,而在过去,如果不在系统中安装 Node.js,我们将无法运行任何软件。现在,我们可以通过浏览器执行任何操作。这在网络生态系统中向前迈出了一大步。OMT - 脱离主线程。线程方面的工作也将大大改进。Web Assembly 正在发展进步,让开发者能够做到这一点,我认为这是 Web 生态系统的未来。