• 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

0 głosów
211 wizyt
pytanie zadane 3 sierpnia 2018 w C i C++ przez multim Obywatel (1,510 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

+2 głosów
odpowiedź 5 sierpnia 2018 przez RafalS VIP (112,500 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 Nałogowiec (49,800 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 Gaduła (4,660 p.)
Poważnie jest takie zapotrzebowanie ?
komentarz 3 sierpnia 2018 przez profesorek96 Nałogowiec (49,800 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 Maniak (66,620 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 (112,500 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 Maniak (66,620 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

0 głosów
0 odpowiedzi 78 wizyt
0 głosów
1 odpowiedź 71 wizyt
Porady nie od parady
Zadając pytanie postaraj się o odpowiedni tytuł, kategorię oraz tagi.Tagi

64,866 zapytań

111,327 odpowiedzi

234,208 komentarzy

46,729 pasjonatów

Przeglądających: 149
Pasjonatów: 2 Gości: 147

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...