Z embedded do web

0

Cześć,

pracuję od ponad 5 lat w branży embedded. Na początku głownie C, teraz C++. Stanowisko koniec mid/poczatek seniora. Ostatnio rozglądałem się za zmianą pracy i trochę się zmartwiłem bo na śląsku wybór jest praktycznie zerowy.

Większe firmy, w których jako tako idzie zarobić to:

  1. Rockwell Automation
  2. DisplayLink ( z czego rekrutacje sa bardzo rzadko).

i to chyba tyle?

Zastanawiam się w takim razie, czy nie warto przebranżowić się na jave lub c#. Jak wygląda sytuacja tych języków na śląsku?
Wiem, że embedded we WRC czy KRK wygląda troszkę lepiej, ale planuje zostać na śląsku.

Ktoś z forum mieszka na śląsku i pracuje może w .net albo javie i może coś powiedzieć na ten temat?

Zastanawiam się czy też jest jakakolwiek szansa przejścia z embedded np. do web w c#/javie...

A może wejść np. w C++ QT? chociaż tutaj wcale nie jest lepiej?

Z góry dzięki za pomoc.

1

Ja wiele mogę zrozumieć, ale nie skok z embedded na webdev.

Nie lepiej przejść na admina?

Jeśli działałeś w temacie bebechów okołokernelowych i masz pojęcie jak działają popularne OSy UNIXopochodne oraz umiesz robić wiwisekcje działającym programom w C, C++ i umiesz nawigować w kodzie C ze zrozumieniem (co może się przydać nie raz i nie dwa), kompilować jądro i popularne demony ze źródeł ustawiając środowisko pracy (zmienne, instalacja bibliotek) to jesteś do przodu o lata świetlne niż ktoś goły w temacie a idący do adminki i mający za sobą tylko postawienie kilku demonów na skrzyż i Wordpressa. Jeśli w dodatku robiłeś te embedded w kontekście komunikacji po sieci i coś tam jarzysz jak pakiety po sieciach latają, to masz kolejny atut.

Jeśli chcesz iść w webdev to rozumiem, że coś już liznąłeś w temacie? Zapytania MySQL? PHP? Python? Jeśli tak to masz kolejne punkty do posady admina.

Idąc w webdev w zasadzie wyrzucasz do kosza większość tego co robiłeś przez ostatnie lata.

Piszę to jako były pracownik działki embedded, który przeszedł do adminki.

Wiem, że embedded we WRC czy KRK wygląda troszkę lepiej, ale planuje zostać na śląsku.

Kiedy to Wrocław wyrzucili ze Śląska? :P

0

@Satanistyczny Awatar: Ścieżka admina mnie kompletnie nie interesuje. Odkąd przeszedłem z c na c++ (w embedded) spodobało mi się to wszystko związane z OOP. Więc zacząłem myśleć o tym, żeby w ramach tej samej pracy spróbować przeskoczyć jakoś na tego .net?? Pytanie czy takie ruchu są w ogóle możliwe... (jest to korpo).

1
rooti napisał(a):

Odkąd przeszedłem z c na c++ (w embedded) spodobało mi się to wszystko związane z OOP. Więc zacząłem myśleć o tym, żeby w ramach tej samej pracy spróbować przeskoczyć jakoś na tego .net?? Pytanie czy takie ruchu są w ogóle możliwe... (jest to korpo).

Cóż, różne widziałem w życiu dziwne zamiłowania, więc i w zapałanie miłością do OOP jestem w stanie uwierzyć. Czy taki ruch jest możliwy to już będą ci musieli odpowiedzieć decydenci w tym korpo. Nikt na forum ci na to pytanie odpowiedzi nie jest w stanie udzielić.

1

Nie trzeba mieszkać na śląsku, żeby wiedzieć, że w Javie nowej pracy szuka się 1 miesiąc. Z tego co piszesz to jedyne kryterium wyboru języka, więc Java jest dla Ciebie

0

@Satanistyczny Awatar:
"Idąc w webdev w zasadzie wyrzucasz do kosza większość tego co robiłeś przez ostatnie lata."
To mnie trochę martwi. Bo aktualnie jestem praktycznie na poziomie senior wiec oferty dostaje na poziomie UoP - 13-15k brutto albo B2B okolice 100zł/h. Zakładam, że to będzie blisko sufitu już w embedded. Może te 120-130/h za jakis czas.
Ale jak to wyglada w .NET?
Bo zakładając, że przeskoczę w tej samej firmie na .net to stawka przy najlepszych wiatrach pozostanie ta sama. Ale za ile czasu będę mógł rzucać kwotami 100z l/h na b2b w takim .net jak moje całe doświadczenie w web bedzie od 0? Bo jeżeli kolejne firmy będą liczyłu mi tylko doświadczenie w .net to takie zarobki będę miał za jakieś 3-4 lata. Co kompletnie mi się nie opłaca.
Zakładam też, że sporo będę musiał włożyć nauki, żeby dogonić wiedzą ludzi z 3-4 letnim expem w .Net (web).

Ale zakładam, że odpowiedź brzmi. TO ZALEŻY od kolejnego pracodawcy.

1

Ale wiesz, że wspomniane przez Ciebie OOP w kontekście po prostu języka to taki poziom (moim zdaniem) juniorski?
Poza pisaniem klas i wiedzą co to jest enkapsulacja (w przypadku javy) dochodzi jeszcze poznanie całego ekosystemu JVM'a (narzędzia, frameworki, biblioteki), metodyk pracy (TDD) czy koncepcji architektonicznych (architektura heksagonalna, cqs/cqrs, event driven czy DDD).

Nie jestem pewien na ile tych elementów używa się w embeded ale w biznesowym sofcie pisanym w javie jest to wymagane więc przemyśl czy to w twoim przypadku tylko kwestia zmiany języka i poznania jego składni czy musisz nadrobić też całą wspomnianą wcześniej otoczkę.

Update:
Zapomniałbym o otoczce związanej z jvm'em jako takim: profilowanie, gc, model pamięci (zaawansowane rzeczy ale skoro chcesz przeskoczyć z seniora na seniora/mocnego mida to imho wypada orientować się w temacie).

1

@RequiredNickname: Zdecydowanie większość tego co wyminiłeś nie występuje w embedded. Sam język znam. Dochodzi tutaj poznanie np. asp.net, entity framework, podejscia MVC itp. Jak najbardziej się z tym liczę. Dlatego wyznaczyłem sobie pół roku żeby ogarnąć wszystko dookoła (zakładając, że sam język i OOP znam). Co Ty myślisz na ten temat? Czy są to rzeczy to wciągnięcia w takim czasie? Czy to raczej inny rząd wielkosci.

Update:
W zasadzie chciałbym przeskoczyć z seniora, na mida po prostu.

2

Pytanie na ile owocna będzie nauka na własną rękę na pet projektach bo to jednak nie to samo co rzeczywisty projekt w pracy (poziom skomplikowania, czas który można poświęcić itp).
Ogólnie zagadnień związanych z javą jest tak wiele, że osoba (mimo doświadczenia w pisaniu kodu) ucząca się od 0 nie ma szans startować wyżej niż na mida.

To co (moim zdaniem) powinien umieć mid w większym lub mniejszym stopniu to:

  • core języka, zagadnienia związane z wielowątkowością
  • narzędzia pokroju mavena do budowy projektów
  • spring/spring boot
  • sql, orm (hibernate + ewentualnie jakaś alternatywa)
  • rest/soap/reactive programing (np. webclient w springu)
  • wzorce projektowe/architektoniczne
  • biblioteki typu junit, guava, apache itp
  • różnego rodzaju zbiory zasad (clean code autorstwa wujka Boba, solid, grasp, prawo demeter)
  • podstawowa znajomość konteneryzacji
  • algorytmika
  • wspomniane wcześniej koncepty typu TDD,DDD,CSQ,CQRS, Event Driven itp
  • testowanie (jednostkowe, integracyjne itp)
  • zagadnienia związane z mikroserwisami
  • zagadnienia związane z jvm (gc jako must have)

Kilka książek wypadałoby do tego przeczytać (np. wspomniany clean code, effective java to takie must have)

Jeśli jesteś to wszystko w stanie ogarnąć na przeciętnym/dobrym poziomie w ciągu kilku miesięcy to jestem pełen podziwu ;)

Ps. to są rzeczy które teraz jako pierwsze przychodzą mi do głowy i na które ja staram się zwracać uwagę i w nich poszerzać wiedzę. Najpewniej o czymś zapomniałem albo o czymś jeszcze nie wiem, że będę musiał poznać)

1

Mnie tam na Twoim miejscu nie przeszkadzałoby to, że jest N rzeczy do nauczenia. Tego typu rzeczy idzie przerobić, bo też to nie są super skomplikowane rzeczy, i jak ktoś potrafi się uczyć to temat jakoś ogarnie.

Martwiłbym się tym czego będziesz musiał się niestety oduczyć z C++, bo podejście w webówce jest trochę inne, dużo rzadziej spotkasz optymalny kod, a w praktyce coraz mniej będzie miało znaczenie jak daną rzecz zrobić z perspektywy wydajności, a bardziej będzie się liczyło co ogólnie robisz, czy to będzie utrzymywalne i czy rozumiesz szerszy kontekst tego co robisz.

Stąd częściej spotkasz wrapery od wraperów na wrappery, a typowy dzień może oznaczać klepanie kodu tylko po to, by zintegrować ze sobą gotowe biblioteki/narzędzia/serwisy, które w zasdadzie wykonują główną pracę. W dłuższej perspektywie taka praca jest znacznie mniej ciekawa niż problemy/tematy jakie występują przy c++.

Na Twoim miejscu wersja ostrożna, wybrałbym scalę, bo tam też bohatersko jak w C++ idzie programować i dzień mija przyjemnie nawet przy nudnych rzeczach.

Natomiast jeśli nie scala to wybrałbym javascript + typescript, bo wtedy jest 3-4 razy mniej nauki (względem java i backendu), a kasa porównywalna i dużo więcej zdalnych ofert.

0

Na seniora pewnie wymagaliby od Ciebie wcześniejszej pracy nad kilkoma projektami webowymi

0

@Satanistyczny Awatar:

Satanistyczny Awatar napisał(a):

Ja wiele mogę zrozumieć, ale nie skok z embedded na webdev.

Nie lepiej przejść na admina?

Jeśli działałeś w temacie bebechów okołokernelowych i masz pojęcie jak działają popularne OSy UNIXopochodne oraz umiesz robić wiwisekcje działającym programom w C, C++ i umiesz nawigować w kodzie C ze zrozumieniem (co może się przydać nie raz i nie dwa), kompilować jądro i popularne demony ze źródeł ustawiając środowisko pracy (zmienne, instalacja bibliotek) to jesteś do przodu o lata świetlne niż ktoś goły w temacie a idący do adminki i mający za sobą tylko postawienie kilku demonów na skrzyż i Wordpressa. Jeśli w dodatku robiłeś te embedded w kontekście komunikacji po sieci i coś tam jarzysz jak pakiety po sieciach latają, to masz kolejny atut.

Jeśli chcesz iść w webdev to rozumiem, że coś już liznąłeś w temacie? Zapytania MySQL? PHP? Python? Jeśli tak to masz kolejne punkty do posady admina.

Idąc w webdev w zasadzie wyrzucasz do kosza większość tego co robiłeś przez ostatnie lata.

Piszę to jako były pracownik działki embedded, który przeszedł do adminki.

Twoje zalożenia są strasznie niepoprawne. Embedded to bardzo szeroka dziedzina. Znam ludzi co 20 lat w tym siedzą i nie mają pojęcia ani o Linuxie(może jedynie Instalacja Ubuntu), Uniksie, komunikacji po sieci, w niektórych aplikacjach embedded Linuxa się w ogóle nie używa, tylko pisze się kod w C i ASM na małe uC, co nie znaczy, że jest to proste zadanie, gdyż są to systemy extremalnie krytyczne. Takcy progamiści to często bardziej elektronicy niż programiści.

Wg mnie Embedded != Admin.

0
cpp_beginer napisał(a):

Twoje zalożenia są strasznie niepoprawne.

Moje założenia są strasznie poprawne.

Wg mnie Embedded != Admin.

Według mnie czytanie nie jest tożsame czytaniu ze zrozumieniem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1