Czy jako 42 latek jest sens uczyć się C++ ?

Wątek przeniesiony 2024-03-05 21:00 z C/C++ przez Althorion.

1

Miałem podobny dylemat kilka lat temu, podobny wiek - postanowiłem wrócić do programowania po prawie ... 20 latach przerwy. Czyli trochę inna sytuacja niż kompletnie od zera, ale wyglądało to tak, że dość sporo musiałem sobie przypomnieć. Wymagało to dość sporego samozaparcia, no a że już jako nastolatek coś tam programowałem oraz jakiś ogólno-inżynierski background mam po technikum i studiach to jednak w tej mojej głowie coś zostało co znacznie ułatwiło ten proces. Poza tym ten "nowy c++" sporo jednak też ułatwił.
Pracuję teraz w linux embedded, ale też mnie zaczęła interesować zmiana kierunku. Sprawę komplikuje załamanie na rynku.

No i pytanie: to co dalej zamiast C++? C#? Python i AI odpada - za dużo tam matmy i raczej nie zrobię doktoratu w miesiąc :), chociaż hobbystycznie i dla poczucia minimalnego poziomu wiedzy coś tam sobie dłubię od czasu do czasu z jakiegoś tutka :).

2

@insztalator śmiem przypuszczać, że piszesz nieprawdę, bo linux embedded to chyba jedyna gałązka co najmniej ucierpiała, bo nie chorowała na bootcampy. Ba, patrząc po ofertach pracy to specjalista w tej dziedzinie jest teraz całkiem nieźle opłacany a co najważniejsze nie ma miliona CV na jedno miejsce w przeciwieństwie do przeciętnego webowca/javowca etc.
Gdybyś pracował w branży to bys wiedział.

No chyba, że jesteś następnym zasiedziałym co jest specjalistą na swoim stanowisku.

1

Ja wiem czy branża systemów embedded nie została porażona tworami typu bootcamp, szkoły programowania? Masz na pęczki kursów arduino, pseudo szkolenia weekendowe z danej rodziny procesorów, kiepskiej jakości literaturę. Tutaj rolę bootcampów odegrały różne wydawnictwa wciskające chłam na rynek.

Co do typa który przeszedł reaktywację. Oczywiście, że pisze opowieści smętnej treści. Wiedza ktora ma 20 lat to pruchno z ktorym nie da sie nic zrobic.

1

Biorąc pod uwagę brak doświadczenia z innymi językami programowania jak i samym konceptem rzucanie się na język z ogromną biblioteką standardową może być dosyć czasochłonnym zadaniem no i zniechęcającym. Jeśli chcesz zacząć czerpać z tego korzyści finansowe zająłbym się językiem który ma największe branie (np python, javascript, java, c#).

4

Ostatnio był pogrom w świecie C++, praktycznie wszystkie korpo typu Nokia, Ericsson, Motorola itp. robiły zwolnienia po 15 000 ludzi (nie mam info ile w Polsce), rzucono w ten sposób na rynek setki zdesperowanych osób szukających pracy, ogłoszenia o pracę są oblegane przez osoby z dużym skillem i doświadczeniem, ciężko się przebić, na pewno ciężej niż w innych językach

Co do śmierci C++, w świecie embedded imo szybko nie umrze, jest to bardzo konserwatywna branża gdzie zmiany postępują dekadami, w tej chwili C/C++ mają wsparcie dla egzotycznych architektur, biblioteki praktycznie na wszystko, dobrą integrację z innymi systemami, coś tam się kombinuje z Rustem, ale moim zdaniem zajmie to co najmniej dekadę, dwie zanim domyślny język będzie zastąpiony w tym świecie (szczególnie w Polsce, w USA może być inaczej, ale to znowu czas zanim zacznie spływać legacy)

Ale z drugiej strony embedded w Polsce nie będzie nigdy dobrym rynkiem pracy, to nie webdev, gdzie żeby przenieść produkcję wystarczy wynająć biuro i kupić 10 laptopów, tutaj często jest potrzebne drogie, wyspecjalizowane laboratorium, drogi sprzęt pomiarowy no i praktycznie najlepiej na miejscu mieć fabrykę produkującą sprzęt, stąd trend jest taki żeby nie przenosić embedded do Polski, a raczej już prędzej do Chin, gdzie na miejscu masz ludzi projektujących hardware i obok fabrykę produkującą płytki, wtedy koszt usuwania błędów jest rząd niższy, bo gdy "spalisz" płytkę przez błąd w sofcie to nie trzeba zamawiać innej z drugiego końca świata i czekać na nią dwa miesiące

1

tak to sie zaczynalo asm->c i asm->tp w latach 80

pozniej powstaly z kompilacji asm->c powstal system opracyjny windows i programy jak word czy excel oraz autocad ... itd

jezyki wysokiego poziomu to JavaScript jak dla mnie dla web bo wiekszosc programistow siedzi w web

1
wilkstepowy90 napisał(a):

Co do śmierci C++, w świecie embedded imo szybko nie umrze, jest to bardzo konserwatywna branża gdzie zmiany postępują dekadami, w tej chwili C/C++ mają wsparcie dla egzotycznych architektur, biblioteki praktycznie na wszystko, dobrą integrację z innymi systemami, coś tam się kombinuje z Rustem, ale moim zdaniem zajmie to co najmniej dekadę, dwie zanim domyślny język będzie zastąpiony w tym świecie (szczególnie w Polsce, w USA może być inaczej, ale to znowu czas zanim zacznie spływać legacy)

Rust to blockchain. Ma też swoje miejsce w infosecu. Vendorzy chmurowi również startują nowe projekty w tym języku.

Ale z drugiej strony embedded w Polsce nie będzie nigdy dobrym rynkiem pracy, to nie webdev, gdzie żeby przenieść produkcję wystarczy wynająć biuro i kupić 10 laptopów, tutaj często jest potrzebne drogie, wyspecjalizowane laboratorium, drogi sprzęt pomiarowy

Przez ostatnie 20 lat nie udało się rozkulać tego obszaru to i przez następne dekady raczej nikt tego nie dokona.

Mamy prymitywną gospodarkę, kapitał jest w rękach prostych ludzi. Tak to niestety wygląda.

1

Nie wypowiem sie na temat jezyka, ale wieku. Zostalo Ci 25-30 lat do emerytury wiec pewnie ze warto. Nie rozumiem tej zolci na polskich forach na temat wieku. Na zachodzie/USA w podobnych tematach wszystkich zachecaja i dzialaja budujaco, a w naszym piekielku tylko ciagna w dol. Przeciez 42 lata to nie 62 ze tylko pare lat do emerytury. Wybierz po prostu technologie/jezyk i ucz sie/ rob projekty, a predzej czy pozniej cos sie trafi. Ja np chce zostac pilotem komerycyjnym po zdaniu PPL, wg polskich forow tez jestem za stary, ale na szczescie nie mieszkam w tym piekielku i chodze na kurs z ludzmi grubo ponad 45 i kazdy lata. Nie rozumiem czemu kazdy jest taki negatywny...

1
solaris82 napisał(a):

Witam. Chciałem sie zapytać czy w takim wieku jak 42 lata jest sens uczyć się C++ ?

Bjarne zaczął się uczyć C++ mając circa 30 lat a to dlatego że robił to z pasji a nie dla pieniędzy. Nie wiedział czy przyniesie mu to pracę czy nie. Uczył się na własnych błędach z C. Jeśli chcesz to robić dla pieniędzy (czyli pracy) lepiej uczyć się podstaw czyli C.

Sam musisz zdecydować co dla ciebie jest teraz ważniejsze, pasja czy pieniądze?

2

Bjarne zaczął się uczyć C++ mając circa 30 lat

W Amerykańskich korpo nie ma ageismu + Bjarne nie jest jakimś ultra wymiataczem w c++, sam przyznał.

0

To jaki język byście polecali może java ?

2
solaris82 napisał(a):

To jaki język byście polecali może java ?

W Javalandzie jest przesyt. Zdecydowanie najgorszy wybór, jeśli chcesz znaleźć pracę.

2
solaris82 napisał(a):

To jaki język byście polecali może java ?

Ten pociąg już dawno odjechał.

1

@solaris82 Jako osoba, która dostała się do branży w wieku 28 lat, mogę powiedzieć tyle:
Nie ma znaczenia aż tak wiek, tylko to co realnie umiesz. Jeśli zaczniesz uczyć się C++ dzisiaj z darmowymi kursami, to nawet po roku nie będziesz miał na tyle wiedzy by zainteresować pracodawcę, chyba że robiłbyś to po 6 godzin dziennie i pisał własne projekty.
Jeśli zaprojektujesz własna aplikacje, z backend i front w QT i C++ to wtedy pare osób by się już odezwało. Alternatywami są jakieś backendowe ścieżki albo embedded - tu dochodzi ogromna znajomość elektroniki i tego jak działa procesor.

Podsumowując, zaczniesz dziś to w ciągu roku raczej nie ma szans, byś dostał pracę. Zajmij się tym hobbystycznie (IoT), wtedy jest łatwiej przeboleć jeśli jednak by nie poszło ;)

2
Dantey napisał(a):

@solaris82 Jako osoba, która dostała się do branży w wieku 28 lat, mogę powiedzieć tyle:
Nie ma znaczenia aż tak wiek, tylko to co realnie umiesz.

Niestety wiek ma znaczenie. Mając dwie dychy nie miałem zbyt wielu zobowiązań, mogłem sobie prowadzić eksperymenty, mogłem dotykać różnych zagadnień bo mózgownica była chłonna.

Mając prawie cztery dychy mam mimimum czasu dla siebie, sporo zobowiązań, chce żyć na jakimś poziomie i odpuszczam pewne tematy bo nie jestem w stanie wszystkigo ogarnąć.

Jeśli zaczniesz uczyć się C++ dzisiaj z darmowymi kursami, to nawet po roku nie będziesz miał na tyle wiedzy by zainteresować pracodawcę, chyba że robiłbyś to po 6 godzin dziennie i pisał własne projekty.

Jak nie masz mentora to pisanie projektów dla siebie to droga do nikąd.

Jeśli zaprojektujesz własna aplikacje, z backend i front w QT i C++ to wtedy pare osób by się już odezwało. Alternatywami są jakieś backendowe ścieżki albo embedded - tu dochodzi ogromna znajomość elektroniki i tego jak działa procesor.

Od wielu lat jestem krótkofalowcem. Mam kilku znajomych ktrórzy zajmują się zawodowo projektowaniem systemów embedded, układów radiowych, elementami wykonawczymi automatyki, serwisem różnych urządzeń. Współczesna elektronika to nie jest dziedzina którą nauczysz się przy okazji z byle literatur, kursów weekendowych, filmików z yt.

Układy FPGA, różne architektury procesorów, cyfrowe przetwarzanie sygnałów które jest wszędzie albo prawie wszędzie, różne algorytmy sterowania (pd, pi, pid), podstawy metrologii, podstawy telekomunikacji, protokoły komunikacyjne których jest sporo (can, 1wire, i2c, lora), zjawiska falowe i tona innych rzeczy. Jest też sporo modelowania na matlabie jak robisz nietrywialne tematy.

Pomijam fakt, że podstawowa aparatura pomiarowa (oscyloskop, analizator widma, generator sygnałów, multimetry, zasilacze, analizator stanów logicznych) czy sprzęt (lutownica, gorące powietrze, stanowisko do bga, mikroskop) to wydatek rzędu kilkudziesięciu tysięcy złotych na start.

3
solaris82 napisał(a):

To jaki język byście polecali może java ?

SQL. Przyda się w zasadzie wszędzie. Ta Java to nie jest wcale taka zła na początek, trudniej dostać pracę w JavaScript niż e Javie.
Możesz próować jakieś niszowe rzeczy typu COBOL / ABAP. Ogłoszeń mało ale konkurencja też niska.

Pytanie brzmi czy Ty chcesz koniecznie dostać się do IT, żeby zarabiać na życie?
Czy może chcesz zwyczajnie sobie programować? Ale podejrzewam, że to pierwsze, ponieważ gdybyś chciał programować to byś nie pytał o to jaki język wybrać tylko byś wygooglował, do czego jest najczęściej używany wybrany język programowania.

A jak chcesz się dostać byle gdzie do IT to spróbuj na jakiś support, a najlepiej na byle jakie stanowisko w jakimś dużym korpo-IT jak np. Capgemini. Będąc już w dużej firmie popracujesz rok na guano-stanowisku i potem jak się poduczysz możesz przejść na stanowisko bardziej techniczne, w strukturach tej samej firmy. Tak na pewno będzie łatwiej.

3
tefu napisał(a):

A jak chcesz się dostać byle gdzie do IT to spróbuj na jakiś support, a najlepiej na byle jakie stanowisko w jakimś dużym korpo-IT jak np. Capgemini

Z teco co się orientuję to Capgemini wymaga nie tyle co skilla co minimum wykształcenia wyższego. Inni integratorzy IT typu T-Systems mają podobne wymagania. Sii które ma rozbudowany dział opsów wymaga skończonych studiów. Firmy będące we władaniu krajowych osób fizycznych jak Trecom też będą wymagać Cisco CCNA, certów od VMware.

Z resztą angielski też trzeba znać i to na sensownym poziomie bo będziesz pracować z ludźmi z danego regionu, tworzyć tickety które często obsługują ludzie z innych części świata, studiować skrpyty z helpem które powstały na przykład w Indiach.

Jak ktoś nie ma studiów to zostaje jakiś call center, fabryczka na peryferiach, firma pana gienka który ma kilku znajomych w korpo którzy za ego pomocą kupują pudełka od Cisco, Della, Aruby czy innych vendorów.

Można pomyśleć o byciu asystentem handlowca w jakiejś firmie handlujacej sprzętem IT. Tam trzeba pisać tony ofert, dobierać licencje, walczyć o rabaty, szykować prezki. Dobra opcja aby sie otrzaskać z nomenklaturą, poznać technologie. Wymagania minimalne.

Jak ktoś chce pracować w supporcie to zacząłbym od poznania windowsa od strony admina, podstaw powershella, ogarnięcia podstaw linuxa, pisania prostych skryptów bashowych, podstaw networkingu, podotykania sprzętu sieciowego cisco (switche, routery, kontrolery wifi, firewalle, telefonia), minimalnego pojma o bazach danych.

W supporie masz też sporą konkurencję. Kolejka chętnych aby wejść do IT jest długa. Prawda jest taka, że firmy prędzej dadzą szansę młodemu który coś wie niż staremu byczkowi który naczytał się historii z gazet.

2
mrxormul napisał(a):

Niestety wiek ma znaczenie. Mając dwie dychy nie miałem zbyt wielu zobowiązań, mogłem sobie prowadzić eksperymenty, mogłem dotykać różnych zagadnień bo mózgownica była chłonna.

Mając prawie cztery dychy mam mimimum czasu dla siebie, sporo zobowiązań, chce żyć na jakimś poziomie i odpuszczam pewne tematy bo nie jestem w stanie wszystkigo ogarnąć.

Tak, jest dokładnie tak jak mówisz, ale właśnie dlatego napisałem, że jeśli coś umie to pracodawca nie będzie, aż tak mocno patrzył na wiek, co nie znaczy, że wcale nie będzie. Zwróci uwagę na to na pewno "Czy w tym wieku dalej pan chce sie uczyć?"
A fakt, że w tym wieku trudno zacząć bez fundamentów, mentora i ogromnego zaparcia to już zupełnie inny temat na który trzeba sobie samemu odpowiedzieć, chociaż to co napisałeś to w 99% przypadków pewnik.

mrxormul napisał(a):

Współczesna elektronika to nie jest dziedzina którą nauczysz się przy okazji z byle literatur, kursów weekendowych, filmików z yt.

Byłem na początku swojej przygody parę lat temu na programistę embedded, wtedy odpadłem, ale z perspektywy czasu uważam, że pytania nie były trudne. Wtedy chodziło o programowanie STM32, pytania podstawowe o rodzaje pamięci, protokoły komunikacji jakieś proste haczyki o undefined behavior. Jest to do ogarnięcia z dostępnej literatury ale też wymaga sporo czasu, którego w tym wieku jest mało. Na YT nawet wczoraj wpadł Live "Jak zacząć pracę w embedded w 2024" od osoby, która według mnie trochę branże już zna bo go obserwuję 😉

2
Dantey napisał(a):

Byłem na początku swojej przygody parę lat temu na programistę embedded, wtedy odpadłem, ale z perspektywy czasu uważam, że pytania nie były trudne. Wtedy chodziło o programowanie STM32, pytania podstawowe o rodzaje pamięci, protokoły komunikacji jakieś proste haczyki o undefined behavior. Jest to do ogarnięcia z dostępnej literatury ale też wymaga sporo czasu, którego w tym wieku jest mało. Na YT nawet wczoraj wpadł Live "Jak zacząć pracę w embedded w 2024" od osoby, która według mnie trochę branże już zna bo go obserwuję 😉

Parę lat temu to parę lat temu. Dziś to dziś. Czasy hossy w szeroko pojętym IT przeminęły z wiatrem i raczej mało realne, że jak rynek się odbije to będzie to samo.

Jak patrzę na rynek systemów embedded to przynajmniej w naszym regionie dość mocno się skompresował. Branża automotiv się zwija. Sektor telco jest mocno uzależniony od operatorów, a ci też są często dofinanswani przez państwa które mają niestety inne priorytety. Górnictwo też ma swoje najlepsze lata za sobą. Producenci różnych sprzętów raczej skupiają się na przetrwaniu.

Co do outsourcingu z zakresu systemów embedded to ja nie widziałem aby ten był kiedykolwiek u nas mocno rozwinięty. Główny powoód to niechęć firm do transferu wiedzy do innych organizacji, kosztowna aparatura, mała ilość specjalistów którzy ogarniają wiele obszarów.

Ogłoszeń o pracę jest jak na lekarstwo. Chętnych szukających roboty od miesięcy których zwolniła Nokia, Ericsson, Intel, Dell, a teraz i Aptive mamy na pęczki.

Poza tym dziś jeśli miałbym zatrudniać ludzi którzy chcą wejść w temat to wolę kogoś po technikum czy studenta politechniki niż desperata którego jedyną motywacją jest kasa czy chęć poprawy marnego życiorysu.

2
solaris82 napisał(a):

To jaki język byście polecali może java ?

Żaden. A for fun to cokolwiek.

1
Czitels napisał(a):

Żaden. A for fun to cokolwiek.

Ja w sumie z elektroniką mam kontakt od ogólniaka. Na studiach miałem analogową, cyfrówkę, przetwarzanie sygnałów, podstawy telekomunikacji. Po drodze zrobiłem papiery na krótkofalowca. Coś tam sobie dłubię po godzinach. Natomiast do łba by mi nie przyszło aby zajmować się tym zawodowo.

1
mrxormul napisał(a):
Czitels napisał(a):

Żaden. A for fun to cokolwiek.

Ja w sumie z elektroniką mam kontakt od ogólniaka. Na studiach miałem analogową, cyfrówkę, przetwarzanie sygnałów, podstawy telekomunikacji. Po drodze zrobiłem papiery na krótkofalowca. Coś tam sobie dłubię po godzinach. Natomiast do łba by mi nie przyszło aby zajmować się tym zawodowo.

To potrafi być ciekawe, bo imo najciekawsze projekty są właśnie w embedded szeroko rozumianym. Samemu tez nie zrobisz niczego większego niestety. Sprzęt kosztuje.

4

Już zostało ustalone, że C++ nie jest polecane i powody zostały wymienione, zgadzam się z tym.

Jeśli chodzi o jakiś inny język, to rzeczywiście nie stawiałbym wszystkiego na tą kartę, bo z pracą może być ciężko, ale myślę, że nie szkodzi spróbować. Programowanie tak czy siak się może przydać, zawsze jest to jakieś poszerzenie horyzontów.

Celowałbym w język, który nie jest najpopularniejszy na bootcampach i działka, w której jest używany jest chociaż minimalnie interesująca dla OP (im bardziej tym lepiej oczywiście), żeby nie uczyć się tego za karę albo tylko do pracy.

Przykład: znam osobę, która zaczęła uczyć się swifta dlatego, bo chciała robić apki na iOSa. Niby niezbyt popularne, ale za to względnie mała konkurencja. Pot, łzy i krew się lały, ale udało się. Mamy nowego programistę w tzw. piekle IT. Oczywiście Twoja historia może być inna i nikt nie obieca, że się uda, ale warto próbować wg mnie.

0

A co z gami przecież C++ to głownie gry. Czy jest szansa żeby się dostać na do takiej branży jak gry ?

2
solaris82 napisał(a):

A co z gami przecież C++ to głownie gry. Czy jest szansa żeby się dostać na do takiej branży jak gry ?

Nie wydaje mi się żeby to było głównie gry. Raczej głównie embedded.
Jasne, zrób swoją grę i już jesteś w branży. Masz też jakąś tam szansę że ktoś cię zatrudni do większej produkcji, ale największe szanse masz że trafiłbyś do scamowego projektu typu kopiuj wklej "online casino" lub candy crash z mikropłatnościami, a tych gier się nie pisze w c++ i wstyd się nawet przyznać że się nad tym pracuje.
Natomiast: Branża gier zaczyna się sypać. Powody zwolnień są jeszcze gorsze niż w IT

2
solaris82 napisał(a):

A co z gami przecież C++ to głownie gry. Czy jest szansa żeby się dostać na do takiej branży jak gry ?

nie, gamedev to ostatnio rzeź, może nawet większa niż w innych działach IT. Poza tym dziś w grach coraz modniejszy staje się C# a większość kasy jest z gier mobilnych gdzie jest używany najczęściej Kotlin i Java w przypadku Androida i Swift w przypadku Apple choć oczywiście teoretycznie można pisać gry w czym się chce.

1

Poza tym, widzę że większość miejscowych expertów poleca embedded ale jesteście w błędzie - embedded to C a nie C++

2
aoeuidhtn napisał(a):

Poza tym, widzę że większość miejscowych expertów poleca embedded ale jesteście w błędzie - embedded to C a nie C++

Nie zgodzę się. C to sterowniki i bardzo niskopoziomowe programowanie. Czasem sprzęt jest na tyle rozbudowany, że potrzebujesz nie tylko niskopoziomowych rozwiązań o baaaardzo wysokiej wydajności, ale również podejścia OOP.
Tego Ci żaden język nie dostarczy (może Rust obecnie). Tylko c++.

2

Solaris82 - zadałeś pytanie, które zostało przez tubylców łyknięte jak pelikan. Sam nic od siebie nie skrobniesz co świadczy jedynie o tym, że szybko porzucisz pomysł z nauką programowania. W Twoim wieku żeby uczyć się czegoś nowego to trzeba mieć oprócz zapału i entuzjazmu - czas. Kolejna sprawa - jak 42 latek wbija na forum z takim pytaniem to znaczy że nie potrafi googlować. Więc skoro zarejestrowałeś się 12 dni temu żeby zadać takie pytanie to albo nęcisz albo pod murem stoisz na zakręcie życiowym. A jak nie (bo to też możliwe) - to kup sobie książkę z ćwiczeniami od ZERA - przerób całą - jak Ci się nie znudzi to wtedy wbijaj na forum i zadawaj pytania - o półrocznej nauce od zera do zatrudnienia zapomnij.

2

W życiu jest czas na podjęcie pewnych decyzji. W wieku czterech dych z groszem to pora na doskonalenie tego co się zrobiło, czerpanie zysków z dotychczasowych osiągnięć, poświęcanie czasu na młode pokolenie, znalezienie sobie hobby które pomaga zapomnieć o realiach dnia codziennego, a nie otwieranie nowych frontów.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.