Nishu Goel to znany inżynier internetowy z Indii oraz ekspert Google Developers ds. rozwiązań Angular i technologii internetowych. Opowiedziała nam o angażowaniu społeczności, planach kariery i najlepszych sposobach na naukę tworzenia stron internetowych.
Nishu Goel to znany inżynier internetowy z Indii, ekspert Google Developer ds. Angular i technologii internetowych, Microsoft Most Valuable Professional. Jest autorką artykułów Step by Step Angular Routing (BPB, 2019) i A Praktyczny przewodnik po Angular (Educative, 2021) oraz autorką rozdziału Web Almanac 2021 w języku JavaScript. Nishu obecnie pracuje w epilot GmbH jako inżynier full-stack. Opowiedziała nam o angażowaniu społeczności, planach kariery i najlepszych sposobach na naukę tworzenia stron internetowych.
Monika: Zacznijmy od opowieści. Co zainspirowało Cię do zostania deweloperem i brania udziału w aktywnych społecznościach deweloperów?
Nishu: Ukończyłem tytuł licencjata informatyki, znałem struktury danych i tak zaczęło się interesować programowaniem. W trzecim roku programowania nawiązałem kontakt ze społecznością programistów dzięki udziałowi w konkursie Microsoft Deliver Cup Nationals, w ramach którego prezentowaliśmy rozwiązania za pomocą kodu. Celem aplikacji, którą stworzyliśmy, było zapewnienie możliwości edukacyjnych uczniom z okolicy, a zwłaszcza dziewczętom. Poznałem bardzo inspirujących ludzi, zarówno uczestników, jak i organizatorów.
W 2018 roku rozwinęłam swoją karierę zawodową i zacząłam pracować w Angular. Angular stał się główną technologią, która połączyła mnie z programem GDE. Mniej więcej w tym samym czasie zaczęłam pisać posty na bloga oraz treści na temat, nad którym pracowałam i się nauczyłam . Dhananjay Kumar pomógł mi rozpocząć tę podróż i dopilnował, aby mi pomógł. Moje pierwsze artykuły dotyczyły podstaw Angular. Wkrótce po tym, jak zaczęłam uczestniczyć w różnych wydarzeniach. Pierwszym z nich był ngNepal, nepalska konferencja Angular. W rezultacie wzięło się do większej liczby zaproszeń na temat Angular i technologii internetowych.
Monika: Jakie jest Twoje doświadczenie zawodowe z punktu widzenia technologii?
Nishu: przez pierwsze 2 lata skupialiśmy się na Angular i komponentach internetowych. Używałem Angular do tworzenia sieci, ale wkrótce zdecydowałem się rozwijać i rozwijać inne dziedziny. Nie chciałem się ograniczać w razie konieczności zmiany projektów. Tak właśnie zacząłem tworzyć w Angular komponenty internetowe, które można wykorzystać w innych środowiskach.
Zacząłem tworzyć komponenty internetowe w Angular. Udostępniłem ją w npm i użyłem jej jako wersji demonstracyjnej w projekcie React. Została ona omówiona podczas kilku moich przemówień i prezentacji. Moje następne zadanie wymagało użycia narzędzi React i TypeScript. Ponieważ pracowałam w zespole React, używałam już nie tylko jednej platformy, lecz także całej sieci. Wiele dowiedziałem się wtedy o sieci, a zwłaszcza o skuteczności. Właśnie wtedy musiałem zacząć myśleć o największym Contenful Paint (LCP) lub Pierwsze wyrenderowanie treści (FCP), czyli ile czasu zajmie wczytanie aplikacji lub jaki będzie maksymalny czas renderowania strony. Pracuję nad wybraniem sprawdzonych metod i poprawą wydajności aplikacji.
Z powodu zainteresowania wydajnością stron internetowych wciągnąłem się w udział w Web Almanac i napisałem rozdział na temat JavaScriptu. Web Almanac to roczny raport o stanie internetu, w którym pokazujemy, jak użytkownicy korzystają z różnych funkcji. W zeszłym roku sprawdzono 8,6 mln 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 stron używa ich prawidłowo, ile w ogóle z nich nie korzysta i ilu z nich poprawiło swoje wyniki w porównaniu z 2020 r. W ostatnim raporcie Web Almanac wspomniano, że około 35% witryn używa 2 atrybutów w tym samym skrypcie, co było antywzorem i spowalniało jego działanie. Wskazaliśmy to w zeszłym roku, ale teraz próbowaliśmy sprawdzić, czy sytuacja się poprawiła. Rozmawiałem też na ngConf i Reliable Dev Summit, podczas którego skupiałem się na wydajności internetu.
Monika: Bardzo angażujesz się w odpowiadanie na rzecz społeczności. Ostatnio uczestniczysz w wolontariacie w ramach ugandyjskiej organizacji pozarządowej YIYA. Jak to się zaczęło i jaki był 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 obsłudze funkcji technicznych. Program ma pomagać dzieciom w wieku szkolnym w Ugandzie i oferować im możliwości edukacyjne przy użyciu technologii dostępnych lokalnie – nie komputerów czy podręczników, ale raczej podstawowych telefonów i radiarów z klawiaturą. Dziecko wybiera określony numer i otrzymuje zestaw informacji, wybiera inny numer w celu uzyskania dodatkowych informacji itd. W trakcie pandemii funkcja ta stała się jeszcze bardziej przydatna.
Od zawsze angażuję się w cele społeczności i zrównoważony rozwój, dlatego postanowiłam skontaktować się z Tobą. Po spotkaniu z zespołem YIYA zaoferowałem mi pomoc dotyczącą skryptów Python, napotkanych błędów i problemów z portalem. Przez krótki czas pracowaliśmy razem.
Monika: Jakie masz plany na 2022 rok? Czy jest coś, na czym się skupiasz?
Nishu: Zmieniam pracę i przeprowadzę się do innego kraju. Będę pracowała nad internetem, poprawiając wydajność witryny, a także nad backendem, używając języka Golang. Będę się skupiać na zakresie skuteczności w internecie, ponieważ jest on bardzo interesujący i skomplikowany, a także wiele kwestii do zrozumienia i optymalizacji. Nawet teraz, ponieważ poświęciłam temu dużo czasu, mogę się jeszcze wiele nauczyć. Chciałbym się na przykład dowiedzieć, jak użycie CDN do obsługi zasobów graficznych pomogłoby mi jeszcze przyspieszyć aplikację. Chcę zostać ekspertem w dziedzinie wydajności stron internetowych—i stopniowo do tego celu wierzę :)
Monika: Wspominała Pan/Pani, że pisze się w momencie, gdy nie byłaś ekspertem, po prostu pisałaś to, co się nauczyło. Co doradzisz nowym deweloperom, którzy do nas trafiają, ale uważasz, że nie mają nic do powiedzenia?
Nishu: Tak się czułam, gdy zaczęłam pisać. Pomyślałem, że może nie należy tego ujawniać? Może to błąd? Obawiałam się, że moje teksty nie pomogą czytelnikom. Ważne było jednak to, że pisałam teksty, które mi pomogły. Po jakimś czasie zapominam o czymś, a potem wracam do czegoś, co pisałem wcześniej. Pisanie notatek to bardzo dobry pomysł.
Sugeruję więc wszystkich – po prostu pisz, na każdym etapie. Nawet jeśli udało Ci się ukończyć tylko jedną część kursu, ucz się, zapisując to. Informacje, które znasz, mogą okazać się przydatne dla innych, którzy jeszcze tego nie wiedzą. Nie musisz być ekspertem. Pisanie pomoże. i każdego, na każdym etapie kariery.
Monika: Najlepiej obserwować osoby, które właśnie się czegoś nauczyły, bo wiedzą wszystko, co muszą rozwiązać. Kiedy jesteś ekspertem, trudno sobie przypomnieć, jak wyglądało to wtedy, gdy jesteś nowym ekspertem. Jakieś rady dla kogoś, kto dopiero zaczyna tworzyć strony internetowe?
Nishu: wiele osób zaczyna od pytania, którą platformę wybrać, ale myślę, że to nie jest właściwe pytanie. Wszystko, czego dowiemy się w dowolnym momencie, powinno się okazać przydatne również w przyszłości. Zdecydowanie radziłbym każdemu zrezygnować z tych ograniczeń i zacząć od HTML lub JavaScript – to w przyszłości będzie opłacalne.
Wykorzystaj każdą okazję, która pojawi się na Twojej drodze. To mi się przydarzyło, gdy natknęłam się na informacje o Web Almanac w poszukiwaniu autorów. Pomyślałem sobie, że to ciekawe, może przyda się wszystkim, jeśli chodzi o wydajność. W ten sposób stałem się kierownikiem ds. treści rozdziału poświęconego JavaScriptowi i piszę go 6 miesięcy. Dlatego myślę, że trzeba korzystać z możliwości i ciężko pracować.
Monika: Czy masz jakieś prognozy lub pomysły na temat przyszłości technologii internetowej? Jaki będzie kolejny popularny temat? Co wzrośnie?
Nishu: Bardzo podoba mi się to, że teraz możemy obsługiwać serwery w przeglądarkach – to wielki krok naprzód. Na przykład ostatnio wprowadziliśmy w przeglądarce uruchamianie środowiska Node.js. Jednak w przeszłości nie mogliśmy niczego uruchamiać bez zainstalowania w naszych systemach środowiska Node.js. Teraz możemy wszystko robić w przeglądarce. To wielki krok naprzód w ekosystemie internetu. O roli MT – poza głównym wątkiem. Znacznie ulepszona będzie też praca nad wątkami. Web Assembly się rozwija i umożliwia programistom pracę w tym zakresie. Myślę, że to przyszłość ekosystemu internetowego.