harman-acceleration-pool

Dzięki Acceleration Pool zmieniłem sposób myślenia o projektach. Historia Nazara Sabo-Polishchuka

Czego uczy juniora udział w 24-godzinnych hackathonie? – Pierwszą lekcją było to, że planowanie jest bardzo ważną częścią każdego projektu. Kiedy rozmawialiśmy z chłopakami po maratonie to była pierwsza rzecz w dyskusji. Nie mówię, że nie mieliśmy planu, ale trochę nam brakowało takich skilli – opowiedział nam Nazar Sabo-Polishchuk, Junior Software Developer w HARMAN Connected Services.

O tym jak od środka wygląda udział w Acceleration Pool oraz dlaczego warto podejmować się wielu wyzwań, dowiecie się z naszej rozmowy z Nazarem.

Jak zaczęła się Twoja przygoda z programowaniem?

Moja przygoda z programowaniem zaczęła się nie wcześniej niż studia na Politechnice. Nie powiem, że był to przypadek, ale w liceum nie myślałem, że będę programistą. Głównym priorytetem była dla mnie fizyka, matma i wisienką na torcie była biologia. Prawie do końca liceum zastanawiałem się, czy zostać lekarzem albo pójść w biotechnologię, ale wtedy zacząłem już myśleć o programowaniu i informatyce. Bycie lekarzem odpadło prawie od razu, bo wiedziałem, że chcę iść do technicznej uczelni. No i punktem X było wystawienie priorytetów przy składaniu wniosku. Tutaj zaznaczyłem Information Technology wyżej niż Biotechnology. W końcu przyjęli mnie jako studenta informatyki.

Dlaczego zdecydowałeś się na studia na Politechnice Łódzkiej?

Pytanie nie jest proste tak samo, jak i pełna odpowiedź na nie. W bardzo dużym skrócie – to była decyzja podjęta na podstawie wielu czynników, przeszukania wielu informacji z różnych źródeł, analizy rankingów i programu studiów. Wynikiem tych rozważań była decyzja o wyborze Politechniki. 

W trakcie studiów podejmowałeś dodatkowe aktywności związane z programowaniem?

Jeśli chodzi o koła naukowe albo studenckie to nie. Jeżeli mówimy o innych aktywnościach jak miniprojekty – jak najbardziej. Były to różne rzeczy, jakieś gry, aplikacje, grafiki itp. Próbowałem znaleźć swoją technologię albo po prostu poznać coś nowego.

Opowiedz o Acceleration Pool. Jak dowiedziałeś się o tym projekcie? Co Cię skłoniło do dołączenia do niego?

Dowiedziałem się o AP na Akademickich Targach Pracy. Nie pamiętam o czym rozmawiałem z przedstawicielami firmy, ale projekt wydawał się interesujący. Po targach zostałem zaproszony na ciekawe spotkanie techniczne. Co mnie skłoniło? Chyba ludzie. Na wszystkich etapach rekrutacji zaczynając od pierwszego spotkania, komunikacja przebiegała idealnie i z łatwością dogadaliśmy się tak jakbyśmy znali się wiele lat.

Czym zajmowałeś się w ramach programu?

Generalnie Acceleration Pool to realizowany w Harmanie program przeznaczony dla początkujących programistów, którzy szukają miejsca, gdzie mogliby zdobyć praktyczne doświadczenie. Program składa się z mnóstwa różnych szkoleń. Oprócz programowania, którego oczywiście było dużo, mieliśmy jeszcze szkolenia na temat tworzenia dokumentacji, na temat elektroniki, niskopoziomowego programowania itp. Acceleration Pool działa nie tylko w kierunku C i C++, ale także dla Javowców. Przyznam, że przed Acceleration Poolem nie przepadałem za programowaniem niskopoziomowym. Pisałem w C++, ale to, co robiliśmy na uczelni, raczej nie było aż tak bliskie do hardware’u. Dzięki programowaniu tak zaciekawiło mnie programowanie niskopoziomowe, że poszedłem na studia magisterskie z elektroniki.

Porozmawiajmy chwilę o programowaniu niskopoziomowym, jestem ciekaw Twojej perspektywy. Opowiedz o projekcie, w którym wykorzystujesz C i C++?

Z mojej perspektywy widzę wielkie znaczenie w nim teraz, i myślę, że w przyszłości jego znaczenie się nie zmniejszy. Uważam też, że jak chcemy zrobić coś szybkiego i wydajnego to wchodzimy w temat niskopoziomowego programowania, gdzie takie rzeczy jak interpretatory, silniki, miliard frameworków różnego stopnia skomplikowania i abstrakcji wychodzą poza zakres. Dzięki niskopoziomowemu programowaniu komunikujesz się bezpośrednio z maszyną w maksymalnie bliskim dla niej języku, na czym oszczędzisz czas i zasoby.

Po godzinach też pracujesz w C i C++?

Tak, tworzę projekt w temacie robotyki, bazowany na mikrokontrolerze STM32. Dla oprogramowania używam języka C. Dla mnie to projekt badawczy, dlatego że, pomimo uczenia się języka C, pracuje na różnego rodzaju czujnikach i innych aktywnych elementach, z którymi bezpośrednia komunikacja z poziomu zaawansowanych systemów operacyjnych nie jest możliwa.

Jakie do dziś poznałeś zalety, a jakie wady C i C++?

Na temat zalet, prawie wszystko co bym tutaj nie powiedział, zarządzanie pamięcią, portability i tak dalej, będą generalnie znanymi pojęciami. Apropo wad C i C++, choć brzmi to dziwnie, powiem, że nie znam. Nawet wygooglowałem sobie “wady c”, ale nie zgadzam się z większością punktów, szczególnie jeśli chodzi o C.

Myślę, że najważniejszą zaletą jest elastyczność. Z użyciem C i C++ można napisać wszystko: firmware, software różnego kalibru, gry, inne języki programowania. Dla mnie to mega inspirujące, że język ma ogromne możliwości i jednocześnie jest stabilny.

Komu poleciłbyś poznanie C i C++?

Każdemu, kto zaczyna swoją przygodę z programowaniem. Wydaje mi się, że C++ będzie najlepszym językiem żeby zacząć. Jeśli przeanalizować wszystkie języki to większość powstała z C i C++.

Do jakiego rodzaju projektu skorzystałbyś z innych języków niż C i C++?

Jeśli chciałbym zrobić webową aplikację to raczej skorzystałbym z Ruby. Miałem kiedyś krótkie doświadczenie z Ruby i Ruby on Rails. Fajny język i framework, choć z tego co wiem to na bardzo rozbudowane aplikacje się nie nadaje. Android to Java / Kotlin. Kotlina nie znam, ale z Javą myślę, że poradziłbym sobie. Taki potencjalny projekt byłby raczej dla mnie, mam parę pomysłów do realizacji, ale nie są na teraz. Natomiast zawodowo nie chciałbym się przerzucać na coś innego.

harman-team

Wróćmy do Acceleration Pool. Czego nauczyłeś się w trakcie trzech miesięcy trwania programu?

To co mogę powiedzieć z pewnością to to, że zmienił się sposób myślenia o projektach i nadal się to zmienia. Dziś analizując to co było “przed” i “po”, zdecydowanie widzę różnicę. Podejście akademickie do programowania, a podejście firmy wyglądają różnie. Z takich bardziej mierzalnych rzeczy to poznałem Python, wcześniej nie miałem okazji użyć tego języka. Więcej zwracam uwagi na strukturę kodu i “code style”. Więcej poznałem gita. W trakcie niektórych szkoleń mieliśmy wspólne repozytorium, na którym działaliśmy, robiliśmy nawzajem review i naprawiliśmy konflikty, które wystąpiły w trakcie mergowania kodu. Kiedy developujesz sam to takie sytuacje raczej się nie zdarzają, dlatego uważam, że takie doświadczenie bardzo się przydaje.

Dlaczego zainteresowałeś się Pythonem? Co Ciebie w nim zaskoczyło?

Poznawałem Pythona w ten sposób: “Mam problem, poszukam, jak rozwiązuje się go w Pythonie”. Przyjemny język do opanowania, prosta składnia, milion bibliotek i modułów, gdzie już wszystko masz i tylko trzeba w należyty sposób je użyć. Nie powiem, że coś mnie w nim mega zaskoczyło, po prostu traktuję poznanie go jako przyjemne doświadczenie.

Po Acceleration Pool, gdy już pracowałeś w Harmanie, zorganizowano wewnętrzny hackathon. Opowiedz o tym, jak wyglądała praca nad ówczesnym projektem.

Przed rozpoczęciem hackathonu zasugerowano kilka tematów. Nad rozwiązaniami wskazanych problemów pracowaliśmy na komputerach przygotowanych zgodnie z naszymi zapotrzebowaniami. Musieliśmy zatem powiedzieć jakiego rodzaju oprogramowania, narzędzi i innych rzeczy potrzebujemy. W tzw. międzyczasie, zaczęliśmy wymieniać się pomysłami jaki w ogóle projekt chcemy zrobić. Wśród tematów wybraliśmy bezpieczeństwo kierowcy i wpadliśmy na pomysł inteligentnej kierownicy. 

Dzięki temu, do wcześniej ustalonej listy potrzebnego software’u, doszła jeszcze lista części, które potrzebowaliśmy, żeby w ramach 24 godzin zajmować się projektem a nie poszukiwaniem jakiejś części. I jak konkurs się rozpoczął to zaczęliśmy składać wszystkie elementy. Najwięcej czasu zajęło właśnie połączenie wszystkich elementów hardwarowych. Równolegle pisaliśmy soft do tego i testowaliśmy jak działa. W trakcie naszej pracy podchodzili do nas sędziowie żeby sprawdzić, jak idzie projekt i zobaczyć nasze bieżące sukcesy. Kilka godzin przed upływem czasu, pracowaliśmy nad prezentacją i nagrywaliśmy filmiki do niej. Na sam koniec prezentowaliśmy projekt sędziom i wszystkim zainteresowanym.

Razem z kolegami dostaliście się drugiej rundy hackathonu. Co zrobiliście w ramach tego wydarzenia?

W drugiej rundzie hackathonu mieliśmy możliwość rozwinąć projekt z pierwszej rundy, co zrobiliśmy. I choć idea wcześniej była nieco inna, to podczas realizacji zmieniła się. Naszym projektem hackathonowym była „inteligentna kierownica”, a jej główną funkcją było informowanie kierowcy poprzez wibracje, dźwięk i mały LCD ekran w hoodzie o zbliżających się przeszkodach, szczególnie o obiektach w tak zwanych „blind spotach”, przestrzeniach niewidocznych dla kierowcy. 

Dzięki temu projektowi zajęliście drugie miejsce w globalnym rankingu firmy – jak myślisz, dlaczego zostaliście tak wysoko wyróżnieni?

Z tego co wiem, to dużo punktów zyskaliśmy na tym, że nasze rozwiązanie nie było wyłącznie softwarowe. Dużo zrobiliśmy w ramach hardwarowej części projektu. Sądzę też, że realizowaliśmy dość ciekawy pomysł. Myślę, że wprowadzenie takiego lub podobnego produktu w życie mogłoby zwiększyć bezpieczeństwo i przyjemność jazdy.

Jaką ważną lekcję wyciągnąłeś z tego doświadczenia?

Pierwszą lekcją było to, że planowanie jest bardzo ważną częścią każdego projektu. Kiedy rozmawialiśmy z chłopakami już po tym pierwszym 24-godzinnym maratonie to była pierwsza rzecz w dyskusji. Nie mówię, że nie mieliśmy planu, ale trochę nam brakowało takich skilli. Pozostałe rzeczy raczej nazwałbym “doświadczeniem” a nie “lekcją”. Na przykład takiego rodzaju wydarzenia sprawdzają nie tylko wiedzę i umiejętności, ale jeszcze fizyczne limity, tego jak twój organizm zachowuje się podczas długiej i intensywnej pracy.

Co poleciłbyś młodym programistom, którzy chcieliby rozpocząć przygodę z programowaniem?

Nie czuje się “starym programistą”, sam w tym momencie mam 21 lat, moja przygoda z programowaniem rozpoczęła się nie tak dawno. Rówieśnikom powiedziałbym, żeby długo się nie zastanawiali, czy warto. Dla mnie odpowiedź jest jasna: warto. W najgorszym przypadku będziecie wiedzieć, że na przykład ta technologia wam się nie podoba i znajdziecie jakąś inną.  

Masz jakieś określone plany na przyszłość czy skupiasz się na tym, co tu i teraz?

Większość moich planów określiłbym jako długoterminowe. Na przykład jednym z takich celów jest ukończenie studiów magisterskich. Jeśli chodzi o to, co jest tu i teraz, to robię wszystko, co do mnie należy.

Jak myślisz, czy dzisiaj każdy może zostać programistą?

Myślę, że tak. Teraz komputery są na tyle dostępne, że programowanie nie jest czymś, czym się zajmują dziwni ludzie siedzący w piwnicach lub w garażu. Uważam, że dzisiaj istnieje minimalny próg wejścia. “Easy to start, hard to master” – bardzo znany aforyzm i myślę, że on świetnie pasuje do tej branży. 


Nazar Sabo-Polishchuk. Junior Software Engineer w firmie HARMAN Connected Services Poland, który łączy pracę programisty ze studiami magisterskimi na Politechnice Łódzkiej. Pracuje przede wszystkim w C++. Aktualnie jest częścią projektu Dashcam, który jako jeden z projektów Harmana był przedstawiany na styczniowym CES 2020.​

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Chińska sonda kosmiczna na Księżycu. Technologiczna prasówka: 31.12-4-01.2018