Warsztaty Angular i Spring na Warszawskich Dniach Informatyki 2017

Co roku, już od ośmiu lat, odbywają się Warszawskie Dni Informatyki. Obszerna relacja z poprzedniego roku, jak również skrót historii WDI dostępny jest w tym wpisie.

Tegoroczne WDI odbyło się 28-29 marca 2017. Jak zawsze było wiele wykładów, warsztatów, panele dyskusyjne i konkursy. Nie zabrakło także Giełdy Pracy IT. W tym roku poprowadziłem również warsztaty: Integracja: Angular i Spring od podstaw.

Wykłady i warsztaty

Jak zawsze WDI rozpoczęło się otwarciem.

Trochę dziwnym posunięciem było wrzucenie na otwarcie reklamy utworzenia nowego kierunku studiów na uczelni. Wiadomo niż demograficzny, mało studentów, ale było na to miejsce w prezentacji, która miała odbyć się później. Chociaż muszę przyznać, że sam kierunek ciekawy: Data Science (Inżynieria i Analiza Danych). Odniosłem jednak wrażenie, że nastawili się bardziej na matematykę i bazy danych niż na sztuczną inteligencję i uczenie maszynowe. Obecnie podobne kierunki są otwierane nie tylko na Politechnice Warszawskiej, ale też np. na UPH w Siedlcach: Inżynieria Systemów Danych.

Pierwsze prezentacje były od sponsorów, ale również niosły ze sobą wartość merytoryczną. Aula była wypełniona po brzegi. Później gdy wykłady odbywały się równolegle w różnych salach było już luźniej.

Asseco podczas swojej prezentacji przygotowało ciekawy sposób na przeprowadzenie konkursu – zamiast zadawać pytanie publiczności i wybierać osobę (co jest trudne jak jest dużo osób), to zadali pytanie i odpowiedź „tak”/”nie” należało przesłać SMS-em podczas prezentacji na wybrany numer. Rozstrzygnięcie odbyło się na koniec wystąpienia. Koszt wysłania SMS-a to było kilka zł, więc nawet nagroda mogła się zwrócić 😉 Sposób wyłonienia zwycięzcy polegał na „kto pierwszy ten lepszy”. Ale należy się pochwała za próbę burzenia czwartej ściany i wykorzystanie technologii do interakcji ze słuchaczami. W końcu mieli temat o technologiach mobilnych. Można by się zastanowić nad zastąpieniem SMS-ów jakąś aplikacją (średni pomysł, bo raczej nie lubimy instalować wielu aplikacji) lub stroną internetową z formularzem (każdy musiałby mieć dostęp do internetu, a przy takim skupisku ludzi czasem może być z tym problem). Pytanie mogłoby mieć też jakiś element „jakościowy”, żeby był większy zakres możliwych odpowiedzi (np. jakaś liczba). Wtedy można by wprowadzić czynnik tego jak ktoś dobrze odpowiedział na pytanie, zamiast samego refleksu. Oczywiście przy takiej liczbie uczestników, musiałaby być aplikacja po stronie serwera, która od razu analizowałaby nadsyłane odpowiedzi, aby możliwe było szybkie wyłonienie zwycięzcy.

Wykładów było bardzo dużo. Chyba każdy z IT mógł znaleźć coś dla siebie. Cała lista tematów dostępna jest w agendzie (jeśli czytasz to długi czas po napisaniu tego wpisu, to na stronie pewnie jest już nowa agenda – tutaj kopia strony – niestety inny archiwizer nie dał rady tego poprawnie przechwycić, ale tematy i tekst abstraktów da się przeczytać).

W tym roku wziąłem również aktywny udział w Warszawskich Dniach Informatyki. Warsztaty „Integracja: Angular i Spring od podstaw”.

Osobiście w tym roku nie byłem na wielu wykładach (jak również na Panelu Rektorskim, który odbył się 31 marca 2017 i jego tematyką był Przemysł 4.0), ale dało się zauważyć kilka ciekawych tematów. Poniżej wybrałem te, które według mniej są najbardziej godne uwagi lub mocno się wyróżniły.

Dzień 1:

  • Prezentacje Asseco (technologie mobilne – już wcześniej wspominane) i Accenture (sztuczna inteligencja).
  • Eclipse Collections (kiedyś nazywało się GS Collections od twórców, firmy Goldman Sachs, ale oddali projekt pod opiekę Eclipse). Mówią, że EC są lepsze od tych kolekcji w standardowej bibliotece Javy, ale nadal zgodne z API Javy (również Java 8).
  • Znane i modne technologie: Java, .NET, JavaScript.
  • Webdev: Flux, Redux, ReactJS, AngularJS, Angular 2, React Native
  • Blockchain (to co jest istotą Bitcoina).
  • Alternatywne języki JVM. Te bardziej znane np. Groovy i mniej znany Gosu (języki JVM będą powstawać w tempie frameworków JavaScript? 😉 ).
  • Salesforce. Jest to CRM, do którego można dopisywać kod, aby rozszerzać jego możliwości i dstosowywać do klienta (coś w stylu Microsoft Dynamics od Microsoftu). Tutorial jest dostępny na stronie. Używają go m.in. w firmach Accenture i PwC.
  • Chmury, Internet of Things.
  • Gamedev: Unreal Engine 4 na iOS i Android.
  • Wirtualna rzeczywistość w przeglądarce internetowej: WebVR i framework A-Frame.
  • Warsztaty: Machine Learning w R, Kanban (Scrum), Data Science i Big Data, Spring Framework, CSS, programowanie w R i wykresy w ggplot2, Scrum, Xamarin.Android w C# oraz warsztaty, które prowadziłem Integracja: Angular i Spring od podstaw – o tym poniżej.

Dzień 2:

  • Tworzenie gier w HTML5 i JavaScript. Temat wielokrotnie pojawiający się na konferencjach, ale jak widać nadal na czasie.
  • Business Intelligence (systemy FDS – Financial Data Store).
  • TIBCO BusinessWorks (integracja danych), TIBCO Spotfire (analiza danych).
  • MVC, MVP, MVVM.
  • Elixir funkcyjny język programowania.
  • TDD (Test Driven Development).
  • Dalej chmury i IoT…
  • Hadoop, Open Modular Environment.
  • Cały panel o bezpieczeństwie od Zaufanej Trzeciej Strony.
  • Panel mobilny: Android, Kotlin na Androida, Xamarin, AppleScript, iOS.
  • Panel Data science: podstawowe algorytmy uczenia maszynowego (algorytm regresji logistycznej, sieci neuronowe, sieci konwolucyjne), Jupitem, RTools i RStudio.
  • Warsztaty: D3.js, Android, gra w Unreal Engine 4 (C++), VBA w Excelu, Spring Boot i MyBatis, BeagleBone (komputer jedno-płytkowy), aplikacje mobilne z Azure, Bizagi, Spring Data.

Warsztaty Angular i Spring

Smycze dla Prelegentów (VIP) na WDI – wreszcie bez kolejek 😉

Prowadziłem już wcześniej warsztaty z podstaw AngularJS na UPH w Siedlcach. Materiały i ich szczegółowy opis umieściłem w podsumowaniu. Bardzo miło je wspominam. Szczególnie jak na pierwszy raz poprowadzone warsztaty.

Na Warszawskie Dni Informatyki jeździłem co roku od kiedy zacząłem studiować (podziękowania dla starszych kolegów i koleżanek z uczelni z KNI Genbit, którzy również jeździli i była większa motywacja jechać). Zawsze jednak jako uczestnik bierny. Jest to duże wydarzenie, na którym słucha się profesjonalistów i można dowiedzieć się czegoś ciekawego. Moja aktywność na WDI w kolejnych latach zwiększyła się jedynie do informowania o wydarzeniu na uczelni w Siedlcach i otrzymywaniu zaproszeń na Panel Rektorski.

W tym roku otrzymałem również zaproszenie do przeprowadzenia warsztatów na WDI. Byłem zaskoczony, ucieszony i jednocześnie trochę wystraszony. Występowałem wcześniej jako prelegent na licznych konferencjach, więc miałem w tym doświadczenie, ale nie były to wydarzenia takiej wielkości. Chciałem wystąpić na WDI, bo to byłby dla mnie zaszczyt – myślałem, że jak zdobędę wystarczająco wiedzy i doświadczenia, to kiedyś to zrobię. Nie myślałem, że nastąpi to tak szybko. Dobrze się złożyło, że dwa tygodnie wcześniej przeprowadziłem lokalne warsztaty (nie zdążyłem jednak przeprowadzić planowanej drugiej części), bo nabrałem trochę doświadczenia w prowadzeniu warsztatów, a nie tylko prezentacjach. Uznałem, że ta sama tematyka będzie odpowiednia. Czyli AngularJS i Spring. Chciałem jednak zaznaczyć, że będą to same podstawy, żeby profesjonaliści z wieloletnim doświadczeniem nie spodziewali się zaawansowanych zagadnień.

Chciałem, żeby wszystko odbyło się bezbłędnie. Należało napisać scenariusz, a czasu na przygotowanie było niewiele. Podczas warsztatów, na których jest większa liczba osób, trudno jednej osobie być dostępnym dla całej sali. Na szczęście udało mi się skompletować zespół czterech osób. Oprócz mnie, byli to studenci II roku informatyki, ale chętni i zdolni. Tematykę warsztatów podzieliliśmy na części i każdy odpowiadał za opracowanie i poprowadzenie własnej części.

  • Jakub Malinowski – Spring Boot, Spring Data, kontrolery, wystawienie API REST,
  • Marcin Kowalczyk – omówienie REST, podstawy AngularJS, pobranie danych z API,
  • Marta Kisielińska – AngularJS, frontend, CSS,
  • Kamil Chaciak – więcej możliwości AngularJS.

Napisaliśmy sobie scenariusz i zaplanowaliśmy live coding, żeby pisać kod i tłumaczyć go równocześnie (było to ułatwione, bo prowadzących było kilku).

IDE na warsztaty wybraliśmy Spring Tool Suite, żeby każdy mógł swobodnie używać (jest na bazie Eclipse, więc wygląda znajomo; zaś IntelliJ IDEA w wersji darmowej jest dostępna tylko Community). Do samego frontendu mogliśmy wziąć inne IDE (np. Sublime Text), ale nie chcieliśmy komplikować – zrobiliśmy jeden projekt w obu technologiach.

Do pokazania Spring Data potrzebna była jakaś baza danych. Nie chcieliśmy używać MySQL lub PostgreSQL, aby uczestnicy nie musieli instalować kolejnej rzeczy. SQLite nie jest domyślnie wspierany przez Spring Data. Użyliśmy więc bazy H2, która umieszczona była jedynie w pamięci operacyjnej (in-memory).

Do testów endpointa API REST użyliśmy wtyczki Postman w Chrome.

Kod na GitHubie

Czas warsztatów był ograniczony, więc wygenerowaliśmy podstawowy szablon projektu i wrzuciliśmy na GitHuba do repozytorium warsztaty-wdi-2017, aby uczestnicy mogli je sobie ściągnąć i pracować.

W repozytorium są commity:

Wrażenia z przeprowadzonych warsztatów

Warsztaty ostatecznie zostały wpisane do agendy pod tematem: Integracja: Angular i Spring od podstaw. Abstrakt jaki umieściliśmy w agendzie:

Budowanie aplikacji webowych to obecnie najczęstsze zajęcie programistów. Chcesz dowiedzieć się jak w szybki sposób zrobić aplikację w stylu SPA oraz jak to połączyć z REST-ową resztą w backendzie? Na warsztatach nauczysz się od podstaw tworzyć projekty z użyciem Angular i Spring.

Warsztaty poprowadzą studenci z Koła Naukowego Programistów działającego przy Instytucie Informatyki Uniwersytetu Przyrodniczo-Humanistycznego w Siedlcach.

Książeczki z agendą rozdawane podczas konferencji WDI

Widzieliśmy, że podczas rejestracji miejsca na nasze warsztaty zostały bardzo szybko zapełnione. Efektem tego było dużo osób pod salą przed warsztatami. Oczywiście nie obyło się bez drobnych problemów organizacyjnych, ale przy takiej skali wydarzenia wcale się nie dziwię. W czasie gdy próbowaliśmy uzyskać dostęp do sali i pilot do projektora, uczestnicy zaczęli wnosić krzesła z korytarza do sali, bo było tyle osób, że zabrakło miejsc (!). Widać rejestracja była zrobiona „z zapasem”, bo było więcej chętnych niż przewidziano.

Przed uruchomieniem projektora zrobiliśmy krótki wstęp i rozpoznanie na jakimś poziomie są uczestnicy (pomaga to w dostosowaniu programu warsztatów i tego jak szczegółowo tłumaczyć). Dalej poszło według scenariusza. Trochę szkoda, że uczestnicy nie mieli dostępu do internetu i nie mogli pracować razem z nami (chociaż nawet jakby zostało uruchomione WiFi, to ciekawe jakby to wyglądało przy takim tłumie). Ale nic straconego, bo kod umieściliśmy na GitHubie. Niektórzy od razu planowali swoje „warsztaty” jako prezentacje – my chociaż spróbowaliśmy. Chociaż oprócz IDE i projektu mogliśmy spróbować wrzucić na pendriva również Mavena offline.

W trakcie warsztatów i po warsztatach były pytania, nawet dużo. Widać było zainteresowanie. Jednak popularne technologie na rynku pracy przyciągają.

Warto było się przygotować i wziąć aktywny udział w WDI. Dobrze również, że udało się skompletować zespół i poprowadzić to wspólnie – zawsze to raźniej i więcej pomysłów. Przećwiczyłem sobie również pracę w zespole. Co ciekawe niektóre osoby lepiej sprawdzały się przed warsztatami podczas przygotować, a inne już w trakcie prowadzenia – każda z osób była bardzo przydatna w różnych etapach.

Giełda Pracy IT

Nie samymi wykładami i warsztatami człowiek żyje. Jak zawsze, odbyły się również targi pracy. Były one dla mnie szczególne ważne, bo gdy kończy się studia to myśli się o stałym zatrudnieniu.

Firm było dużo, dlatego przygotowałem sobie o co pytać firmy, co ja mogę zaoferować i co bym chciał, żeby miała firma:

  • Java i Angular (Spring i JavaScript). Można kłócić się, który język programowania lepszy: Java, C#, PHP czy jeszcze inny, ale na któryś trzeba się zdecydować. Wybrałem Javę. Najlepiej aplikacje w Springu. Obecnie większość aplikacji pisze się w REST, dlatego trzeba wybrać jakiś framework frontendowy w JavaScript (bo jednak chciałbym dążyć do full stack developer). Wybór też jest duży: Angular, React, Vue itd. Wybrałem Angular (znam AngularJS, ale wchodzi Angular 2, a nawet 4 i chętnie go się nauczę).
  • Chciałbym, aby w firmie używało się dobrych/modnych/nowych narzędzi m.in. GIT, Jira/Jenkins/Gerrit. Licencja na IntelliJ IDEA to chyba już obowiązek. Tak samo jak praca w Scrumie.
  • Czy firma ma głównie klientów z Polski czy z zagranicy (ma to związek koniecznością bardzo dobrej znajomości języka angielskiego, a nie tylko czytania dokumentacji).
  • Branża, aby nie finanse (z tego co słychać panuje tam inna, bardziej formalna, kultura pracy np. dress code, praca u klienta zamiast w siedzibie firmy).
  • Czy umożliwia pracę w niepełnym wymierza godzin np. 3/5 lub chociaż 4/5.
  • Lokalizacja to oczywiście Warszawa. Najlepiej z dobrym dojazdem komunikacją (metro jest OK, ale ul. Domaniewska może niekoniecznie). Dobry dojazd do siedziby firmy też jest na nic jak praca jest głownie u klienta.
  • Warto spytać o wynagrodzenie, chociaż na juniora odpowiedź jest raczej znana (zazwyczaj i tak nie podana aż do rozmowy rekrutacyjnej).

Przejdźmy do konkretnych firm. Nie byłem u wszystkich, ale wspomnę te ciekawe lub bardziej wyróżniające się. To tylko opinie na podstawie giełdy pracy:

  • Asseco. Wiadomo, sponsor, więc wyróżnia się, ale firma i tak znana. Niewiele jest polskich korporacji IT. Szkoda, że na stoiskach był głownie HR, a technicznych osób nie zauważyłem, więc nie można było wypytać o szczegóły. Ofert bardzo różne, skupię się jednak ja Javie i JS. Mocno skupiają się na stażach (a potem z przedłużeniem na kolejny staż). Ale nie dziwię się, bo jest wiele studentów, którzy technologii nie znają. Nie wszystkie uczelnie mają rzeczy na czasie w programie studiów, a niewiele studentów samemu się dokształca. Oferta na Javę jest, jednak wypisane trochę stare technologie: Java EE z serwletami i JSP (nie ma Springa), Ant (serio? nie Maven?), JAX-WS i SOAP (zamiast REST), Eclipse (nie IntelliJ IDEA), pojawia się też SVN. Albo po prostu mają stare, nieaktualizowane ogłoszenie albo krążące negatywne opinie po części się sprawdzają. Mimo tego wrażenie sympatyczne, stawiają na rozwój (przynajmniej na papierze, ciekawe jak w praktyce).
  • Accenture. Kolejny sponsor. Zagraniczna korporacja, ale bardzo aktywna na wydarzeniach. Ciekawe tematy i projekty patrząc po wystąpieniach na konferencjach. W ogłoszeniach mało konkretów. Na stoisku głównie HR, ale techniczne osoby też można spotkać. Ogłoszenia dla Javowców niby są, ale zauważyłem, że szukają mocno osób do… Cobola.
  • Sollers Consulting. Pisanie jakiejś aplikacji w mało znanym alternatywnym języku JVM Gosu? Nie, dzięki. Jeśli nie Java, to wolałbym uczyć się już Scali, Groovy’ego lub Clojure.
  • Citi. Mimo że bank, to zapewniali, że dział IT jest duży i są dosyć autonomiczni (tzn. po prostu piszą sobie sami projekty). Aż dziwne, że jest taka swoboda w banku. Technologie rzeczywiście mają nowe. Na stoisku osoby techniczne i znające używane rozwiązania.
  • Billennium. Pamiętam, że kiedyś byli aktywniejsi na WDI. Dobre wystąpienia, aktywne stoisko z technicznymi osobami, fajne oferty pracy dla Javowców. Czyżby zapotrzebowanie zostało już zaspokojone?
  • BMS. Mniej znana firma. Może nie jest jakaś duża, ale polska i wydaje się sympatyczna. Dobra oferta pracy dla Javowca, modne narzędzia (tak, jest IntelliJ itd). Udzielają się na wielu konferencjach i wydarzeniach, a to się ceni. Lokalizacja dobra. Ale kawałek drogi od metra. Podobno przenoszą się bliżej? Szkoda, że nie ma o tym nigdzie publicznej informacji.
  • CodiLime. Swego czasu bardzo aktywni, co chwilę było widać gdzieś warsztaty od nich. Chyba w połowie zagraniczna. Fajnie, że zajmują się Data Science  Deep Learningiem (deepsense.io).
  • EL Passion. Firma dla luzaków. Trochę hipsterskie technologie (Ruby,  Swify, Kotlin). Starają się sprawiać wrażenie zagranicznej firmy.
  • Lingaro. Firma jak firma, wiele ofert, chcą sprawiać wrażenia luzaków.
  • SAS. Bardzo znana firma jeśli chodzi o Data science. Teraz to coraz modniejsze. Programiści raczej szukają pracy gdzie indziej. Tutaj mogliby się odnaleźć matematycy. Oni jednak odpadają przez nieumiejętność podstaw programowania. Teraz powstają na uczelniach kierunki studiów związane z Data science (dobry pomysł jako drugi kierunek dla matematyków). Jeśli to się sprawdzi, to SAS nie powinien już mieć problemu z pracownikami. Jeśli chcieli by ściągnąć programistów do Data science, to bardziej zachęcające jest skupienie na sztucznej inteligencji (np. uczenie maszynowe).
  • TIBCO. Mają swoje rozwiązania. Tylko czy programiści chcą dopisywać do istniejących narzędzi czy jednak wolą pisać nowe aplikacje (oczywiście pytanie retoryczne)?
  • PwC. Szczerze mówiąc nie wiedziałem czym się zajmują. Okazuje się, że wieloma rzeczami (kosnulting, wdrożenia itd. itd). Co jednak oferują dla programistów? Rozwój przy CRM albo .NET z Microsoft Dynamics albo Salesforce. Niestety nie ma ofert na Javę. Pracownicy mocno zmotywowani. Oby tak dalej. Gdybym nie był zdecydowany co chcę robić (pisanie kodu w Javie/JS), to może i dałbym się przekonać na tego Salesforce. Już wyżej wspominałem, dostępny jest tutorial, więc można sobie zobaczyć jak to wygląda. Jak ktoś umie podstawy programowania, ale nie przeszkadza m, że będzie dopisywał do istniejącego narzędzia w jakimś wewnętrznym języku, to jest to bardzo dobra oferta. Na stoisku były osoby, które rzeczywiście pracują przy danym rozwiązaniu – może to jest klucz do dobrego zaprezentowania firmy na targach pracy.
  • SAP. Wiadomo, wsparcie i wdrożenia ich rozwiązania. Nie pytałem teraz, ale kiedyś podobno nie szukali programistów do Warszawy (tylko do innego miasta).
  • Connectis. Na stronie wyglądają bardzo dobrze. Na targach było słabiej. Może kwestia tego, że był tylko HR bez technicznych osób oraz okazało się, że to tylko outsourcing (wynajmowanie programistów dla klientów). Niektórzy może potraktują to jako zaletę, bo różnorodność projektów i klientów oraz potencjalnie większe zarobki. Ale nie do wszystkich to przemawia.

Te wypunktowania może wydawać się trochę na wyrost. Zwłaszcza mogą tak pomyśleć osoby z HR-ów, które dbają o dobry wizerunek dla pracownika. Może rzeczywiście czegoś nie zauważyłem, nie usłyszałem lub pomyliłem i ktoś może mi to mieć za złe. Ale jeśli chociaż część trafiłem i pracodawcy będą w stanie niskim kosztem to poprawić, bo dowiedzą się jakie oczekiwania mają pracownicy, to myślę, że było warto. Można by to podsumować:

  • Jak wystawiać się na targach pracy, to oprócz HR-u niech będzie ktoś techniczny (albo ktoś z HR kto wcześniej wypytał pracowników z odpowiednich działów). Inaczej równie dobrze może być hostessa do rozdawania ulotek. Kandydaci chcą wiedzieć jakich technologii w firmie się używa, jak wygląda praca, co technicznie jest zapewnione, jakie są wykorzystywane narzędzia itd. itd.
  • Oferty pracy powinny być aktualne. Chyba że rzeczywiście używacie starych technologii. Najlepiej jakby oferty odpowiadały rzeczywistym zapotrzebowaniu w projektach. Wpisanie do oferty jakiejś technologii „a wpisz tego Springa, bo teraz wszyscy to wpisują” jest niedopuszczalne.
  • Zawarcie w ofercie jak najwięcej informacji, o które pytają kandydaci (może to być również na stronie internetowej). Takie FAQ, żeby wszyscy nie pytali o to samo.

Podsumowanie

Działo się dużo – jak co roku. Wiele ciekawych wykładów, warsztatów i giełda pracy. Sam nie ze wszystkiego w pełni skorzystałem, bo brałem również aktywny udział prowadząc warsztaty.

Było to moje ostatnie WDI jako student. Zobaczymy jak potoczy się moje dalsze życie zawodowe i co przez rok się zmieni. Mam nadzieję, że mój przyszły pracodawca przychyli się do mojego kolejnego wyjazdu na WDI za rok 😉

Wierzę, że studenci informatyki z uczelni Siedlec nadal będą odwiedzać Warszawskie Dni Informatyki. Szczególnie z dwóch kół: Koła Naukowego Informatyków Genbit i Koła Naukowego Programistów. Daje to przecież wymierne korzyści: w postaci praktycznej wiedzy i inspiracji oraz zdobycia pracy w przyszłości. Oby tylko prowadzący zajęcia byli wyrozumiali, że studenci ich opuszczają na dwa dni.

PS. Na stronie Instytutu Informatyki pojawiło się sprawozdanie: Studenci naszego instytutu poprowadzili warsztaty na Warszawskich Dniach Informatyki 2017.

One response on “Warsztaty Angular i Spring na Warszawskich Dniach Informatyki 2017

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *