GDE 社群焦點:Nishu Goel

Nishu Goel 是來自印度的知名網頁工程師,也是 Angular 和網路技術的 Google 開發人員專家。她向我們分享了參與社群、職涯規劃,以及學習網頁開發的最佳方式。

Monika Janota
Monika Janota

Nishu 在舞台上。

Nishu Goel 是來自印度的知名網頁工程師,也是 Angular 和網路技術的 Google 開發人員專家,以及 Microsoft 最有價值專家。她是《Step by Step Angular Routing》(BPB,2019 年) 和《A Hands-on Guide to Angular》(Educative,2021 年) 的作者,也是《Web Almanac 2021》JavaScript 章節的作者。Nishu 目前在 epilot GmbH 擔任全端工程師。她向我們分享了參與社群、職涯規劃,以及學習網頁開發的最佳方式。

Monika:請先談談你的經歷。促使您成為開發人員,並在開發人員社群中扮演積極角色的原因為何?

Nishu:我擁有電腦科學學士學位,在學習資料結構時,就對程式設計產生興趣。在工程學習的第三年,我參加了 Microsoft Imagine Cup 全國賽,並透過程式碼展示解決方案,因此與開發人員社群建立了連結。我們開發這款應用程式的目的,是為了為當地學生 (尤其是女學生) 提供教育機會。在這趟旅程中,我遇到了一些非常鼓舞人心的人,包括參賽者和主辦人。

2018 年,我的職涯生涯開始起飛,也開始使用 Angular。Angular 成為我與 GDE 計畫連結的主要技術。大約在同一時間,我開始撰寫網誌文章,並針對我正在學習的相關主題創作內容。Dhananjay Kumar 協助我展開這趟旅程,並確保我能按部就班地進行。我第一篇文章討論了 Angular 的基本概念。不久之後,我開始在活動中發表演講,第一場是 ngNepal,也就是尼泊爾的 Angular 大會。也因此獲得更多有關 Angular 和網路技術的演講邀約。

Nishu 和其他 ng-india 成員。

Monika:請問你在技術方面的專業經驗為何?

Nishu:前兩年,我主要專注於 Angular 和網頁元件。我原本使用 Angular 建構網頁,但很快就決定進一步探索其他領域。我不想限制自己,以免需要切換專案。因此,我開始在 Angular 中建立網頁元件,以便在其他架構中使用。

我首先使用 Angular 建立網頁元件。我將其發布至 npm,並在 React 專案中用作示範。我稍後會在一些演講和簡報中討論這項問題。我接下來的工作需要使用 React 和 Typescript。由於我使用的是 React,因此我不再只使用單一架構,而是使用整個網頁。當時我對網路,尤其是網路效能有了更深入的瞭解。這時我必須開始考慮最大內容繪製 (LCP)首次顯示內容所需時間 (FCP),也就是應用程式載入所需的時間,或網頁轉譯所需的時間上限。我一直在努力選擇最佳做法,並改善應用程式的效能。

由於對網頁效能有興趣,我參與了 Web Almanac 的編寫,並撰寫了 JavaScript 章節。「網路年鑑」是一份年度報告,內容涵蓋網路的整體狀態,說明使用者如何使用各種功能。去年我們篩選了 860 萬個網站,並在報告中呈現分析結果。這份報表包含統計資料,例如 <script> 元素中 asyncdefer 屬性的使用情形。有多少網站正確使用這些代碼、有多少網站完全未使用這些代碼,以及相較於 2020 年,有多少網站改善了這些代碼的使用情形。上次的 Web Almanac 報告提到,約 35% 的網站在同一個指令碼中使用兩個屬性,這屬於反模式,會降低效能。我們去年曾指出這個問題,今年則試圖瞭解情況是否有所改善。我也曾在 ngConf 和 Reliable Dev Summit 上發表演講,主題是網站效能。

網路年鑑的平面版。

Monika:你也非常積極回饋社群。你最近一直在烏干達的非政府組織 YIYA 擔任志工,請問這個合作關係是如何開始的?合作的主要目的為何?

Nishu:這一切都始於 GDE 團隊告知我們 YIYA 的志工機會。烏干達的非政府組織正在尋找工程師,協助他們準備內容或技術功能。這項計畫旨在協助烏干達的學齡兒童,並利用當地可用的科技 (不是電腦或課本,而是基本按鍵式手機和收音機) 提供教育機會。孩子可以撥打特定號碼接收一組資訊,然後撥打另一組號碼取得更多洞察資料,以此類推。在疫情期間,這項功能更是大派用場。

我一直都很關注社群和永續發展目標,因此決定與您聯絡。與 YIYA 團隊開完會後,我提供協助,協助他們處理 Python 指令碼或他們遇到的任何錯誤,以及任何與入口網站相關的問題。我們曾經短暫共事,

Monika:你 2022 年的計畫是什麼?您是否有特別想瞭解的內容?

Nishu:我要換工作並搬到其他國家/地區。我會著手處理網站的一般作業,改善網站效能,並使用 Golang 處理後端。我會繼續專注於網頁效能領域,因為這個領域非常複雜且有趣,而且有許多需要瞭解和最佳化的項目。即使我花了很多時間研究這項技術,仍有許多地方需要學習。舉例來說,我想瞭解如何使用 CDN 圖片資源,讓應用程式更快。我想成為網站效能專家,我相信自己正在逐漸朝這個目標邁進 :)

Monika:你提到自己在尚未成為專家時就開始寫作,當時只是寫下自己學到的知識。請問您會如何建議新手開發人員,如果他們覺得自己沒有任何內容可分享?

Nishu:我開始寫作時,也正是這種感覺。我認為我可能不該發布這則訊息。或許只是錯誤的結果?我擔心自己的文章無法幫助讀者。但重要的是,寫作幫助了我。我會在一段時間後忘記一些事情,然後再回頭查看先前寫的內容。寫下來是個好方法。

書籍 Angular Routing 的內容。

因此,我建議大家無論處於哪個階段,都應該持續寫作。即使您只完成了正在修習的課程的一部分,您還是可以透過寫下筆記來學習。您在某個時間點需要知道的資訊,可能對其他尚未知道該資訊的人有用。您不必是專家。寫作有助於你以及任何人,無論職涯階段為何。

Monika:建議你追蹤剛學習新事物的使用者,因為他們瞭解自己必須瞭解的所有事。一旦成為專家,就很難回想剛入門時的感受。您是否有任何建議,可以提供給剛開始學習網站開發的使用者?

Nishu:許多人會問,在起步階段應該選擇哪個架構,但我認為這不是正確的問題。無論我們在任何階段學習到什麼,都應該在後續階段派上用場。我建議所有人放棄限制,改用 HTML 或 JavaScript,這樣日後才會有利可圖。

然後把握任何機會。我曾在網路上看到一則訊息,說 Web Almanac 正在尋找作者,我只是想說:「這很有趣,或許能幫助大家提升效能。」因此,我成為了 JavaScript 章節的內容負責人,並花了六個月的時間撰寫這一章。所以我認為只要把握機會並努力工作就好。

Monika:你對網路技術的未來有任何預測或想法嗎?下一個熱門主題會是什麼?哪些產業將快速成長?

Nishu:我很高興現在可以在瀏覽器中執行伺服器,這是一大進步。舉例來說,我們最近推出了透過瀏覽器執行 Node.js 的功能,但在過去,如果系統未安裝 Node.js,就無法執行任何內容。我們現在可以透過瀏覽器執行任何操作。這對網路生態系統來說,是相當重要的進展。以及 OMT (Off the Main Thread)。執行緒的運作方式也將大幅改善。WebAssembly 正在進步,可讓開發人員這麼做,我認為這是網路生態系統的未來。