• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Powrót do C++ z Javy

VPS Starter Arubacloud
0 głosów
528 wizyt
pytanie zadane 3 sierpnia 2018 w C i C++ przez multim Obywatel (1,830 p.)
Cześć, do tej pory całe moje doświadczenie z C/C++ to kurs z cpp0x,pl i smutne podstawy na studiach (łącznie z WinSock i WinApi ;) ).
Ostatnio programowałem więcej w Javie. Dlatego chciałbym się was poradzić, które biblioteki i praktyki programowania OOP w C++ powinienem sobie przyswoić, żeby nie był to dla mnie skok w zbyt głęboką wodę. Czy ktoś może mi doradzić jakie kursy/tutariale/artykuły przejrzeć i co poczytać?

3 odpowiedzi

+3 głosów
odpowiedź 5 sierpnia 2018 przez RafalS VIP (122,820 p.)
wybrane 5 sierpnia 2018 przez multim
 
Najlepsza

Sporo już było powiedziane, ale dodam coś jeszcze od siebie.

Podstawa to pisanie kodu w stylu C++ a nie C. Obiektowo i z wykorzystaniem nowych standardów. Im nowszy standard tym lepiej. Minimum C++11.

Co mam na myśli:

  • STL: naucz się korzystać z kontenerów i iteratorów; które kontenery do czego się nadają; na jakich strukturach są zbudowane i jakie złożoności z tego wynikają; jest sporo fajnych artykułów z benchmarkami potwierdzającymi te "dziwne" O(n^2)
  • nagłówek <algorithm>; naucz się stosować takie konstrukcje:
    vec.erase(std::remove(vec.begin(), vec.end(), number_in), vec.end());
    zamiast pisać wszystko pętlami; 
  • wyrażenia lambda, np 
    int count = std::count_if(v.begin(), v.end(), [](int i){return i % 3 == 0;});
  • smart pointery: zapoznaj się z nagłówkiem <memory>, unique_ptr, shared_ptr; poczytaj czym są i po co są, ale naucz się też z nich korzystać, bo to wyjdzie jak nie będziesz umiał przesłać unique_ptr'a do funkcji
  • i tutaj wchodzi semantyka przenoszenia, referencje do rvalue, std::move; żeby Ci się słabo nie robiło jak zobaczysz dwa ampersandy gdzieś w dokumentacji :D
  • poczytaj jakieś guideline'sy, np od googla, nie musisz się do nich stosować, ale wg mnie jest to dosyć dobre źródło wiedzy

To tak na szybko z ważnych części języka. Jak się tego nauczyć? Oczywiście praktyka czyni mistrza. Ale polecam też wertować troche dokumentacje. Bardzo dużo można się tam nauczyć. Czytaj artykuły i ciekawe pytania odnośnie niejasnych części języka na stackoverflow (szczerze mówiąc najwięcej się z nich nauczyłem :D).

Z bibliotek zewnętrznych polecam:

  • boost - zbiór gotowych narzędzi ogólnego zastosowania; dobrze wiedzieć co tam już jest napisane, żeby nie odkrywać koła na nowo
  • jakiś framework do pisania testów, osobiście korzystam z gtest i gmock, całkiem przyjemnie się w tym pisze
  • GSL

O projektowaniu obiektowym nie wspominam, bo wracasz z Javy, która jest bardziej zorientowana obiektowo

+3 głosów
odpowiedź 3 sierpnia 2018 przez profesorek96 Szeryf (91,420 p.)
Jeśli chodzi o biblioteki to must have to boost, STL i Qt. Jak to poznasz to spokojnie o pracę. Co do książek i tutoriale to polecam książkę:

https://ksiegarnia.pwn.pl/Czysty-kod-w-C-17,757527299,p.html
komentarz 3 sierpnia 2018 przez kevin Mądrala (5,010 p.)
Poważnie jest takie zapotrzebowanie ?
komentarz 3 sierpnia 2018 przez profesorek96 Szeryf (91,420 p.)
Nie, takiego zapotrzebowania jak w javie to chyba w żadnym języku nie ma. Co do tego to chciałem powiedzieć co trzeba umieć by móc starać się o pracę
komentarz 3 sierpnia 2018 przez Wiciorny Ekspert (269,120 p.)

@kevin, nie jest, ale ... jest tez mało ludzi co to ogarnia; stąd jeśli pojawia się oferta nie masz dużej konkurencji to raz, zazwyczaj idą na rekę do PŁACY/ WARUNKÓW  bo im na Tobie zależy gdyż wiedza, że speców np jest mniej i nie mają w czym wybierać 

 

komentarz 5 sierpnia 2018 przez RafalS VIP (122,820 p.)
Wg mnie zapotrzebowanie jest. Na wielu polach C/C++ dalej trzyma się bardzo dobrze. Do tego dochodzi jeszcze utrzymywanie kodu już napisanego w C++, a jest go sporo.

Patrząc po dużych korporacjach w Krakowie: Ericsson, Nokia, Aptiv, Sabre, Motorola, Comarch, ABB... pracy w C++ jest bardzo dużo i wiele z tych korporacji stawia w dużej mierze na zatrudnianie studentów na staże / stanowiska juniorskie.

Można też sprawdzić prostą statystyke na pracuj.pl. W Krakowie jest 100 ofert na C++ i 168 na Jave.
+1 głos
odpowiedź 3 sierpnia 2018 przez Wiciorny Ekspert (269,120 p.)
edycja 3 sierpnia 2018 przez Patrycjerz

Jedyne co mi przychodzi do głowy to że OGÓLNE WZORCE PROJEKTOWE OPP będą działały tak samo.

Dodatkowo; SOLID -> też jeśli chodzi o aspekt OPP

Z bibliotek mi przcychodzi : 

https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp3_OOP.html 

QT oraz STL i może Boost

Podobne pytania

+1 głos
4 odpowiedzi 627 wizyt
pytanie zadane 9 sierpnia 2020 w Java przez J0ker Pasjonat (15,400 p.)
0 głosów
3 odpowiedzi 721 wizyt
pytanie zadane 24 sierpnia 2015 w PHP przez KamilloPL Gaduła (3,470 p.)
+1 głos
1 odpowiedź 325 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...