Jak sprawnie rozwinąć skrzydła w C++ ?

0

Hejka, piszę post ponieważ czuję, że utknąłem w martwym punkcie w swojej karierze "programisty". Otóż, przerobiłem wszystkie kursy Mirosława Zelenta na yt, umiem mniej więcej programować obiektowo i ogarniam te wszystkie filary programowania obiektowego, jednocześnie czytam też "Szkołę Programowania" Prata jednak czuje, że nie posuwam się do przodu. Dosyć dobrze znam składnię języka lecz gubię się w algorytmach ._. ostatnio próbowałem napisać grę kamień, papier, nożyce i zajęło mi to kilkaset linijek kodu, nawet nie do końca działało jak powinno. Gdzie, poszperałem w internetach i ktoś inny napisał to w może 20-30 linijkach.

Moglibyście polecić jakieś dobre materiały do zagłębienia się w programowanie w C++ ?Chodzi mi głównie o takie praktyczne rzeczy, z którymi mógłbym spotkać się w przyszłości pracując jako Junior, takie smaczki dla prawdziwych koneserów jak zamiana wartości dwóch zmiennych bez użycia trzeciej sobie daruję :)

Pozdrawiam i dzięki.

0

Koduj i szukaj rozwiązań w necie.
Skoro znasz składnię i jako tako obiektowy, powinieneś wiedzieć gdzie i jak szukać info u wujka googla.
https://4programmers.net/Forum/C_i_C++/140817-Materialy_dostepne_w_sieci

7
Tomek Bieniek napisał(a):

ostatnio próbowałem napisać grę kamień, papier, nożyce i zajęło mi to kilkaset linijek kodu, nawet nie do końca działało jak powinno. Gdzie, poszperałem w internetach i ktoś inny napisał to w może 20-30 linijkach.

I tak to właśnie działa. Piszesz gówniany projekt by przekonać się, że można to było zrobić dużo lepiej. Potem wykorzystujesz to doświadczenie w kolejnym projekcie, który nadal jest gówniany, ale już trochę mniej bo działa bez błędów. I tak dalej i tak dalej. W między czasie czytasz książki, ale to dzieje się w tle, nic nie zastąpi pisania kodu. Nie przeskoczysz od amatora do profesjonalisty czytając tylko książki.

3

@several: dokładnie! Miałem tak samo kiedy uczyłem się WPF z wykorzystaniem MVVM. Napisałem chyba z siedem wersji tej samej aplikacji i każda kolejna wersja to tylko GUI miała takie samo. Bebechy zawsze się różniły, ponieważ zawsze znalazłem coś co było warte przerobienia czy poprawy. A to dowiedziałem się, że jest coś takiego jak IoC i już cała apka do napisania od nowa etc... Pomimo tego, że projekt miałem już gotowy zaczynałem go od nowa i kod z naprawdę poplątanego nagle zaczął robić się ładny i czytelny.

Nie irytuj się też tym, że są błędy, a staraj się je naprawiać. Choćby oznaczało to zaoranie projektu i przepisanie od nowa to na etapie nauki można sobie na to pozwolić. Z własnego doświadczenia wiem, że to strasznie irytuje, zwłaszcza kiedy musisz zmienić prawie cały kod, z którego właśnie jesteś dumny. Nie ma co się zniechęcać tylko: push, push, push!

@Tomek Bieniek Może, skoro tyle już umiesz w zakresie, który opisałeś, zainteresuj się pisaniem jakichś programów z GUI. Bardzo fajnie sprawia się tutaj Qt. Polecam, choć na początek może się to wydawać trochę skomplikowane.

PS: Pamiętam swoją pierwszą aplikację w Qt, które rzeczywiście miała coś robić, a nie tylko "być" - aż się sam po latach dziwiłem, że to w ogóle działało :)
PS2: No i najważniejsze - nie ma czegoś takiego jak "Znam C++". Jest to problem NP-zupełny.

0

Jeżeli chodzi o algorytmy to myślę, że Polski spoj całkiem niezle je szlifuje. Zrób sobie 100 zadanek i powinieneś zobaczyć efekt. Będziesz mieć możliwość porównać swój kod z dawniej a teraz. Daj sobie na to rok. Nie szarżuj. 1 na 3 dni to i tak sporo. Rób tylko łatwe i najczęściej rozwiązane. Jak bedziesz mieć problem to zawsze możesz sprawdzić np. forum.

3
  1. Zrób jakiś projekt w czasie 2 tygodnie - nieważne jaki, aby działał i coś konkretnego robił.

  2. Wrzuć do oceny
    Oceny i recenzje
    http://codereview.stackexchange.com/

  3. Czekaj na feedback

  4. Nie broń się, tylko wyciągaj wnioski.
    Czyli nie "bo Pan Zelent tak robi" czy "To jest taki mój kod bo dopiero się uczę" tylko pytaj i googlaj jeśli nie rozumiesz recenzji.
    Tylko od Ciebie zależy czy się tylko obrazisz, czy będziesz potrafił wyciągnąć z recenzji jakieś dla siebie informacje.

1

Na temat kursów Zelenta już się się wypowiadałem negatywnie.

IMO najważniejsze rzeczy należy się uczyć:

  1. używanie debugger-a - nie zauważyłem by Zelent coś o tym mówił.
  2. używanie debugger-a (celowe powtórzenie)
  3. standardy kodowania - nazewnictwo formatowanie
  4. koncept interfaców, jak ich używać, a jak nie

Niestety łatwo trafić na kiepskie materiały a pod ręką nie mam nic godnego polecenia, poza tym co inni pisali wcześniej.
A C++ Builder to ślepa uliczka, od ponad 10 lat nie jest to produkt godny uwagi.

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