Najciekawsze momenty społeczności GDE: Nishu Goel

Nishu Goel jest znanym inżynierem ds. internetu z Indii, ekspertem Google Developers w dziedzinie Angular i technologii internetowych. Opowiedziała nam o swoim zaangażowaniu w społeczność, planach kariery i najlepszych sposobach na tworzenie stron internetowych.

Monika Janota
Monika Janota

Nishu na scenie.

Nishu Goel jest znanym inżynierem ds. internetu z Indii, ekspertem Google ds. programistów w dziedzinie Angular i technologii internetowych oraz Microsoft Most Valuable Professional. Jest autorką książek Step by Step Angular Routing (BPB, 2019) i A Hands-on Guide to Angular (Educative, 2021 r.), a także jest autorem rozdziału o JavaScript w Web Almanac 2021. Nishu obecnie pracuje w epilot GmbH jako inżynier zajmujący się pełnym stosem. Opowiedziała nam o swoim zaangażowaniu w społeczność, planach kariery i najlepszych sposobach na tworzenie stron internetowych.

Monika: Zacznijmy od Twojej historii. Co zainspirowało Cię do zostania deweloperem i aktywnej roli w społecznościach programistów?

Nishu: Mam dyplom licencjacki z informatyki i studiowaliśmy struktury danych. To właśnie zaczęło się zainteresowanie programowaniem. W trzecim roku programowania nawiązałam więź ze społecznością programistów dzięki udziałowi w konkursie Microsoft CREATE Cup Nationals, w którym prezentowaliśmy rozwiązania za pomocą kodu. Celem aplikacji, którą stworzyliśmy, było stworzenie możliwości edukacyjnych uczniom z okolicy, a zwłaszcza dziewczętom. Poznałam w tej podróży wiele inspirujących osób, zarówno uczestników, jak i organizatorów.

W 2018 roku moja kariera zawodowa nabrała rozpędu i zaczęłam pracę z Angular. Angular stała się podstawową technologią, która połączyła mnie z programem GDE. W tym samym czasie zaczęłam pisać posty na blogu oraz publikować treści związane z tematem, nad którym pracowałam i się uczę . Dhananjay Kumar pomógł mi rozpocząć tę podróż i pomóc mi w realizacji tego celu. Moje pierwsze artykuły dotyczyły podstaw Angular. Wkrótce potem przemówiłem na wydarzeniach – pierwszym z nich był ngNepal, czyli Nepalska Konferencja Angular. W efekcie pojawiło się więcej zaproszeń na temat Angular i technologii internetowych.

Nishu i inni ludzie z Indii.

Monika: Jakie jest Twoje doświadczenie zawodowe w kontekście technologii?

Nishu: przez pierwsze 2 lata zajmowaliśmy się Angularem i komponentami internetowymi. Do tworzenia sieci używałam Angular, ale wkrótce postanowiłam pójść o krok dalej i poznać inne dziedziny. Nie chciałem się ograniczać na wypadek, gdyby trzeba było przełączać projekty. W ten sposób zacząłem tworzyć w Angular komponenty internetowe do wykorzystania na innych platformach.

Pierwszą rzeczą, jaką zrobiłem, było utworzenie komponentów sieciowych w Angular. Opublikowałem ją w npm i używałem jako wersji demonstracyjnej w projekcie React. Omówiłam to później podczas niektórych wykładów i prezentacji. Kolejne zadanie polegało na użyciu React i Typescript. Pracując z React, zacząłem używać nie tylko jednej platformy, ale ogólnie internetu. W tym czasie wiele się dowiedziałem o internecie, zwłaszcza jego działaniu. Wtedy zacząłem zastanawiać się nad największym wyrenderowaniem treści (LCP) lub pierwszym wyrenderowaniem treści (FCP), czyli tym, ile czasu zajmie wczytanie aplikacji lub jaki będzie maksymalny czas jej renderowania. Staram się wybierać sprawdzone metody i zwiększać wydajność aplikacji.

Z powodu zainteresowania wydajnością w internecie zaangażowałam się w almanach internetowy i napisałam rozdział o JavaScript. Web Almanac to roczny raport o ogólnym stanie internetu – pokazuje, w jaki sposób użytkownicy korzystają z różnych funkcji. W ubiegłym roku skontrolowaliśmy 8,6 miliona witryn, a dane zostały przeanalizowane i przedstawione w raporcie. Raport zawiera statystyki takie jak wykorzystanie atrybutów async i defer w elemencie <script>. Ile witryn używa ich poprawnie, ile z nich w ogóle z niej nie korzysta, a ile z nich wprowadziło ulepszenia w porównaniu z 2020 rokiem. W ostatnim raporcie Web Almanac wspomniano, że około 35% witryn używa 2 atrybutów przy użyciu tego samego skryptu, co zmniejszało skuteczność kampanii. W ubiegłym roku zauważyliśmy tę kwestię, ale w tym roku próbowaliśmy sprawdzić, czy sytuacja ulegnie poprawie. Rozmawiałem też na ngConf i Reliable Dev Summit, podczas których skupiłem się na wydajności sieci.

Wydanie drukowane z internetowego almanaku.

Monika: Bardzo angażujesz się w udzielanie pomocy społeczności. Ostatnio bierzesz udział w wolontariacie w ugandyjskiej organizacji pozarządowej YIYA – jak to się zaczęło i jaki był główny cel tej współpracy?

Nishu: Zaczęło się od zespołu GDE, który poinformował nas o możliwości wolontariatu w YIYA. Ugandyjska organizacja pozarządowa szukała inżynierów, którzy mogliby pomóc w przygotowaniu treści lub w kwestiach technicznych. Program ma na celu zapewnienie możliwości uczenia się dzieciom w wieku szkolnym w Ugandzie i zapewnienie im możliwości zdobywania wiedzy dzięki wykorzystaniu lokalnie dostępnych technologii – nie z komputerów ani podręczników, ale raczej z podstawowych telefonów i radiarów z klawiaturami. Dzieci dzwonią pod określony numer i otrzymują zestaw informacji, wybierają kolejny, aby zobaczyć więcej statystyk itd. W trakcie pandemii narzędzie okazało się jeszcze bardziej przydatne.

Od zawsze byłam zaangażowana w działania na rzecz społeczności i zrównoważonego rozwoju, więc postanowiłam skontaktować się z Tobą. Po spotkaniu z zespołem YIYA zaproponowałem mi pomoc związaną ze skryptami Pythona, wykrytymi błędami i problemami z portalem. Pracowaliśmy razem przez krótki czas.

Monika: Jakie masz plany na 2022 rok? Czy jest coś, na czym się skupiasz?

Nishu: Zmieniam pracę i przeprowadzam się do innego kraju. Będę ogólnie pracować w sieci, poprawiając jej wydajność, jak również w backendzie, używając Golang. Będę nadal koncentrować się na obszarze skuteczności w internecie, ponieważ jest on bardzo interesujący i złożony oraz wymaga sporo do zrozumienia i optymalizacji. Mimo że poświęciłam na to sporo czasu, nadal mogę się wiele nauczyć. Chętnie dowiem się na przykład, w jaki sposób wykorzystanie sieci CDN na potrzeby zasobów graficznych pomoże mi jeszcze bardziej przyspieszyć działanie aplikacji. Chcę zostać ekspertem od skuteczności w internecie – osiągam to stopniowo i lubię wierzyć :)

Monika: Stwierdziłeś, że zaczynasz pisać w czasie, gdy nie jesteś ekspertem, a po prostu piszesz właśnie to, czego się uczysz. Jakiej rady udzielisz nowym deweloperom, którzy uważają, że nie mają nic do przekazania?

Nishu: Tak się czułam, gdy zaczęłam pisać. Pomyślałam, że może nie powinnam tego publikować. A może to po prostu błąd? Obawiałam się, że moje teksty nie pomogą czytelnikom. Ważne było jednak, że pomogło mi to. Po jakimś czasie zdarzało mi się zapomnieć o czymś, a potem wrócić do tego, co wcześniej napisałem. Notowanie to świetny pomysł.

Książka Angular Routing na tabeli.

Sugeruję więc każdemu – po prostu napiszcie, na dowolnym etapie. Nawet jeśli masz już za sobą tylko jedną część kursu, uczą się, zapisując go na bieżąco. Wiedza, którą odkryjesz gdzieś, może być przydatna dla osób, które jeszcze jej nie znają. Nie musisz być ekspertem. Pisanie Ci pomoże. I każdego na każdym etapie kariery.

Monika: Najlepiej śledzić osoby, które właśnie się czegoś nauczyły, bo wiedzą, czego muszą nauczyć się wszystkiego. Gdy jesteś ekspertem, trudno przypomnieć sobie, jak bywało w przeszłości. Czy macie radę dla osób, które dopiero zaczynają tworzyć strony internetowe?

Nishu: wiele osób na początku pyta, którą platformę wybrać, ale myślę, że nie jest to właściwe pytanie. To, czego się dowiadujemy, może być przydatne również na późniejszym etapie. Polecam wszystkim zrezygnować z tych ograniczeń i zacząć od kodu HTML lub JavaScript, który w przyszłości przyniesie zyski.

Możesz wykorzystać każdą wskazówkę, która Ci przyjdzie do głowy. Przydarzyło mi się to, gdy natknęłam się na informacje o internetowym almanach w poszukiwaniu autorów. Pomyślałam sobie: „To ciekawe. To może pomóc wszystkim w kwestiach związanych z wydajnością”. Właśnie dlatego zostałem kierownikiem tego rozdziału o JavaScript, a piszę go 6 miesięcy. Myślę więc, że chodzi o wykorzystywanie możliwości i ciężką pracę.

Monika: Czy masz jakieś prognozy lub pomysły na temat przyszłości technologii internetowej? Jaki będzie kolejny popularny temat? Co w najbliższym czasie będzie się rozwijać?

Nishu: Bardzo podoba mi się to, że teraz możemy uruchamiać serwery w przeglądarkach – to ogromny postęp. Niedawno wprowadziliśmy na przykład środowisko Node.js z poziomu przeglądarki, ale w przeszłości nie dało się uruchamiać żadnego środowiska bez zainstalowanego środowiska Node.js w naszych systemach. Teraz możemy robić wszystko w przeglądarce. To ogromny krok na drodze do ekosystemu internetu. A teraz OMT z głównego wątku. Znacznie ulepszymy też pracę nad wątkami. Web Assembly się rozwija i umożliwia deweloperom to robić. Myślę, że to przyszłość ekosystemu internetowego.