Nishu Goel to znany indyjski web engineer, ekspert Google ds. technologii webowych i Angulara. Opowiedziała nam o zaangażowaniu w społeczność, planach zawodowych i najlepszych sposobach na naukę tworzenia stron internetowych.

Nishu Goel to znany inżynier webowy z Indii, ekspert Google ds. programowania w Angularze i technologiach internetowych oraz specjalista Microsoft Most Valuable Professional. Jest autorką książek Step by Step Angular Routing (BPB, 2019) i A Hands-on Guide to Angular (Educative, 2021) oraz rozdziału o JavaScript w książce Web Almanac 2021. Nishu pracuje obecnie w epilot GmbH jako inżynier pełnego stosu. Opowiedziała nam o zaangażowaniu w społeczność, planach zawodowych i najlepszych sposobach na naukę tworzenia stron internetowych.
Monika: Zacznijmy od Twojej historii. Co zainspirowało Cię do zostania programistką i aktywnego uczestnictwa w społecznościach programistów?
Nishu: skończyłem studia licencjackie z informatyki. W ramach zajęć zajmowaliśmy się strukturami danych i tam właśnie zaczęło się moje zainteresowanie programowaniem. W 3 roku studiów inżynierskich nawiązałam kontakt z społecznością deweloperów, biorąc udział w krajowym konkursie Microsoft Imagine Cup, w którym prezentowaliśmy rozwiązania za pomocą kodu. Celem aplikacji było udostępnienie możliwości edukacyjnych lokalnym uczniom, zwłaszcza dziewczętom. Podczas tej podróży poznałem wielu inspirujących ludzi, zarówno uczestników, jak i organizatorów.
W 2018 r. moja kariera nabrała tempa i zaczęłam pracować z Angularem. Angular stał się główną technologią, która połączyła mnie z programem GDE. W tym samym czasie zaczęłam pisać posty na blogu i tworzyć treści na tematy, które mnie interesowały i które chciałam poznać . Dhananjay Kumar pomógł mi rozpocząć tę podróż i zadbał o to, abym nie zboczył z drogi. Moje pierwsze artykuły dotyczyły podstaw Angulara. Wkrótce zaczęłam występować na konferencjach. Pierwszą z nich była konferencja ngNepal, czyli konferencja Angulara w Nepalu. Dzięki temu otrzymałem więcej zaproszeń do wygłoszenia prezentacji na temat Angulara i technologii internetowych.

Monika: Jakie masz doświadczenie zawodowe w zakresie technologii?
Nishu: przez pierwsze 2 lata zajmowaliśmy się głównie Angularem i komponentami internetowymi. Do tworzenia stron internetowych używałem Angulara, ale wkrótce postanowiłem pójść dalej i spróbować swoich sił w innych dziedzinach. Nie chciałem ograniczać się na wypadek, gdybym musiał zmienić projekt. W ten sposób zaczęłam tworzyć komponenty internetowe w Angular do użycia w innych frameworkach.
Najpierw utworzyłem komponenty internetowe za pomocą Angulara. Opublikowałem go na npm i użyłem jako demonstracji w projekcie React. Omówię to w ramach moich wystąpień i prezentacji. Następna praca wymagała użycia React i Typescript. Ponieważ pracowałem z React, nie używałem już tylko jednego frameworka, ale całej sieci. Wtedy dowiedziałem się wielu rzeczy o internecie, zwłaszcza o jego wydajności. Wtedy zacząłem myśleć o największym wyrenderowaniu treści (LCP) lub pierwszym wyrenderowaniu treści (FCP), które oznaczają czas wczytywania aplikacji lub maksymalny czas potrzebny na wyrenderowanie strony. Pracuję nad wyborem sprawdzonych metod i poprawą wydajności aplikacji.
Ponieważ interesuje mnie wydajność stron internetowych, wziąłem udział w przygotowaniu Almanachu Internetu i napisałem rozdział o JavaScriptzie. Almanach internetowy to roczny raport o ogólnym stanie internetu, który informuje nas o tym, jak użytkownicy korzystają z różnych funkcji. W zeszłym roku zweryfikowaliśmy 8,6 mln witryn, a zebrane dane zostały przeanalizowane i przedstawione w raporcie. Raport zawiera statystyki, np. użycie atrybutów async
i defer
w elemencie <script>
. Ile witryn używa ich prawidłowo, ile w ogóle z nich nie korzysta i ile z nich wprowadziło zmiany w porównaniu z 2020 r. Z ostatniego raportu Web Almanac wynika, że około 35% witryn używało 2 atrybutów w tym samym skrypcie, co było nieprawidłowym rozwiązaniem, które zmniejszało skuteczność. Wskazano na to w zeszłym roku, a w tym roku sprawdziliśmy, czy sytuacja się poprawiła. Wystąpiłem też na konferencjach ngConf i Reliable Dev Summit, gdzie skupiłem się na wydajności stron internetowych.

Monika bardzo angażujesz się w działania na rzecz społeczności. Ostatnio pracowałaś jako wolontariuszka w ugandańskiej organizacji pozarządowej YIYA. Jak zaczęła się Wasza współpraca i co było jej głównym celem?
Nishu: zaczęło się od tego, że zespół GDE poinformował nas o możliwości wolontariatu w YIYA. Ugandyjska organizacja pozarządowa szukała inżynierów, którzy pomogliby jej w przygotowaniu treści i wprowadzeniu funkcji technicznych. Program ma na celu wzmocnienie pozycji dzieci w wieku szkolnym w Ugandzie i zapewnienie im możliwości zdobycia edukacji przy użyciu technologii dostępnych lokalnie – nie komputerów ani podręczników, ale prostych telefonów z klawiaturą i radiów. Dzieci mogły wybrać numer, aby uzyskać pewien zestaw informacji, a następnie inny, aby uzyskać więcej informacji, i tak dalej. W czasie pandemii stał się jeszcze bardziej przydatny.
Zawsze interesowałam się społecznością i celami zrównoważonego rozwoju, więc postanowiłam się z Tobą skontaktować. Po spotkaniu z zespołem YIYA zaoferowałem pomoc w sprawie skryptów Pythona lub znalezionych przez nich błędów oraz problemów z portalem. Pracowaliśmy razem przez krótki czas.
Monika: Jakie masz plany na 2022 rok? Czy jest coś, na czym szczególnie się skupiasz?
Nishu: zmieniam pracę i przeprowadzam się do innego kraju. Będę zajmować się ogólnie stronami internetowymi, poprawiając wydajność witryn, a także backendem, używając Golanga. Nadal będę się skupiać na wydajności stron internetowych, ponieważ jest to bardzo interesujący i skomplikowany temat, a do tego trzeba się wiele nauczyć i optymalizować. Nawet teraz, gdy poświęciłem na to dużo czasu, wciąż jest jeszcze wiele do nauczenia. Chciałbym na przykład dowiedzieć się, jak korzystanie z sieci CDN do zasobów obrazów pomoże mi jeszcze bardziej przyspieszyć aplikację. Chcę zostać ekspertem w zakresie wydajności stron internetowych – i jak mi się wydaje, powoli się do tego zbliżam :)
Monika wspominałaś, że zaczęłaś pisać, gdy nie byłaś jeszcze ekspertem, i pisałaś tylko o tym, czego się uczysz. Jaką radę dałbyś/dałabyś nowym deweloperom, którzy uważają, że nie mają nic do pokazania?
Nishu: dokładnie tak się czułem, gdy zaczynałem pisać. Myślałem, że może nie powinienem tego publikować. Może to po prostu błąd? Obawiałam się, że moje teksty nie będą pomocne dla czytelników. Najważniejsze było jednak to, że pisanie pomagało mi w rozwijaniu się. Po jakimś czasie zapominam, co napisałem wcześniej, i wracam do tego. Notowanie jest świetnym pomysłem.

Dlatego sugeruję wszystkim, aby pisali, niezależnie od etapu. Nawet jeśli ukończysz tylko jedną część kursu, to i tak uczysz się, zapisując informacje. Informacje, które w jakimś momencie się dowiesz, mogą być przydatne dla innych osób, które jeszcze ich nie znają. Nie musisz być ekspertem. Pisanie pomoże Ci w tym. I każdy, na dowolnym etapie kariery.
Monika najlepiej śledzić osoby, które właśnie czegoś się nauczyły, ponieważ znają wszystkie rzeczy, które musiały odkryć. Gdy już staniesz się ekspertem, trudno będzie Ci przypomnieć sobie, jak to było, gdy dopiero zaczynałeś(-aś) korzystać z Google Ads. Czy masz jakąś radę dla osób, które dopiero zaczynają tworzyć strony internetowe?
Nishu: wiele osób na początku pyta, którą platformę wybrać, ale moim zdaniem nie jest to właściwe pytanie. Wszystko, czego uczymy się w dowolnym momencie, powinno być przydatne również na późniejszym etapie. Radzę każdemu zrezygnować z ograniczeń i zaczynać od HTML lub JavaScriptu – to się opłaci w przyszłości.
Wykorzystaj każdą nadarzającą się okazję. Stało się tak, gdy szukałem informacji o Almanachu internetowym. Pomyślałem sobie: „To interesujące, może to pomóc wszystkim w zwiększeniu wydajności”. W ten sposób zostałam osobą kierującą pracami nad rozdziałem dotyczącym JavaScriptu. Pisanie zajęło mi 6 miesięcy. Myślę, że chodzi tylko o to, żeby wykorzystywać możliwości i ciężko pracować.
Monika czy masz jakieś prognozy lub pomysły dotyczące przyszłości technologii internetowych? Co będzie następnym gorącym tematem? Co będzie szybko rosnąć?
Nishu: bardzo się cieszę, że możemy teraz uruchamiać serwery w przeglądarkach. To wielki postęp. Wprowadziliśmy na przykład możliwość uruchamiania Node.js z przeglądarki. Wcześniej nie mogliśmy uruchomić niczego bez zainstalowania Node.js w naszych systemach. Teraz możemy robić wszystko w przeglądarce. To ogromny krok naprzód w ekosystemie internetowym. OMT – Off the Main Thread. Poprawimy też działanie wątków. Web Assembly jest coraz bardziej zaawansowane i umożliwia programistom robienie tego, co uważam za przyszłość ekosystemu internetowego.