Zawód programisty od kilku lat owiewają liczne legendy, mity i plotki. Wśród nich są tematy zarobków, zakresu zadań, używanych technologii, czasu potrzebnego na przygotowanie do zawodu czy sposobów nauki programowania.
Postanowiliśmy odczarować tę profesję i wspólnie z serwisem Antyweb zorganizowaliśmy akcję „Miesiąc Programowania”. Przez cały miesiąc będziemy publikować wysokiej jakości materiały skierowanie do programistów oraz wszystkich osób, które chciałyby rozpocząć swoją przygodę z programowaniem.
fot. unsplash.com
Czy chcesz komuś uratować życie? Być może rozwiązanie przygotowane właśnie przez Ciebie któregoś dnia zmieni branżę medyczną albo stanie się podwaliną rewolucji technologicznej. Spokojnie, masz czas zaaplikować na wakacyjny staż w Comarch do 25 kwietnia.
Zaawansowane systemy informatyczne są obecne niemal w każdej dziedzinie życia. Systemy szpitalne są jednym z najlepszych przykładów, choć nasz kraj jeszcze nie wykonał prawdziwego kroku naprzód, ale można być pewnym, że gotowe rozwiązania są już na wyciągnięcie dłoni. Dokumentacja medyczna, zawierająca archiwa z danymi na temat zdrowia pacjentów oraz wyniki badań, to jeden z tych najważniejszych aspektów cyfrowej rewolucji w medycynie, ponieważ jedno centralne miejsce na wszystkie dane przekłada się na szybsze podejmowanie czynności związanych z leczeniem, a lekarz ma dostęp do całościowego oglądu na stan zdrowia pacjenta.
Urządzenia monitorujące zdrowie mają na swoim koncie niemały sukces – uratowały życie już kilku pacjentom z całej Polski, o czym przekonał się między innymi jeden z mieszkańców Augustowa, u którego ratownicy z krakowskiego Centrum Medycznego iMed24 wychwycili symptomy zaburzeń pracy serca.
Zdalna kontrola zdrowia pacjenta, nawet w trakcie jego snu, pozwala przewidzieć krytyczne sytuacje i w razie konieczności interweniować. Pierwszym krokiem jest oczywiście kontakt z pacjentem, ale gdy jest on niemożliwy, to na miejsce może zostać wysłana karetka. Bransoletki życia współpracują ze smartfonami, gromadząc dane na temat jego kondycji, ale pozwalają też błyskawicznie wezwać pomoc – służy do tego jedyny przycisk fizyczny na bransoletce. Wbudowany akcelerometr jest w stanie wykryć nagły upadek – odpowiedni wzorzec algorytmu przygotowywany jest wcześniej na podstawie wielu zapisów, głównie po to, by wykluczyć inne okoliczności.
To właśnie tutaj zachodzi najważniejsza magia, gdy do gry wkracza algorytmika, która musi być bezbłędna. Przy relatywnie prostszych projektach urządzenia mogą na bieżąco monitorować zdrowie pacjenta (ciśnienie, waga, temperatura i poziom cukru), by lekarz mógł zaobserwować pewne nieprawidłowości wcześniej niżbyło to możliwe do tej pory.
Zanim jednak Bransoletka Życia czy inny produkt trafi do pacjentów, Comarch starannie pracuje nad jego udoskonaleniem od pierwszego dnia rozpoczęcia projektu do chwili wprowadzenia go na rynek. Comarch sięga po wszystkie możliwe rozwiązania, by gromadzone przez sensory oraz podczas badań dane jak najszybciej przetworzyć i przeanalizować. Wykorzystywane do tego są układy GPU (karty graficzne), co zdecydowanie skraca okres budowania modeli analitycznych. Wykorzystywane też są inne nowe rozwiązania, jak biblioteka TensorFlow od Google, której używa się przy projektach skupionych na uczeniu maszynowym i głębokich sieciach neuronowych.
O jednych i drugich słyszy się coraz więcej i taki trend z pewnością jeszcze długo się utrzyma, a wszystko za sprawą ułatwień jakie ze sobą niesie – w krótszym czasie możliwe jest zaimplementowanie większej liczby modeli warstw, liczby wejść i wyjść, a także klasyfikatorów weryfikujących.
– W procesie modelowania algorytmów wykorzystujemy np. MatLab, który jest wyposażony w szereg gotowych bibliotek naukowych, dzięki którym możemy skupić się na prototypowaniu. Osoby pracujące u nas nad algorytmami ML upodobały sobie język Python, który daje możliwość zapisania skomplikowanych działań w prostej i czytelnej składni oraz dostęp do wszystkich narzędzi, o których może zamarzyć naukowiec pracujący przy ML. Do zwiększenia efektywności procesu modelowania wykorzystujemy również TensorFlow, który pozwala nam w łatwy sposób na uruchomienie procesu uczenia sieci neuronowych lub głębokich sieci na środowiskach wyposażonych w karty GPU. Później, gdy projekt jest gotowy i działa zgodnie z oczekiwaniami, w celu zwiększenia wydajności kod przepisywany jest na język C++ umożliwiający szybsze przetwarzanie danych oraz optymalizację. Specyfika C++ wymaga od programisty zaawansowanych umiejętności, ale daje też większą kontrolę nad procesami, które się programuje. Taki proces wymaga poświęcenia większej ilości czasu, ale jest zdecydowanie wart osiąganych rezultatów – Marcin Noczyński, Dyrektor Działu Research and Development w Comarch Healthcare.
Lecz C++ to nie jedyny język, który wykorzystuje się w Comarchu – tych jest cały wachlarz. Można rozwijać umiejętności w technologiach serwerowych oraz mobilnych. Do tworzenia aplikacji używane są różne języki JAVA, C#, bazy danych SQL-owe oraz NoSQL-owe czy technologie frontendowe takie jak JavaScript (m.in. Angular, React), HTML, CSS. Ważne jest, by zacząć swoją przygodę z kodowaniem od studiów informatycznych, bo dają mocne podstawy do rozumienia logiki języków, budowania architektury programów i wiedzę teoretyczną, która jest podwaliną do produktów wytwarzanych w Comarch. Praca przy projektach z zakresu Research and Development (R&D, Badania i Rozwój) w Comarch daje możliwości dalszego rozwoju naukowego na uczelni, a to jest szczególnie doceniane.
W projektach R&D proces wytwarzania oprogramowania i pracy w Comarch oparto o zasady DevOps-a i manifest Agile (programowanie zwinne). Po rozmowie z klientem lub zatwierdzeniu projektu tworzony jest wewnętrzny, ogólny projekt, w którego skład wchodzą mniejsze odpowiedzialne za poszczególne scenariusze zastosowań i funkcje aplikacji czy urządzenia.
Wspomniane zasady regulują pracę zespołową oraz podejście do wydawania kolejnych wersji produktu – jako przykład mogą posłużyć tu podziały na mniejsze podprojekty (według SCRUM) oraz regularne i częste testy weryfikujące, czy działa on w sposób zaplanowany, które pozwalają uniknąć poważnych problemów w dniu wdrożenia, gdy gotowe są wszystkie elementy i produkt wydaje się skończony. Skuteczność działań zwiększa wprowadzanie poprawek na bieżąco, bo ewentualne błędy nie mają tak poważnych skutków. Dopiero w późniejszych etapach wprowadzane są większe ilości danych, by można było zweryfikować, czy projekt – mówiąc kolokwialnie – udźwignie ogromne bazy danych pełne ważnych informacji.
Wszystko to pomaga lekarzom, których czas jest cenny – bo ludzkie życie jest ważne, a czasem decydują o nim minuty. Popularność takich rozwiązań będzie rosła i to z wielu powodów. Jednym z nich jest malejąca obawa przed technologią, co wynika między innymi ze zmiany pokoleniowej – ci, którzy dziś dorastają otoczeni smartfonami, laptopami i innymi urządzeniami będą spodziewać się i oczekiwać takiego samego postępu w innych dziedzinach życia.
Nie bez znaczenia są też możliwości redukcji kosztów dla placówek – można to osiągnąć poprzez przechowywanie dokumentacji medycznej w formie elektronicznej, czego w Polsce czy Europie na szerszą skalę jeszcze nie doświadczamy. Dla samych pacjentów korzyści będą bardzo oczywiste – począwszy od uniwersalnej i dostępnej z każdego miejsca dokumentacji, do której będzie miał wgląd z wielu poziomów: smartfona lub PC , a na zdalnej realizacji świadczeń kończąc. Takie rozwiązania są już powszechne w Stanach Zjednoczonych, gdzie elektroniczne recepty są na porządku dziennym, a zdalne wizyty lekarskiej stanowią połowę wszystkich – jest to wygodne dla lekarzy, którzy oszczędzają czas i mogą przyjąć większą liczbę pacjentów, a także dla samych pacjentów, którzy nie muszą wychodzić z domu, aby uzyskać specjalistyczną poradę. Tutaj rolę odgrywa też czas potrzebny na uzyskanie kontaktu z lekarzem – połączenie może być nawiązane natychmiast z jednym z dostępnych specjalistów niezależnie od miejsca zamieszkania. Jak widać, zyskują na tym wszyscy, a gotowe rozwiązania tylko czekają, żeby wprowadzić je na szeroką skalę.
– W ramach zadania stażowego wraz z zespołem dostaliśmy do wykonania demonstracyjną wersję narzędzia medycznego. Była to aplikacja mobilna komunikująca się urządzeniami pacjentów, która zbiera przy pomocy Bluetooth takie dane jak waga, temperatura, ciśnienie, a następnie przesyła te informacje do lekarza. Dzięki takiemu stażowi można zdobyć doświadczenie przy bardzo ciekawych i ważnych projektach. To także możliwość dla studentów nabycia praktycznych umiejętności. Projekt stażowy wykonywaliśmy w języku JAVA, popularnym i wykorzystywanym przy wielu projektach. Jest dość łatwy dla początkujących, posiada obsługę błędów, a na dodatek jest to język, w którym można przygotowywać aplikacje na system operacyjny Android. W ostatnim czasie pojawiało się także kilka ciekawych języków bazujących na Javie, między innymi Scala czy Kotlin. Na stażu cenne dla mnie było nauczenie się stylu pisania i porządkowania oraz projektowania architektury kodu. Z drugiej strony praca w metodologii SCRUM uczy omawiania problemów na bieżąco i sprzyja wymienianiu się wiedzą i informacjami, gdzie szukać odpowiedzi na problemy – Adam Klemba, programista w Comarch, były stażysta.
Rozwiązania dla sektora medycznego to nie jedyne projekty, nad którymi pracują zespoły w Comarch. Udział w wakacyjnych stażach to szansa na zdobycie doświadczenia przy projektach realizowanych dla międzynarodowych koncernów. Trwający trzy miesiące staż (od lipca do końca września) to możliwość zapoznania się całym cyklem powstawania produktu informatycznego – od momentu pojawienia się potrzeby, analizę, zaprojektowanie i oprogramowanie, po testy i wdrożenie oraz spisanie dokumentacji. Wybór technologii, w jakiej będzie pracować stażysta, należy do niego samego – dostępne są ścieżki z Javą, .NET-em, C/C++, bazami danych i web-developmentem (frontend).
Lokalizacja to także spora zaleta programu stażowego w Comarch, ponieważ jest on organizowany w 12 dużych miastach w całej Polsce, między innymi w Gdańsku, na Śląsku – w Gliwicach i Katowicach, Krakowie, Łodzi, Poznaniu, Warszawie i Wrocławiu. Staż to także pierwszy krok, aby rozpocząć długofalową współpracę z Comarch. Firma umożliwia studentom pracę w niepełnym wymiarze czasu i elastyczne godziny pracy, dzięki czemu łatwiej pogodzić wyzwania na uczelni ze zdobywaniem praktycznego doświadczenia.
Artykuł powstał we współpracy z Comarch.