Nishu Goel là một kỹ sư web nổi tiếng đến từ Ấn Độ, Chuyên gia nhà phát triển của Google về Angular và các công nghệ web. Cô chia sẻ với chúng tôi về việc tham gia cộng đồng, kế hoạch nghề nghiệp và những cách hay nhất để học phát triển web.

Nishu Goel là một kỹ sư web nổi tiếng đến từ Ấn Độ, Chuyên gia phát triển của Google về Angular và các công nghệ web, Chuyên gia có giá trị nhất của Microsoft. Cô là tác giả của cuốn Step by Step Angular Routing (BPB, 2019) và A Hands-on Guide to Angular (Educative, 2021) cũng như tác giả của chương JavaScript trong Web Almanac 2021. Nishu hiện là kỹ sư full stack tại epilot GmbH. Cô chia sẻ với chúng tôi về việc tham gia cộng đồng, kế hoạch nghề nghiệp và những cách hay nhất để học phát triển web.
Monika: Hãy bắt đầu bằng câu chuyện của bạn. Điều gì đã truyền cảm hứng cho bạn trở thành nhà phát triển và đóng vai trò tích cực trong cộng đồng nhà phát triển?
Nishu: Tôi có bằng cử nhân khoa học máy tính, chúng tôi đã nghiên cứu cấu trúc dữ liệu và đó là nơi bắt đầu sự quan tâm đến lập trình. Trong năm thứ ba của chương trình kỹ sư, tôi đã tham gia cuộc thi Microsoft Imagine Cup Nationals và kết nối với cộng đồng nhà phát triển thông qua việc trình bày các giải pháp bằng mã. Ý tưởng của ứng dụng mà chúng tôi xây dựng là mang đến cơ hội học tập cho học sinh địa phương, đặc biệt là các bé gái. Tôi đã gặp một số người rất truyền cảm hứng, cả thí sinh và ban tổ chức trong hành trình này.
Năm 2018, tôi bắt đầu sự nghiệp chuyên nghiệp và làm việc với Angular. Angular trở thành công nghệ chính giúp tôi kết nối với chương trình GDE. Cũng trong khoảng thời gian đó, tôi bắt đầu viết bài đăng trên blog và tạo nội dung về chủ đề mà tôi đang làm việc và tìm hiểu . Dhananjay Kumar đã giúp tôi bắt đầu hành trình này và đảm bảo tôi luôn đi đúng hướng. Các bài viết đầu tiên của tôi đã đề cập đến kiến thức cơ bản về Angular. Ngay sau đó, tôi bắt đầu nói chuyện tại các sự kiện, sự kiện đầu tiên là ngNepal, Hội nghị Angular của Nepal. Điều này dẫn đến việc nhận được nhiều lời mời nói chuyện hơn về Angular và các công nghệ web.

Monika: Bạn có kinh nghiệm chuyên môn gì về công nghệ?
Nishu: Trong hai năm đầu tiên, chúng tôi chỉ tập trung vào Angular và các thành phần web. Tôi đang sử dụng Angular để xây dựng trang web, nhưng tôi sớm quyết định đi xa hơn và khám phá các lĩnh vực khác. Tôi không muốn giới hạn bản thân trong trường hợp phải chuyển đổi dự án. Đó là cách tôi bắt đầu tạo các thành phần web trong Angular để sử dụng trong các khung khác.
Việc đầu tiên tôi làm là tạo các thành phần web bằng Angular. Tôi đã phát hành ứng dụng này lên npm và sử dụng ứng dụng này làm bản minh hoạ trong một dự án React. Tôi đã thảo luận về vấn đề này trong một số bài nói chuyện và bài trình bày sau này. Công việc tiếp theo của tôi yêu cầu sử dụng React và Typescript. Giờ đây, vì đang làm việc với React, tôi không chỉ sử dụng một khung nữa mà còn sử dụng web nói chung. Tại thời điểm đó, tôi đã học được nhiều điều về web, đặc biệt là hiệu suất web. Đó là lúc tôi bắt đầu nghĩ đến Thời gian hiển thị nội dung lớn nhất (LCP) hoặc Thời gian hiển thị nội dung đầu tiên (FCP), tức là thời gian cần thiết để ứng dụng của bạn tải hoặc thời gian tối đa để trang hiển thị. Tôi đã nỗ lực để chọn các phương pháp hay nhất và cải thiện hiệu suất của các ứng dụng.
Vì quan tâm đến hiệu suất web nên tôi đã tham gia vào Web Almanac và viết chương về JavaScript. Web Almanac là một báo cáo hằng năm về trạng thái chung của web. Báo cáo này cho chúng ta biết cách mọi người sử dụng các tính năng khác nhau. Năm ngoái, chúng tôi đã kiểm tra 8,6 triệu trang web, sau đó phân tích và trình bày dữ liệu trong báo cáo này. Báo cáo này bao gồm các số liệu thống kê như mức sử dụng thuộc tính async
và defer
trong phần tử <script>
. Có bao nhiêu trang web đang sử dụng đúng cách, bao nhiêu trang web không sử dụng và bao nhiêu trang web đã cải thiện so với năm 2020. Báo cáo Web Almanac gần đây nhất đề cập rằng khoảng 35% trang web sử dụng hai thuộc tính trên cùng một tập lệnh. Đây là một mẫu ngược, làm giảm hiệu suất. Chúng tôi đã chỉ ra vấn đề này vào năm ngoái và năm nay, chúng tôi đã cố gắng xem tình hình có cải thiện hay không. Tôi cũng đã nói chuyện tại ngConf và Reliable Dev Summit, trong đó tôi tập trung vào hiệu suất của web.

Monika: Bạn cũng rất tích cực đóng góp cho cộng đồng. Gần đây, bạn đã làm tình nguyện viên cho một NGO ở Uganda có tên là YIYA. Mọi chuyện bắt đầu như thế nào và điểm chính của sự hợp tác đó là gì?
Nishu: Mọi chuyện bắt đầu khi nhóm GDE thông báo cho chúng tôi về cơ hội làm tình nguyện viên với YIYA. Tổ chức phi chính phủ ở Uganda này đang tìm kiếm kỹ sư để giúp họ chuẩn bị nội dung hoặc các tính năng kỹ thuật. Chương trình này nhằm mục đích trao quyền cho trẻ em ở độ tuổi đi học tại Uganda và mang đến cho các em cơ hội học tập bằng các công nghệ có sẵn tại địa phương, không phải máy tính hay sách giáo khoa, mà là điện thoại bàn phím và đài cơ bản. Trẻ sẽ quay số một số điện thoại nhất định và nhận được một bộ thông tin, quay số một số khác để biết thêm thông tin chi tiết, v.v. Tính năng này càng trở nên hữu ích hơn trong thời gian đại dịch.
Vì luôn quan tâm đến cộng đồng và các mục tiêu phát triển bền vững, nên tôi quyết định liên hệ với bạn. Sau cuộc họp với nhóm YIYA, tôi đã đề nghị hỗ trợ về các tập lệnh Python hoặc mọi lỗi mà họ gặp phải, mọi vấn đề với cổng thông tin. Chúng tôi đã làm việc cùng nhau trong một khoảng thời gian ngắn.
Monika: Bạn có kế hoạch gì cho năm 2022? Bạn có tập trung vào điều gì cụ thể không?
Nishu: Tôi đang chuyển đổi công việc và chuyển đến một quốc gia khác. Nhìn chung, tôi sẽ làm việc trên web, cải thiện hiệu suất của trang web và cũng làm việc trên phần phụ trợ bằng Golang. Tôi sẽ tiếp tục tập trung vào lĩnh vực hiệu suất web vì lĩnh vực này rất thú vị và phức tạp, đồng thời có nhiều điều cần tìm hiểu và tối ưu hoá. Ngay cả bây giờ, sau khi dành nhiều thời gian cho việc đó, tôi vẫn còn rất nhiều điều cần tìm hiểu. Ví dụ: tôi muốn tìm hiểu cách sử dụng CDN cho tài nguyên hình ảnh để giúp ứng dụng của mình hoạt động nhanh hơn nữa. Tôi muốn trở thành chuyên gia về hiệu suất web. Tôi tin rằng mình đang dần đạt được điều đó :)
Monika: Bạn đã đề cập đến việc bắt đầu viết khi chưa phải là chuyên gia, bạn chỉ viết những gì mình đang học. Bạn sẽ đưa ra lời khuyên gì cho các nhà phát triển mới tham gia và cảm thấy họ không có gì để chia sẻ?
Nishu: Đó chính xác là cảm giác của tôi khi bắt đầu viết. Tôi nghĩ có lẽ tôi không nên đăng video này. Có thể thông tin đó không chính xác? Tôi lo rằng bài viết của mình sẽ không giúp ích được cho người đọc. Nhưng điều quan trọng là việc viết lách đã giúp tôi. Tôi sẽ quên mọi thứ sau một thời gian rồi quay lại với những gì mình đã viết trước đó. Bạn nên viết ra những điều cần làm.

Vì vậy, tôi khuyên mọi người chỉ cần viết, ở bất kỳ giai đoạn nào. Ngay cả khi bạn chỉ mới hoàn thành một phần của một khoá học, bạn vẫn đang học bằng cách ghi lại nội dung đó. Một thông tin mà bạn biết được tại một thời điểm nào đó có thể hữu ích cho những người khác chưa biết thông tin đó. Bạn không cần phải là chuyên gia. Việc viết sẽ giúp bạn. Và bất kỳ ai, ở bất kỳ giai đoạn nào trong sự nghiệp.
Monika: Tốt nhất là bạn nên theo dõi những người mới học được điều gì đó vì họ biết tất cả những điều họ đã phải tìm hiểu. Khi đã trở thành chuyên gia, bạn sẽ khó nhớ được cảm giác khi mới bắt đầu. Bạn có lời khuyên nào cho những người mới bắt đầu phát triển web không?
Nishu: Nhiều người hỏi nên chọn khung nào khi bắt đầu, nhưng tôi nghĩ đó không phải là câu hỏi phù hợp. Mọi kiến thức chúng ta học được đều sẽ hữu ích ở giai đoạn sau. Tôi khuyên mọi người nên bỏ qua những giới hạn này và bắt đầu với HTML hoặc JavaScript. Đây sẽ là những ngôn ngữ có lợi trong tương lai.
Sau đó, hãy nắm bắt mọi cơ hội đến với bạn. Điều này xảy ra với tôi khi tôi tình cờ tìm thấy thông tin về Web Almanac đang tìm kiếm tác giả. Tôi chỉ nghĩ rằng "ồ, thật thú vị, điều này có thể giúp mọi người về mặt hiệu suất". Đó là cách tôi trở thành người phụ trách nội dung cho chương JavaScript và tôi đã dành 6 tháng để viết chương này. Vì vậy, tôi nghĩ bạn chỉ cần nắm bắt cơ hội và làm việc chăm chỉ.
Monika: Bạn có dự đoán hay ý tưởng nào về tương lai của công nghệ web nói chung không? Chủ đề nào sẽ trở thành chủ đề nóng tiếp theo? Điều gì sẽ phát triển nhanh chóng?
Nishu: Tôi rất thích việc chúng ta hiện có thể chạy máy chủ trong trình duyệt. Đây là một bước tiến lớn. Ví dụ: gần đây, chúng tôi đã giới thiệu tính năng chạy Node.js từ trình duyệt, trong khi trước đây chúng ta không thể chạy bất kỳ ứng dụng nào nếu không cài đặt Node.js trong hệ thống. Bây giờ, chúng ta có thể làm bất cứ điều gì từ trình duyệt. Đây là một bước tiến lớn trong hệ sinh thái web. Và OMT – Ngoài luồng chính. Việc xử lý luồng cũng sẽ được cải thiện đáng kể. Web Assembly đang phát triển và cho phép nhà phát triển làm được điều đó. Tôi nghĩ đó là tương lai của hệ sinh thái web.