Od Juniora do Seniora: Odpowiedzi na pytania społeczności #4
Przed Wami czwarta część cyklu pytań od juniorów, które zebraliśmy na grupach na Facebooku, jak i w prywatnych wiadomościach. Pytania dotyczące języków programowania, tego kiedy zacząć myśleć o nauce pierwszego frameworka, co powinien umieć junior full stack developer, zadaliśmy doświadczonym devom.
Juniorzy, którzy przesyłali nam pytania, od seniorów chcieli dowiedzieć się też, co myślą na temat jQuery. Czy ich zdaniem warto uczyć się tej biblioteki? Zobaczcie sami.
Spis treści
Pytanie #1
Krzysiek Os: Na jakim poziomie znajomości JavaScript(ES5, ES6) można zacząć myśleć o nauce pierwszego frameworka (React/Vue/Jquery?)? Potrafię dodawać, zmieniać, usuwać elementy DOM, podstawy JSON i kilka bardzo podstawowych założeń ES6 (fat arrow fn, const/let, class, querySelector, string templates itd).
Odpowiada: Andrzej Kopeć, Lead JS Developer w Skygate
Ja zacząłem uczyć się pierwszego frameworka po tym, jak napisałem w czystym JS działającą aplikację i nie czułem po drodze problemów z samym językiem. Dzięki temu podczas uczenia się frameworka od razu czułem, co mi daje użycie go. Zdaję sobie natomiast sprawę, że nie każdy ma tyle czasu (szczególnie, znajomość frameworków jest praktycznie wszędzie wymagana), dlatego myślę, że dobrym moment na uczenie się ich jest wtedy, gdy w 100% rozumiemy przykłady z tutoriala.
Odpowiada: Katarzyna Jastrzębska, sr. developer w 24eStore, speaker, mentor
Zanim rozpoczniesz naukę wybranego frameworka, polecam dodatkowo przypomnieć sobie jeszcze, jak działa sam język. JavaScript ma w sobie sporo różnych niespodzianek i zanim nastawisz się w 100% na naukę wybranego frameworka, warto być świadomym tych niespodzianek. Tutaj zwróciłabym uwagę na to jak działa w JS scope (zasięg) zmiennych, hosting, jak zmienne takie jak obiekty są przechowywane w pamięci (referencje), jak działa magiczny this, czym jest event loop i jak działa w JS asynchroniczność. Ta wiedza pozwoli Ci czuć się pewniej ze swoim kodem JS.
Pytanie #2
Jolanta Bartoszewska: Co powinien minimalnie umieć junior full stack?
Odpowiada: Andrzej Kopeć, Lead JS Developer w SkyGate
W mojej opinii umiejętność napisania i wdrożenia prostej aplikacji typu SPA (Single Page App) samodzielnie od początku do końca powinna być w pełni wystarczająca. Ciężko mówić o konkretnych wymaganiach na zasadzie “to z frameworka X i tamto z frameworka Y”, bo one będą się bardzo zmieniać w zależności od technologii.
Pytanie #3
Wiktor Flis: Czy zdarzyło się komuś w pracy wyprowadzanie dowodu albo jakiekolwiek wykorzystywanie bardziej zaawansowanej matematyki (poza grafiką komputerową)?
Odpowiada: Oleksandr Zakharchuk, Machine Learning Consultant w Brainly
Poznanie podstaw rachunków i algebry liniowej na pewno pomoże Tobie bardziej zrozumieć machine learning. Wiedza o statystyce jest konieczna dobremu data scientist. Jednakże, znajomość zaawansowanej matematyki nie jest konieczna do rozpoczęcia podróży jaką jest programowanie.
Pytanie #4
Karol Goyke: Python. Co trzeba umieć żeby dostać pracę? W jakim kierunku się rozwijać przy obecnym popycie na ten język w Polsce. Słysząc o machine learning, data science itd. jak bardzo potrzebna jest w tym matematyka?
Odpowiada: Jakub Szafrański, Full Stack Python Developer w STX Next
Poza oczywistą znajomość podstaw i składni samego języka, należy też co nieco wiedzieć na tematy związane z obszarem, w którym chcemy pracować. Przykładowo, ja specjalizuję się w tworzeniu aplikacji webowych i Pythona używam do tworzenia backendu do nich. W mojej pracy przydaje się wiedza z zakresu projektowania i tworzenia API RESTowego, znajomość protokołu HTTP oraz popularnych wzorców projektowych, ale także przydają się kompetencje z zakresu protokołów sieciowych, administracji systemów UNIX/Linux oraz znajomość środowisk cloudowych i Dockera.
Dzięki wiedzy nie tylko z zakresu stricte programowania, jestem w stanie zrozumieć aplikacje, które wytwarzam jako “całość”, a dzięki temu lepiej rozwiązywać problemy, które napotykam, doradzać klientom w zakresie utrzymania i infrastruktury i współpracować z zespołem administracyjnym. Przede wszystkim więc należy sobie odpowiedzieć na pytanie, w jakim “obszarze” będziemy się poruszać jako programiści. Podstawy prawie zawsze będą takie same, jednak w miarę pojawiania się specjalizacji pojawia się więcej wiedzy, której nie trzeba, ale na pewno warto posiadać.
Odpowiadając na drugą część pytania: za AI i Machine Learning w dużej mierze stoi matematyka. Co prawda istnieje bardzo wiele bibliotek i gotowych frameworków, które posiadają gotowe implementacje większości algorytmów, potrzebnych do pracy z uczeniem maszynowym… Jednak podobnie jak chyba w każdym temacie – znajomość “podwalin” pozwala lepiej zrozumieć i wykorzystać te gotowe narzędzia w praktyce.
Do podstawowych zagadnień (tj. wykorzystania gotowej biblioteki by stworzyć prostą aplikację opierającą się o ML) nie jest wymagana matematyka na bardzo wysokim poziomie, jednak by być specjalistą należy nie tylko umieć ”wykorzystać gotowca”, ale też wiedzieć, jak i dlaczego działa, by dobrać odpowiedniego gotowca do problemu, który aplikacja stara się rozwiązać.
Pytanie #5
Sebastian: Czy jacyś doświadczeni programiści mogą mi coś powiedzieć na temat jQuery? Jest sens się tego uczyć, czy może spojrzeć na jakieś inne biblioteki?
Odpowiada: Konrad Dzwinel, Frontend Engineer w Brainly
jQuery jest niewątpliwie jedną z najbardziej rozpoznawalnych i wpływowych bibliotek front-endowych. Warto jednak pamietać, że projekt powstał w czasach, kiedy natywne API było niewygodne w obsłudze i znacznie różniło się pomiędzy przeglądarkami. jQuery szybko zyskało popularność, bo proponowało wygodne API, wprowadzało wiele metod pomocniczych i brało na siebie obsługę różnic we wsparciu miedzy przeglądarkami.
W 2018 roku wiele z tych problemów jest juz pieśnią przeszłości. Różnice we wsparciu między przeglądarkami znacznie się zatarły, a większość innowacyjnych rozwiązań zaproponowanych przez jQuery jest już częścią natywnego API (fetch, closest, matches, Promise, querySelectorAll). W Brainly, tam gdzie używamy czystego JavaScriptu, nie ładujemy już jQuery, a opieramy się właśnie na tych natywnych API. Wsparcie dla starszych przeglądarek zapewniamy za pomocą polyfill.io, które jest rozwiązaniem znacznie lżejszym i bardziej progresywnym niż jQuery.
Odpowiada: Krzysztof Kornacki, Frontend/JavaScript Development Leader w Netizens
jQuery lata świetności ma już za sobą, ale nadal to bardzo popularna biblioteka. Jej podstawowe zalety zostały nieco przyćmione przez stale rozwijane standardy webowe CSS, HTML i JavaScript. Dla przykładu w celu stworzenia prostej animacji wystarczy już sam CSS, ale dla zaawansowanych efektów, które chcemy wprowadzić, cały czas warto skorzystać z gotowej biblioteki jQuery, która daje nam dużo więcej możliwości. Natomiast takich bibliotek, które usprawniają pracę programiście jest mnóstwo.
Jako następcę jQuery typuję jeszcze całkiem świeżą bibliotekę Vue.js, która jest bardzo mała, niezwykle szybka i prosta. Za jej pomocą możemy zarówno utworzyć na istniejącej stronie niewielki dynamiczny komponent, jak i zbudować całą aplikację typu SPA (Single Page Application) i ostatnio popularne PWA (Progressive Web Apps). Vue.js to mieszanka najlepszych cech, takich bibliotek jak React.js, Angular.js i Polymer. Z powodzeniem wykorzystuję ją w aplikacjach od blisko dwóch lat.
Odpowiedzi udzielali:
Andrzej Kopeć, Lead JS Developer w Skygate
Katarzyna Jastrzębska, sr. developer w 24eStore, speaker, mentor
Oleksandr Zakharchuk, Machine Learning Consultant w Brainly
Jakub Szafrański, Full Stack Python Developer w STX Next
Konrad Dzwinel, Frontend Engineer w Brainly
Krzysztof Kornacki, Frontend/JavaScript Development Leader w Netizens
Cykl „Od Juniora do Seniora” (poprzednie części znajdziecie tutaj: 1, 2, 3) tworzymy razem z Wami, dlatego czekamy na kolejne pytania, które możemy zadać seniorom. Zamieście je w komentarzach, a najciekawsze trafią do piątej części cyklu.