Zmiana języka - luźne rozważania

Odpowiedz Nowy wątek
2019-07-08 08:12
1

Cześć wszystkim.
Znudzony już trochę tym jak wygląda kod produkcyjny w C++[tona zaszłości, wskaźniki na wskaźniki, wskaźniki na funkcje, new i delety, brak STL'owych struktur danych bo lepiej zrobić alokacje przez new], pomyślałem sobie o zmianie ścieżki kariery. Broń boże nie jest to temat na zasadzie "jest tyle języków, nie wiem co wybrać", ani też nie "który język przyniesie mi największe zarobki". Wybrałem kilka języków, potrzebuję dowiedzieć się o realiach pracy w tych technologiach. C++ bardzo lubię, od 11'stki da się w nim pisać naprawdę super kod, ale mam wątpliwości, że jak będę zmieniał firmę, to w innych projektach jest dużo bardziej "nowoczesny" kod, mniej bałaganu, mniejsza ilość definów i innych dupereli, których w tym języku, od co najmniej 8 lat, nie trzeba kompletnie używać - niemniej, jeżeli się mylę, i ktoś osobiście zna krakowskie firmy, w których standardy kodowania w tym języku są całkiem wysokie, chętnie się o nich dowiem, bo ten język znam zdecydowanie najlepiej ze wszystkich, i sporo czasu na rozwijanie tej wiedzy poświęciłem.

Selekcja dotyczy kilku języków, które mniej lub bardziej znam, a w których bym się widział:

C - Rezygnacja z C++ na rzecz tego języka to pewnie byłby trochę ból, z uwagi na konieczność pożegnania się z STL'em i brakiem alternatywy dla niego, ale z drugiej strony język jest relatywnie prosty, i ta rezygnacja z STL'a ma taką korzyść, że i dziwnych problemów można uniknąć. Mam jednak wątpliwości czy byłaby tu jakaś wielka zmiana względem C++'a pod względem standardów kodzenia, a i najwięcej ofert widzę w embedded, a trochę nie jestem fanatykiem programowania na bare metal i malutkie urządzenia.

C# - Super język, naprawdę bardzo lubię pisać w C#, mimo ogólnego nielubienia się z technikami MS. Problem jaki widzę to niestety konieczność pracy na Windowsie - dużo wygodniej pracuje mi się na macOS/Linux. Widziałem kilka ofert, gdzie oferowano możliwość pracy na Linuxie czy Maku, ale generalnie takich ofert było niewiele - może ktoś się spotkał, bo trochę mnie interesuje jak to wygląda.

Scala - Cenię sobie możliwości Scali, ciężko sobie rozpisywać, ale bardzo przyjemnie jest dla mnie pisanie w tym języku. Tutaj jedyne wątpliwości, to w zasadzie fakt, czy dla kogoś bez doświadczenia w Javce, jest w ogóle szansa na wbicie się na rynek Scali.

Go - Patrz avatar. Brak sensownych ofert na ten moment i to jest główny problem.

Chciałbym poznać wasze doświadczenia z tymi językami, w opozycji do tego, co skromnie opisałem na temat moich doświadczeń z C++. Można ten temat potraktować luźno, obecnie nie pali się mi się grunt pod nogami, nie mam potrzeby zmieniania pracy "na już", a i zdaję sobie sprawę, że moja doświadczenie z pracą przy C++, nie jest żadnym wyznacznikiem i rzeczywistość może się okazać zupełnie inna.


tak zle z tym cpp w polsce? myslalem ze tu juz wiekszosc jedzie na c++11 :/ kurna, ja tu emulator zaczalem pod cv - Cr0w 2019-07-10 10:08
No ja mam nawet C++17 w pracy, ale to nie kompilator, tylko ludzie piszą, i jak ktoś wychodzi z ISO C++, do tego był wtedy oczarowany tym językiem, to ciężko mu porzucić nawyki. - Tenonymous 2019-07-10 14:06

Pozostało 580 znaków

2019-07-08 09:22
0

Wydaje mi się, że powinieneś pomyśleć bardziej nad branżą, ponieważ każda technologia ma swoją niszę. Język C będzie wykorzystywany tam gdzie liczy się szybkość czyli głównie przy sterownikach. Język C++ pozwala tworzyć skomplikowane projekty jednocześnie korzystające z szybkości bibliotek napisanych w C, także większość gamedevu siedzi w C++ i raczej prędko z niego nie zniknie. Tak samo każde oprogramowanie wymagające odpowiedniej mocy przeliczeniowej -> Autocad, Maja, 3DMax, Photoshop etc. Java/Kotlin i C# stawiają na backend webowy, aczkolwiek można też robić w nich praktycznie wszystko. Frontend webowy to Javascripty i typescripty. No i oczywiście są jeszcze bazy danych, wtedy SQLe. Także ja bym myślał bardziej pod kątem takim, w jakiej branży będą mnie interesowały projekty przy wyborze języka. Btw, napisałeś tego posta trochę z autoodpowiedzią -> C#

edytowany 1x, ostatnio: viader, 2019-07-08 09:23

Pozostało 580 znaków

2019-07-08 09:26
0
viader napisał(a):

Wydaje mi się, że powinieneś pomyśleć bardziej nad branżą, ponieważ każda technologia ma swoją niszę. Język C będzie wykorzystywany tam gdzie liczy się szybkość czyli głównie przy sterownikach. Język C++ pozwala tworzyć skomplikowane projekty jednocześnie korzystające z szybkości bibliotek napisanych w C, także większość gamedevu siedzi w C++ i raczej prędko z niego nie zniknie. Tak samo każde oprogramowanie wymagające odpowiedniej mocy przeliczeniowej -> Autocad, Maja, 3DMax, Photoshop etc. Java/Kotlin i C# stawiają na backend webowy, aczkolwiek można też robić w nich praktycznie wszystko. Frontend webowy to Javascripty i typescripty. No i oczywiście są jeszcze bazy danych, wtedy SQLe. Także ja bym myślał bardziej pod kątem takim, w jakiej branży będą mnie interesowały projekty przy wyborze języka. Btw, napisałeś tego posta trochę z autoodpowiedzią -> C#

Najbliżej mi pewnie do tych że wydajnych systemów, niemniej osobiście znam jedną firmę, która system, mający sporo danych do przemielenia, piszę w C#, i raczej na brak klientów nie narzekają, także pewnie też się da. Zresztą w dzisiejszych czasach, przy cenie za sprzęt, można trochę odpuścić sobie mikro-optymalizacje. Co do Gamedevu - jak o tym czytałem, to zawsze wydawało mi się niezwykle ciekawe, a jak zaczynałem się tym bawić to szybko mnie nudziło.
Dlaczego z autoodpowiedzią? ;>


Pokaż pozostałe 7 komentarzy
Ale ja o tym mówię - być może dobieram po prostu złą terminologię. :P - Tenonymous 2019-07-08 09:44
A to myślę, że język masz w porządku. C++ do tego się nadaje bardzo dobrze. Musisz po prostu poszukać ciekawego projektu. - viader 2019-07-08 09:44
Język pewnie tak, ale oglądanie kodu produkcyjnego, w tym języku, czasami jest mocno męczące. A wybór projektów, bądź co bądź, w tym kraju, jest jednak niespecjalnie wielki. :( - Tenonymous 2019-07-08 09:48
Ja to rozumiem, ogólnie nie jest łatwo o ciekawy projekt. Sam musiałem pojechać do Warszawy w poszukiwaniu ciekawego projektu. Moim zdaniem mimo wszystko warto, bo to 8 godzin życia przez 5 dni w tygodniu. Gdyby nie było w Warszawie może bym szukał dalej, ale wydaje mi się, że tutaj jest sporo firm co mogą oferować coś ciekawego. - viader 2019-07-08 09:52
Nie wykluczam zmiany miasta. Zresztą, za kilka ładnych lat, prawdopodobnie będę celował w opuszczenie Polski, także problem powinien być jeszcze mniejszy. :) - Tenonymous 2019-07-08 10:10

Pozostało 580 znaków

2019-07-08 19:54
0

@Tenonymous: w jakim mieście aktualnie pracujesz ? Bo z tego co pamiętam mówiłeś coś i Aeolusie albo Thuamateca ? Tam też źle ?

Kraków. :P Aeolus i Thaumatec są w Wrocławiu i podawałem je jako przykłady firm, które zajmują się czymś ciekawym. :D - Tenonymous 2019-07-08 23:56
to czemu tam nie aplikujesz :D? - belzebub269 2019-07-09 07:47
Chwilowo niestety trzyma mnie jeszcze Kraków, a na zdalną pracę w Aeolusie jest chyba za wcześnie. ;) - Tenonymous 2019-07-09 07:59

Pozostało 580 znaków

2019-07-09 13:47
3

Scala - Cenię sobie możliwości Scali, ciężko sobie rozpisywać, ale bardzo przyjemnie jest dla mnie pisanie w tym języku. Tutaj jedyne wątpliwości, to w zasadzie fakt, czy dla kogoś bez doświadczenia w Javce, jest w ogóle szansa na wbicie się na rynek Scali.

Zależy czy jest projekt Java/ Scala czy sama Scala. W moim projekcie jest sama Scala i dlatego na rozmowach rekrutacyjnych nie pytamy o umiejętności z Javy (praktycznie?) w ogóle. Ciśniemy core Scala, programowanie funkcyjne, biblioteki Scalowe, itd

W praktyce jednak prawdopodobnie w każdym projekcie przydaje się chociażby umiejętność skorzystania z bibliotek Javowych z poziomu Scali. Nie zawsze jest porządna i na bieżąco aktualizowana nakładka bądź pełna alternatywa dla bibliotek Javowych i wtedy używamy bibliotek Javowych wprost. Jest to zdecydowanie sensowne rozwiązanie - po co wymyślać koło od nowa w Scali albo polegać na czymś kiepskim tylko dlatego, że ktoś to sobie naklepał kiedyś w Scali? Efekt jest taki, że niewielka część naszego kodu Scalowego to integracja z bibliotekami Javowymi i działa to sobie OK. Podobnie jest pewnie w innych językach, tzn np Kotlinowcy prawdopodobnie korzystają bez problemu z czysto Javowych bibliotek, C++owcy i Rustowcy z czysto C-owych, TypeScriptowcy z czysto JavaScriptowych, itd


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2019-07-09 13:48
Z Javą miałem styczność, kolekcje np nie są mi obce, więc tutaj raczej nie byłoby większego problemu. Zresztą nawet przy okazji nauki scali, miałem potrzebę skorzystania z czegoś z Javy. - Tenonymous 2019-07-09 23:33
no i oczywiście dziękuję za wpis. :) - Tenonymous 2019-07-09 23:33

Pozostało 580 znaków

2019-07-10 12:50
0

C# i tak jak poprzednicy radzili, szukaj projektów w .core i praca na maku nie będzie przeszkodą, docker i wszystko postawisz.
Scala jest fajna, znajomy szukał pracy mając 3 miesiące doświadczenia w javie i wzieli go jak tylko pokazał że ogarnia podstawy, z tym że w krakowie jest mało firm piszących w scali, a jeszcze mniej z sensownym codebase i spoko projektami :D

No ja z tym .net corem to sobie zdaje sprawę, tylko że często potrzeba jeszcze innego softu do pracy, jakichś poczt, systemów do zarządzania projektem i to może być problem. - Tenonymous 2019-07-10 14:10
Przecież to wszystko jest przeglądarkowe. Na Linuksie przeglądarki działają. - somekind 2019-07-10 18:25

Pozostało 580 znaków

2019-07-10 12:58
1

Jeśli podoba ci się C# i Scala to czemu nie celować w Javę/Kotlina (albo faktycznie w Scale)?


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
Jeżeli JVM to tylko Scala wchodzi w grę, ani Java, ani Kotlin mi nie pasują. Wiem, że ta Java jest w wielu rzeczach podobna do C#, ale bardziej mi leży ekosystem .NET Core'a, jedynym językiem, dla którego mógłbym zrobić wyjątek jest Scala, bo mi się w niej mega przyjemnie pisze[a używanie bibliotek Javowych to jednak co innego niż pisanie w tejże. :P] - Tenonymous 2019-07-10 14:09

Pozostało 580 znaków

2019-07-11 11:44
0

w Krakowie znajdziesz firmy, które robią fajne rzeczy w Go (mogę dać kontakt). Co do C#, to pewnie jest dużo lepiej. Odnośnie JVM to pewnie zaraz po PHP jest to najpopularniejszy język w Krk więc problemu nie będzie. Problem jest raczej taki - co wolisz robić? Klepać backend i siedzieć bardzo blisko blachy czy też jara Cię praca na wyższym poziomie z biznesem, czy też może bardziej infrastruktura (AWSy, mikroserwisy, kolejki, transakcje rozproszone itp).

edytowany 1x, ostatnio: no_solution_found, 2019-07-12 09:05
Pokaż pozostałe 2 komentarze
Co fajnego w Krakowie sie robi w Go? Kojarze tylko Brainly, z tych firm wartych uwagi oczywiscie. - 90909090 2019-07-11 12:17
@no_solution_found: gdybyś był tak miły to możesz podrzucić namiary :) - Dregorio 2019-07-11 12:24
w Brainly pracuję więc tak :) jest kilka mniejszych startupów. Rzeczywiście ofert jest mało. Takich firm, które robią coś więcej w Go w Krakowie (krk) jest kilka, może kilkanaście. - no_solution_found 2019-07-11 12:24
O kontakt poproszę oczywiście. ;) Co do zainteresowań, to backend jest okej, właściwie wszystko co z tym związane. Jedyna działka, którą omijam szerokim łukiem to frontend. :P - Tenonymous 2019-07-12 08:31

Pozostało 580 znaków

2019-07-18 22:14
0

Jeszcze takie pytanie - jak na kompletną zmianę języka patrzą pracodawcy? Załóżmy, że chcę iść z Embedded C/C++, do Scali. Jestem traktowany jak gość bez doświadczenia i muszę się liczyć z obniżeniem zarobków do rangi absolutnie początkującego?


Gdzieś na świecie pewnie nie byłoby problemu, ale nie zdziwiłbym się gdyby w Polsce zakwalifikowali Cie na jakiś staż.. :D Swoją drogą ciekawa droga, ja jestem już znudzony wysokopoziomowym programowaniem i czasem mi się wydaje, że w jakimś embedded byłoby lepiej. :) Chociaż w moim przypadku to pewnie kwestia projektów do jakich trafiałem. - tdudzik 2019-07-18 22:18
z własnego, może nieco krótkiego, doświadczenia + opinii ludzi, między innymi na tym forum, nie wydaje mi się, żeby był wspólny mianownik dla embedded i ciekawe. Na pewno się trzeba bardziej napocić. :P - Tenonymous 2019-07-18 22:20
@tdudzik: widywałem przypadki ludzi zmieniających pracę na embedded po PHPie, więc... Czy byłoby lepiej to kwestia czy lubisz debugować kod przez kilka tygodni by się zorientować, że ktoś dał inną kolejność pól w strukturze na poziomie biblioteki C niż jest na poziomie kernela lub domyślać się jaki hardware bug powoduje dziwne efekty działania kodu przy poprawnym kodzie, bo po co dawać podwykonawcy pełną dokumentację układu. - Satanistyczny Awatar 2019-07-19 09:26

Pozostało 580 znaków

2019-07-18 23:03
1

Ja z deva C++ zmieniając firmę przeszedłem na C# nie znając go za dobrze. Jak pisałeś x lat w czymś to masz doświadczenie a język to tylko narzędzie.

z C# mniejszy problem - używam go komercyjnie do jakichś tam desktopów czy mobile[aplikacja do komunikacji z systemem wbudowanym] - Tenonymous 2019-07-18 23:04

Pozostało 580 znaków

2019-07-19 07:33
0

Pamiętaj, że język to tylko narzędzie i w każdym możesz trafić do totalnego gównostacku. Ja np. w Go (który jest chyba młodym językiem), trafiłem do 2 zupełnie nowych projektów, które z teamem bootstrapowaliśmy. Po tygodniu już była sieka technologiczna i dług na miesiąc, i to w Go. Nie chcę mówić, co było po miesiącu. Pozdro korpoarchitekci od Javy z tego miejsca. W ogóle, z odpowiednim korpoarchitektem znienawidzisz każdy język, tylko daj mu szansę.

Więc nie przywiązuj się do języka, bo trafisz z jeszcze większego deszczu pod rynnę niż w antycznym C++ (bo w antycznym wiesz, że będzie antyk, a jak jest "cool" język i nowy to oczekuje się "cudów"). Jak chcesz robić coś "cool", to rób swój projekt po godzinach, pracując w jakimś ciepłym ***, gdzie jest miło i kasa spływa za samo tylko oddychanie. A jak chcesz więcej zarabiać, to język programowania nie ma żadnego znaczenia, tylko dochodzą inne skille i umiejętności.

edytowany 1x, ostatnio: TurkucPodjadek, 2019-07-19 07:34

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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