Przekwalifikowanie się na programiste (Java, C++) , czy warto?

Witam kolegów automatyków, szukam kilku porad odnośnie ścieżki kariery, które na pewno nie tylko mi się przydadzą. Otóż pracuję w małej firmie, zajmuję się projektowaniem szaf sterowniczych oraz ich prefabrykacją. Doszkalam się w swoim zakresie z programowania PLC. Niestety w firmie nie mam okazji się wykazać ani jakoś doszkolić na konkretnym problemie. Nie lubię stać w miejscu a niestety czas tyka. Jednak coraz częściej się słyszy o znajomych, którzy postanowili się przekwalifikować na programistów idąc bardziej w kierunku IT niż automatyki przemysłowej, ciągłe zapotrzebowanie na programistów jest dość interesującą alternatywą. I teraz sam się zastanawiam nad dalszą ścieżką kariery. Na co warto poświęcić czas? Uczyć się języków programowania od podstaw? czy może dalej poświęcać czas na programowanie PLC? Czy jest może jakaś alternatywa gdzie wykorzystam wiedzę z obydwu tych zakresów? Chciałbym poczytać opinie kolegów po fachu, którzy mają większe doświadczenie i wiedzą co narzuca teraz rynek pracy.

Patrząc na obecne trendy z “Industry 4.0” to najlepiej wykorzystać wiedzę którą już posiadasz w automatyce i dołączyć do tego część IT, tak aby móc łączyć systemy PLC <-> IT.
Ewentualny trop którym można podążyć to tworzenie dedykowanych rozwiązań typu “SCADA”, ponieważ są to systemy często przestarzałe i nie można w nich ogarnąć zbyt wiele (WinCC pożal się Boże) - można dopisywać do nich lub tworzyć równolegle systemy zarządzania produkcją, spersonalizowane pod konkretne przedsiębiorstwo. Spotkałem się z takimi wymaganiami i ostatecznie może się okazać, że cena licencji przekracza cenę wyprodukowania własnej apki (C#/JAVA lub wersja web) i posiada dużo większą funkcjonalność.

2lajki

Tomasz swego czasu pisałem o Twoich dylematach na Blogu.

Tak naprawdę nie ma jednoznacznej odpowiedzi co jest lepsze automatyka czy IT.
Wszystko zależy od tego co sprawia Ci przyjemność w pracy.
Siedzenie po 8-10h przed komputerem i pisanie kodu nie wszystkim odpowiada :wink:

2lajki

Warto. Po kilku latach doświadczenia, jeśli tylko będziesz dobry, czekają Cię co najmniej o połowę lepsze pieniądze (jak nie lepiej), i to pracując 8-16 bez delegacji i pracy na zmiany. Plus zmiana pracy to kwestia odpisania rekruterom na linkedin, przy czym nie ogranicza Cię miejsce zamieszkania, bo zawsze możesz pracować zdalnie.

Przewidywania, że ten trend z ssaniem na informatyków się nie utrzyma, można między bajki włożyć, nie ma takiego kraju na świecie, żeby inżynier IT zarabiał mniej od non-IT. Zwykle tak mówią Ci, co się próbują pocieszyć, że nie jest źle i będzie lepiej :wink:

Wydaje mi, że trzeba się głęboko zastanowić, bo nauka samej JAVA’y SE nie wystarcza, to jest jak z C++[STL, QT, GTK??] (nie ma RAD’a jak kiedyś w DELPHI ze wszystko jest zintegrowane), po zapoznaniu z samym językiem następuje zastój, okazuje się ze trzeba uczyć się np. STL’a, Frameworków czy JAVA’y EE, na która największy jest popyt na runku pracy i są najwyższe zarobki. Dobrym rozwiązaniem jest zapoznanie JAVY i Androida czyli pisanie programów na komórki (smartphony) jednak finansowo nie plasuje się to na najwyższym poziomie.

Co do samego programowania trzeba dużo ćwiczyć, żeby kod był czysty i odpowiednio udokumentowany to zabiera czas… wiec sam sobie odpowiedz czy masz czas, żeby zarabiać odpowiednio duże pieniądze z programowania.

Niestety w dzisiejszych czasach samo programowanie nie wystarczy. Do dobrych zarobków jako developer w IT droga nie jest taka kolorowa jakby mogło się wydawać. Poza umiejętnościami twardymi Javy będziesz musiał znać doskonale system kontroli wersji, język angielski biegle w mowie i piśmie, środowisko pracy w jakich rozwija się aplikacje czyli konteneryzacje (tutaj między innymi Docker), wirtualizacje (np Saleforce) , system operacyjny Linux, poruszanie się po serwerach aplikacji Apache lub Tomcat. Do samej Javy jeszcze dochodzi cała masa frameworkow. Spring, hibernate, wypadało by NodeJS, jakies podstawy języków frontend owych, technologie API/Rest. Tego jest cała masa… Sam framework czasem jest tak skomplikowany jak i główny jezyk np Java.

Jak to opanujesz to przychodzą inne obowiązki jak poznanie procesu wytwarzania produktu CI/CR, serwisy do zarządzania zadaniami jak Jira, dokumentację w Confluence, system pracy w firmie jaksi AGILE/SCRUM. testowanie aplikacji w Jenkins… I ciągle pojawiają się nowe i nowe rozwiązania gdzie trzeba non stop się doszkalac. Chyba i tak nie wymieniłem wszystkiego…
Wiadomo, że nie wszystko jest w obowiązkach jednej osoby ale z czasem i zarobkami przybywa technologii i zadań już mniej twardych a miękkie jak opisałem wyżej.

Najlepiej popatrz sobie oferty na portalach odnośnie pracy w IT jako programista i będziesz wiedział czy Ci to odpowiada czy nie. :slight_smile:
Musisz też zdawać sobie sprawę z tego, że nie każda firma ma takie cudne i piękne metody pracy gdzie śpisz albo grasz na konsoli a kodujesz 2h dziennie. Najczęściej siedzisz 8h a często i więcej i potem pracujesz w domu i się uczysz (przynajmniej przez pierwsze miesiące lub rok czy dwa) non stop przed monitorem w pozycji siedzącej. Musisz być na bieżąco i żyć tym po prostu. Lubić to :slight_smile: Kodowanie to 20% reszta to walka z problemami i maszynami i myślenie czemu kod nie działa… A potem klient zmieni zdanie i od nowa. Czy to praca dla Ciebie?

Aaa i jeszcze bym zapomniał… Jak już umiesz kodowac to duża część firm zwłaszcza corpo wymagają znajomości wzorców projektowych co też jest nie łatwe czyli musisz oprócz napisania dobrego działającego kodu zrobić taki, który będzie czytelny za 5 lat jeśli ciebie już w firmie nie będzie i taki, który jest zgodny ze schematami danej firmy.

Automatyka + programowanie IT / IOT dają masę możliwości i ja bym poszedł i staram się bardziej iść w tym kierunku :slight_smile:

Właśnie to mnie od dawna nurtuje :slight_smile: jak połączyć Automatykę z IT. Bo to nowy kierunek i nowe rozwiązania i ciężko właściwie odpowiedzieć na pytanie to za co się zabrać w takim razie… Co pisać, co tworzyć?