Bài đăng nổi bật của cộng đồng GDE: Nishu Goel

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

Monika Janota
Monika Janota

Nishu trên sân khấu.

Nishu Goel là một kỹ sư web nổi tiếng người Ấn Độ, Chuyên gia nhà phát triển của Google phụ trách về Angular và công nghệ web, Microsoft là Chuyên gia có giá trị nhất của Microsoft. Bà là tác giả của các cuốn sách Định tuyến từng bước Angular (BPB, 2019) và Hướng dẫn thực hành về Angular (Educative, 2021) cũng như là tác giả của chương JavaScript trên Web Almanac năm 2021. Nishu hiện làm việc tại epilot GmbH với tư cách là một kỹ sư phụ trách hệ thống phần mềm toàn diện. Cô chia sẻ với chúng tôi về sự tham gia của cộng đồng, kế hoạch nghề nghiệp và những cách tốt nhất để học cách 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 một nhà phát triển và đảm nhận vai trò tích cực trong các cộng đồng nhà phát triển?

Nishu: Tôi đã lấy 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 mối quan tâm đến lập trình bắt đầu. Trong năm thứ ba làm kỹ thuật, chúng tôi đã thiết lập được mối gắn kết với cộng đồng nhà phát triển thông qua việc tôi tham gia cuộc thi Microsoft Puzzle Cup Nationals, nơi chúng tôi trình bày các giải pháp thông qua mã lập trình. Ý tưởng của ứng dụng mà chúng tôi xây dựng là mang lại các cơ hội giáo dục cho học sinh địa phương, đặc biệt là trẻ em gái. Tôi đã gặp gỡ những con người rất truyền cảm hứng, cả thí sinh lẫn nhà tổ chức trong hành trình này.

Năm 2018, sự nghiệp chuyên nghiệp của tôi tăng vọt và tôi bắt đầu làm việc với Angular. Angular trở thành công nghệ chính đã kết nối tôi với chương trình GDE. Cũng trong thời gian đó, tôi bắt đầu viết bài đăng trên blog và tạo nội dung xoay quanh chủ đề mà tôi vừa giảng dạy và học hỏi . 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 đã trình bày các khái niệm cơ bản về Angular. Ngay sau khi tôi bắt đầu phát biểu 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 mang đến nhiều lời mời diễn thuyết hơn về công nghệ Angular và công nghệ web.

Nishu và những người khác ở Ấn Độ.

Monika: Về mặt công nghệ, bạn có kinh nghiệm chuyên môn như thế nào?

Nishu: Đó là toàn bộ kiến thức về Angular và các thành phần web trong 2 năm đầu tiên. Tôi đã dùng Angular để xây dựng web, nhưng ngay sau đó tôi quyết định vượt xa hơn thế và khám phá các lĩnh vực khác. Tôi không muốn tự giới hạn bản thân trong trường hợp tôi 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 tài sản này lên npm và dùng làm bản minh hoạ trong dự án React. Tôi đã thảo luận vấn đề này trong một số buổi trò chuyện và thuyết trình sau này. Công việc tiếp theo của tôi là sử dụng React và Typescript. Vì tôi đang làm việc với React, nên tôi không chỉ sử dụng một khung nữa mà là web nói chung. Tại thời điểm đó, tôi đã học được rất nhiều về web, đặc biệt là hiệu suất của web. Đó là lúc tôi phải bắt đầu suy nghĩ về Thời gian hiển thị liên tục lớn nhất (LCP) hay Thời gian hiển thị nội dung đầu tiên (FCP), tức là thời gian cần để ứng dụng tải hoặc thời gian tối đa để trang hiển thị. Tôi đã nỗ lực lựa 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ì mối quan tâm đến hiệu suất web, tôi đã tham gia vào Niên giám web và viết chương JavaScript. Niên giám web là một báo cáo hằng năm về tình trạng của trang web nói chung. Báo cáo này cho chúng tôi biết mọi người đang sử dụng các tính năng khác nhau như thế nào. Năm ngoái, 8,6 triệu trang web đã được sàng lọc, dữ liệu đã được phân tích và trình bày trong báo cáo. Báo cáo này có những số liệu thống kê như mức sử dụng thuộc tính asyncdefer trong phần tử <script>. Có bao nhiêu trang web đang sử dụng đúng cách, bao nhiêu trang web hoàn toàn không sử dụng và bao nhiêu trang web cải thiện được so với năm 2020. Báo cáo Niên giám web gần đây nhất có đề 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à cách chống mô hình, làm giảm hiệu suất. Điều này đã được chỉ ra vào năm ngoái và năm nay chúng tôi đã cố gắng xem liệu tình hình có được cải thiện hay không. Tôi cũng đã nói chuyện tại ngConf và Hội nghị dành cho nhà phát triển đáng tin cậy, tại đây tôi tập trung vào hiệu suất của web.

Ấn bản in của Niên giám web.

Monika: Bạn cũng tham gia rất nhiều vào việc quyên góp cho cộng đồng. Gần đây, bạn có tham gia tình nguyện với một tổ chức phi chính phủ (NGO) của Uganda – YIYA – việc đó đã bắt đầu như thế nào và mục đích chính của sự hợp tác đó là gì?

Nishu: Ban đầu, nhóm GDE đã thông báo cho chúng tôi về cơ hội tình nguyện của YIYA. Tổ chức phi chính phủ của Uganda đang tìm kiếm các kỹ sư để giúp họ chuẩn bị nội dung hoặc hỗ trợ các tính năng kỹ thuật. Chương trình này hướng đến việc hỗ trợ trẻ em ở độ tuổi đi học ở Uganda và mang đến cho các em cơ hội giáo dục bằng những công nghệ được cung cấp tại địa phương – không phải máy tính hay sách giáo khoa, mà là cho điện thoại và đài bàn phím cơ bản. Trẻ sẽ gọi đến một số điện thoại nhất định và nhận một nhóm thông tin, gọi thêm một số khác để biết thêm thông tin chi tiết, v.v. Chế độ này thậm chí còn hữu ích hơn trong thời gian xảy ra đại dịch.

Vì luôn tham gia vào các mục tiêu phát triển bền vững và cộng đồng, nên tôi quyết định liên hệ với họ. Sau cuộc họp với nhóm YIYA, tôi đề nghị trợ giúp về các tập lệnh Python hoặc bất kỳ lỗi nào họ gặp phải, bất kỳ vấn đề nào 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? Có điều gì cụ thể mà bạn đang tập trung vào không?

Nishu: Tôi đang chuyển đổi công việc và chuyển sang một quốc gia khác. Tôi sẽ nghiên cứu về web nói chung, cải thiện hiệu suất trang web cũng như trên chương trình phụ trợ, sử dụng Golang. Tôi sẽ tiếp tục tập trung vào khía cạnh hiệu suất web vì nó rất thú vị và phức tạp, cũng như có rất nhiều điều cần hiểu và tối ưu hoá. Ngay cả bây giờ, sau khi dành rất nhiều thời gian cho công việc này, tôi vẫn còn rất nhiều điều để học hỏi. Ví dụ: tôi muốn tìm hiểu việc sử dụng CDN cho tài nguyên hình ảnh sẽ giúp tôi cải thiện ứng dụng nhanh hơn như thế nào. Tôi muốn trở thành chuyên gia về hiệu suất web — Tôi đang từng bước đạt được điều đó, tôi nghĩ như vậy :)

Monika: Bạn từng đề cập đến việc bắt đầu viết từ khi chưa phải chuyên gia, tức là bạn chỉ viết những gì mình học được. Bạn có lời khuyên gì dành cho các nhà phát triển mới vừa trải qua và cảm thấy họ không có điều gì để chia sẻ?

Nishu: Đó chính là cảm giác của tôi khi bắt đầu viết. Tôi nghĩ có lẽ mình không nên công bố điều này? Có thể là do nhầm lẫn? Tôi lo ngại rằng bài viết của mình sẽ không giúp ích cho độc giả. Nhưng điều quan trọng là bài viết đã giúp ích cho tôi. Tôi thường quên mọi thứ sau một thời gian và sau đó quay lại điều mình đã viết trước đó. Viết ra mọi thứ là một ý tưởng hay.

Cuốn sách về Định tuyến Angular trên bảng.

Vì vậy, tôi khuyên mọi người, hãy viết ở bất kỳ giai đoạn nào. Ngay cả khi chỉ mới hoàn thành một phần của khoá học, bạn vẫn đang học bằng cách viết ra nội dung đó. Một phần thông tin mà bạn đã biết vào một lúc nào đó có thể hữu ích cho những người chưa biết điều đó. Bạn không cần phải là chuyên gia. Việc viết lách sẽ giúp bạn. Và bất cứ 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 vừa học được điều gì đó vì họ biết mọi thứ mà họ phải tìm ra. Một khi đã là chuyên gia, bạn sẽ không thể nhớ được trải nghiệm khi mới bắt đầu. Và những người mới bắt đầu phát triển web có lời khuyên nào không?

Nishu: Nhiều người hỏi họ nên chọn khung làm việc nào khi bắt đầu, nhưng tôi cho rằng đó chưa phải là câu hỏi phù hợp. Bất kỳ điều gì chúng ta học được vào bất cứ lúc nào cũng sẽ có ích ở giai đoạn sau. Tôi nghĩ mọi người nên bỏ các giới hạn và bắt đầu với HTML hoặc JavaScript — những cách này sẽ có lợi nhuận trong tương lai.

Và sau đó, hãy nắm bắt bất kỳ cơ hội nào đế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ề niên giám web tìm kiếm tác giả. Tôi chỉ nghĩ: "Ồ, thật thú vị, cái 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 trưởng nhóm nội dung cho chương JavaScript và tôi đã dành 6 tháng để viết chương trình này. Vì vậy, tôi nghĩ rằng vấn đề ở đây chỉ là nắm bắt cơ hội và làm việc chăm chỉ.

Monika: Bạn có dự đoán hoặc ý tưởng nào về tương lai của công nghệ web nói chung không? Chủ đề nóng hổi tiếp theo sẽ là gì? Những gì sẽ phát triển nhanh chóng?

Nishu: Tôi rất vui vì giờ đây chúng tôi có thể chạy máy chủ trong các trình duyệt. Đây là một tiến bộ tuyệt vời. Ví dụ: gần đây, tính năng chạy Node.js từ trình duyệt đã được giới thiệu, trong khi trước đây, chúng tôi không thể chạy bất cứ thứ gì nếu không cài đặt Node.js trong hệ thống của mình. Giờ đây, chúng ta có thể làm bất cứ việc gì trên trình duyệt. Đây là một bước tiến lớn trong hệ sinh thái web. Và OMT — Ra khỏi chuỗi chính. Việc xử lý các luồng cũng sẽ được cải thiện rất nhiều. Web hội đang phát triển và cho phép các nhà phát triển làm được điều đó, và tôi nghĩ đó là tương lai của hệ sinh thái web.