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

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 和網路技術的演講邀約。

Monika:請問你在技術方面的專業經驗為何?
Nishu:前兩年,我主要專注於 Angular 和網頁元件。我原本使用 Angular 建構網頁,但很快就決定進一步探索其他領域。我不想限制自己,以免需要切換專案。因此,我開始在 Angular 中建立網頁元件,以便在其他架構中使用。
我首先使用 Angular 建立網頁元件。我將其發布至 npm,並在 React 專案中用作示範。我稍後會在一些演講和簡報中討論這項問題。我接下來的工作需要使用 React 和 Typescript。由於我使用的是 React,因此我不再只使用單一架構,而是使用整個網頁。當時我對網路,尤其是網路效能有了更深入的瞭解。這時我必須開始考慮最大內容繪製 (LCP) 或首次顯示內容所需時間 (FCP),也就是應用程式載入所需的時間,或網頁轉譯所需的時間上限。我一直在努力選擇最佳做法,並改善應用程式的效能。
由於對網頁效能有興趣,我參與了 Web Almanac 的編寫,並撰寫了 JavaScript 章節。「網路年鑑」是一份年度報告,內容涵蓋網路的整體狀態,說明使用者如何使用各種功能。去年我們篩選了 860 萬個網站,並在報告中呈現分析結果。這份報表包含統計資料,例如 <script>
元素中 async
和 defer
屬性的使用情形。有多少網站正確使用這些代碼、有多少網站完全未使用這些代碼,以及相較於 2020 年,有多少網站改善了這些代碼的使用情形。上次的 Web Almanac 報告提到,約 35% 的網站在同一個指令碼中使用兩個屬性,這屬於反模式,會降低效能。我們去年曾指出這個問題,今年則試圖瞭解情況是否有所改善。我也曾在 ngConf 和 Reliable Dev Summit 上發表演講,主題是網站效能。

Monika:你也非常積極回饋社群。你最近一直在烏干達的非政府組織 YIYA 擔任志工,請問這個合作關係是如何開始的?合作的主要目的為何?
Nishu:這一切都始於 GDE 團隊告知我們 YIYA 的志工機會。烏干達的非政府組織正在尋找工程師,協助他們準備內容或技術功能。這項計畫旨在協助烏干達的學齡兒童,並利用當地可用的科技 (不是電腦或課本,而是基本按鍵式手機和收音機) 提供教育機會。孩子可以撥打特定號碼接收一組資訊,然後撥打另一組號碼取得更多洞察資料,以此類推。在疫情期間,這項功能更是大派用場。
我一直都很關注社群和永續發展目標,因此決定與您聯絡。與 YIYA 團隊開完會後,我提供協助,協助他們處理 Python 指令碼或他們遇到的任何錯誤,以及任何與入口網站相關的問題。我們曾經短暫共事,
Monika:你 2022 年的計畫是什麼?您是否有特別想瞭解的內容?
Nishu:我要換工作並搬到其他國家/地區。我會著手處理網站的一般作業,改善網站效能,並使用 Golang 處理後端。我會繼續專注於網頁效能領域,因為這個領域非常複雜且有趣,而且有許多需要瞭解和最佳化的項目。即使我花了很多時間研究這項技術,仍有許多地方需要學習。舉例來說,我想瞭解如何使用 CDN 圖片資源,讓應用程式更快。我想成為網站效能專家,我相信自己正在逐漸朝這個目標邁進 :)
Monika:你提到自己在尚未成為專家時就開始寫作,當時只是寫下自己學到的知識。請問您會如何建議新手開發人員,如果他們覺得自己沒有任何內容可分享?
Nishu:我開始寫作時,也正是這種感覺。我認為我可能不該發布這則訊息。或許只是錯誤的結果?我擔心自己的文章無法幫助讀者。但重要的是,寫作幫助了我。我會在一段時間後忘記一些事情,然後再回頭查看先前寫的內容。寫下來是個好方法。

因此,我建議大家無論處於哪個階段,都應該持續寫作。即使您只完成了正在修習的課程的一部分,您還是可以透過寫下筆記來學習。您在某個時間點需要知道的資訊,可能對其他尚未知道該資訊的人有用。您不必是專家。寫作有助於你以及任何人,無論職涯階段為何。
Monika:建議你追蹤剛學習新事物的使用者,因為他們瞭解自己必須瞭解的所有事。一旦成為專家,就很難回想剛入門時的感受。您是否有任何建議,可以提供給剛開始學習網站開發的使用者?
Nishu:許多人會問,在起步階段應該選擇哪個架構,但我認為這不是正確的問題。無論我們在任何階段學習到什麼,都應該在後續階段派上用場。我建議所有人放棄限制,改用 HTML 或 JavaScript,這樣日後才會有利可圖。
然後把握任何機會。我曾在網路上看到一則訊息,說 Web Almanac 正在尋找作者,我只是想說:「這很有趣,或許能幫助大家提升效能。」因此,我成為了 JavaScript 章節的內容負責人,並花了六個月的時間撰寫這一章。所以我認為只要把握機會並努力工作就好。
Monika:你對網路技術的未來有任何預測或想法嗎?下一個熱門主題會是什麼?哪些產業將快速成長?
Nishu:我很高興現在可以在瀏覽器中執行伺服器,這是一大進步。舉例來說,我們最近推出了透過瀏覽器執行 Node.js 的功能,但在過去,如果系統未安裝 Node.js,就無法執行任何內容。我們現在可以透過瀏覽器執行任何操作。這對網路生態系統來說,是相當重要的進展。以及 OMT (Off the Main Thread)。執行緒的運作方式也將大幅改善。WebAssembly 正在進步,可讓開發人員這麼做,我認為這是網路生態系統的未來。