Nishu Goel 是一位来自印度的著名 Web 工程师,也是 Angular 和网络技术领域的 Google 开发者专家。她向我们讲述了自己的社区参与情况、职业计划以及学习 Web 开发的最佳方式。
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 和网络技术的发言邀请。
Monika:你的专业技术经验如何?
Nishu:最初两年里的一切都是关于 Angular 和 Web 组件的。我以前用 Angular 来构建网络,但很快我决定突破此局面,探索其他领域。我不想在必须切换项目的情况下限制自己。我就是这样开始在 Angular 中创建要用于其他框架的网络组件的。
我做的第一件事是使用 Angular 创建网络组件。我将其发布到了 npm,并在 React 项目中将其用作演示。我在稍后的一些演讲和演示中讨论过这一点。我的下一项工作需要使用 React 和 Typescript。现在,由于我一直在使用 React,所以我不再局限于只使用一种框架,而是会使用整个网络。那时我对网络有了很多了解,尤其是网络性能。这时,我必须开始考虑使用 Largest Contenful Paint (LCP) 或 First Contentful Paint (FCP) 模式,FCP 表示应用需要多长时间加载,或者是渲染页面的最长时间。我一直在努力选择最佳做法并提高应用的性能。
由于对网页性能的关注,我参与了《网络年历》并编写了 JavaScript 这一章。《网络年历》是关于网络总体状况的年度报告,它揭示了人们如何使用各种不同的功能。去年,我们过滤了 860 万个网站,对数据进行了分析并将其呈现在这份报告中。该报告包含 <script>
元素中 async
和 defer
属性的使用情况统计信息。与 2020 年相比,有多少网站正确使用这些功能,又有多少网站完全不使用这些功能,又有多少网站改进了这些配置。上一份网络年历报告提到,大约 35% 的网站在同一脚本中使用了两个属性,这是反模式,降低了性能。去年也曾指出这一点,而今年,我们尝试了解情况是否有所改善。我还在 ngConf 和 Reliable Dev Summit 上发表过演讲,在那里我重点关注了网络性能。
Monika:您还积极回馈社区。最近,您一直在乌干达非政府组织 YIYA 参与志愿活动,它是如何开始的?合作的要点是什么?
Nishu:首先,GDE 团队告知我们 YIYA 的志愿服务机会。该乌干达非政府组织一直在寻找工程师,帮助他们提供内容制作或技术功能方面的帮助。该计划旨在为乌干达的学龄儿童提供教育机会,让他们能够利用当地可用的技术(不是计算机或教科书,而是基本的拨号电话和收音机)为他们提供教育机会。孩子会拨打特定号码并收到一组信息,然后拨打另一个号码以获取更多信息,依此类推。它在疫情期间变得越来越有用。
我一直以来都参与社区和可持续发展目标,因此决定尝试联系您。在与 YIYA 团队会面后,我就 Python 脚本或他们发现的任何 bug 以及门户存在的任何问题提供了帮助。我们合作了一段时间。
Monika:您对 2022 年有什么计划?请问你有什么特别关注的吗?
Nishu:我要换工作搬到其他国家/地区。一般来说,我都会使用 Golang 从事 Web 方面的工作,以便提升网站性能。我会继续把精力放在 Web 性能方面,因为 Web 性能非常有趣,也很复杂,还有很多需要了解和优化的方面。即便是现在,在我为此投入大量时间之后,仍有很多时间要学。例如,我想知道为图片资源使用 CDN 如何帮助提高应用的速度。我想成为网络性能的专家 - 我逐渐实现这个目标,我相信 :)
Monika:您提到过,自己还不是专家,开始写文章,只是在写所学的内容。你会给新开发者什么建议,让他们觉得自己没有任何内容可分享?
Nishu:这就是我开始写作时的感受。我以为不应该推出这个?也许是错了?我担心自己写的内容对读者没什么帮助。但重要的是,我的写作对我有所帮助。一段时间后我就会忘记某些内容,然后会回到之前写的内容中。写下来是个好主意。
所以我建议所有人,只要在任何阶段写作就行了。即使您仅学完了一门课程的一部分,也只是通过写下来来进行学习。您在某个时候知道的一条信息对于不知道的其他人可能会有所帮助。您不必成为专家。写作对您大有裨益。任何人,无论他们职业生涯的哪个阶段,
Monika:最好关注刚刚学到东西的人,因为他们知道必须要掌握的所有知识。当你成为专家之后,会很难记得自己当初的样子。对刚刚开始 Web 开发的人有什么建议吗?
Nishu:很多人都会问,刚开始入手时应该选择哪种框架,但我认为这不是正确的问题。无论我们在任何时候学到的知识,都应该对后面的阶段有所帮助。我建议任何人放弃限制,先从 HTML 或 JavaScript 开始,这样未来可以盈利。
然后抓住时机抓住一切机会。当我偶然发现网络年鉴寻找作者时,就碰到了这种情况。我当时在想:“哦,这很有趣,可能有助于提升性能。”我就是这样成为 JavaScript 章节的内容主管,花了六个月的时间写下这本书。因此我认为,把握机会就是不懈努力。
Monika:对于网络技术的未来,您有什么总体预测或想法吗?下一个热门话题会是什么?哪些会迅速增长?
Nishu:很高兴我们现在能够在浏览器中运行服务器,这是一项了不起的进步。例如,最近我们引入了通过浏览器运行 Node.js 的功能,而在过去,如果不在系统中安装 Node.js,我们将无法运行任何软件。现在,我们可以通过浏览器执行任何操作。这在网络生态系统中向前迈出了一大步。OMT - 脱离主线程。线程方面的工作也将大大改进。Web Assembly 正在发展进步,让开发者能够做到这一点,我认为这是 Web 生态系统的未来。