Co po Symfonii, [nauka c++]

0

Widziałem tu już pare tematów odnośnie nauki C++, ale znaczna część autorów tych tematów zadawała głównie pytanie „ Czy warto się uczyć C++” lub które książki wybrać na początek.
Ciekawe jest też to że dużo z tego typu tematów zamienia się w dyskusję który język jest lepszy bo oczywiście znajdzie się pare osób które zamiast coś polecić do nauki cpp przekonują żeby rozpocząć swoją przygodę z programowaniem od C# lub Javy
Do nauki C++ wybrałem Symfonie, kończę teraz drugi tom i zastanawiam się co wybrać dalej? Jeżeli chodzi o Grębosza to mam jeszcze w domu Pasję C++ , ale nie mam już ochoty czytać jego kolejnych historyjek i anegdot dodawanych do większości rozdziałów w celu łatwiejszego zrozumienia treści…
Jakie książki polecacie o podobnej tematyce? Szablony, pojemniki i obsługa sytuacji wyjątkowych?

I ogólnie jeżeli chodzi o naukę języka, jak Wy opanowywaliście ten język? Jakie projekty na początek? Po skończeniu symfonii mam plan napisać jakiś kalkulator i poznać jakieś GUI (Qt?)

Jestem ciekaw od czego zaczynaliście, chętnie o tym poczytam i może nauczę się czegoś na czyichś błędach, jakieś pomocne wskazówki lub przestrogi ? ;)

0

Ja mimo wszystko polecam Pasję C++. Mimo "historyjek" jest to solidna książka - ja właśnie z Symfonii i Pasji uczyłem się C++. Jeśli jednak forma bardzo ci przeszkadza, to mogę jeszcze polecić dość znany kurs C++ : http://xion.org.pl/productions/texts/coding/megatutorial/ .

Co do projektów: pisz to, o czym myślisz, że ci się uda (wiesz jak powinien wyglądać kod) - teoria(znajomość konstrukcji języka), a praktyka (umiejętność projektowania) to 2 różne sprawy.

Jeśli chodzi o GUI to akurat nie doradzę...

1
greggg napisał(a)

Ciekawe jest też to że dużo z tego typu tematów zamienia się w dyskusję który język jest lepszy bo oczywiście znajdzie się pare osób które zamiast coś polecić do nauki cpp przekonują żeby rozpocząć swoją przygodę z programowaniem od C# lub Javy

A może coś właśnie jest z tym C++, skoro każdy chce pisać w czymś wygodniejszym :D ? Dlatego takie wątki się zmieniają w takie dyskusje...

Tak poza tym... po co się uczysz programować? Już nawet nie konkretnego języka, tylko ogólnie programować... Uczysz się, bo chcesz napisać jakiś program, prawda?

Zamiast się koncentrować na nauce samego języka, chyba lepiej jest powoli dążyć do napisania konkretnej aplikacji? Jeśli chcesz w swojej aplikacji dorobić GUI, to nie musisz przerabiać całej dokumentacji Qt zanim zaczniesz tworzyć coś konkretnego... Po zaczynasz tworzyć i w razie potrzeby sprawdzasz w dokumentacji/googlach jak coś się robi. Szkoda czasu uczyć się całej biblioteki standardowej C++, jak w swoich projektach wykorzystujesz tylko kilka funkcji...

Jeśli chodzi o GUI to robiłem w wxPython i pyqt4, w C++ tylko w wx'ach. IMHO wx jest trochę łatwiejszy, aczkolwiek Qt jest bardziej rozbudowany i ma lepsze narzędzia pomocnicze.

1

Ja po symfonii od razu ruszyłem na Qt
problem w tym że z qt można źle zacząć i może się okazać, że jest ono trudne
polecam Ci zaznajomić się z dokumentacją i samym QtCreatorem, na pewno źle na tym nie wyjdziesz.
teraz, po ok. roku nauki, jestem w stanie napisać różnego rodzaju aplikacje bez większych problemów
aktualnie, gdy mam Qt już w miarę ogarnięte, zamierzam się zabrać za C# :)

2

moim zdaniem pierwszym krokiem po przeczytaniu Symfonii, powinno być nabycie trochę praktyki.
Najpierw trochę zadań ze SPOJa (i raczej tylko te łatwe i niektóre średnio trudne).
Drugim krokiem powinno być poczytanie od "coding conventions", czyli poczytać jak piszę się czytelne programy, warto przy tym popatrzyć na jakieś projekty profesjonalistów.
Może wyglądać to na stratę czasu, ale nauczenie się pisać ładnie, oszczędza potem dużo czasu.
Dopiero potem zacząć w jakiś trudniejszy projekt i poznawać jakiś framework np Qt.
Zależnie co będziesz chciał robić inna książka będzie pomocna.

0

Tak jak napisał MarekR22, po symfonii powinieneś być w stanie napisać jakiś mały projekcik. Dopiero jak będziesz w stanie samodzielnie napisać przyzwoitą porcję kodu zastanów się co wziąć na warsztat. "Pasja" to wg mnie dobra książka, dobrze wytłumaczone wyjątki i szablony, po jej lekturze łatwiej zrozumieć działanie stl'a. Miejscami pisana zbyt rozwlekle ale kto czytał symfonię powinien wiedzieć mniej więcej które fragmenty omijać ;)

0

Generalnie +1 do tego co rzecze Brat MarekR22,tyle że po zadaniach ze SPOJa poleciłbym "Programowanie Windows" Charlesa Petzolda i nauczenie się podstaw WinAPI.Dopiero po tym bierz się za framework Qt.

0

A czemu ma programować w Windows, jak równie dobrze może od razu pisać wieloplatformowe programy korzystając z Qt? WinAPI to inwestycja w wiedzę tylko pod jeden system, w dodatku po to powstają biblioteki takie jak Qt, czy Wx, żeby sobie ułatwić zadanie.

0

A potemu,że Petzold doskonale opisuje podstawy graficznego systemu operacyjnego,w tym filozofię wykorzystywania zmieniającego się obszaru roboczego okna,wyjaśnia mechanizm komunikatów i powiadamiania programu przez system oraz opisuje występujące na okienkach kontrolki.
To zagadnienia akurat są w pełni słuszne na windowsie i na linuksie czy Mac OSXie,i ułatwią mu potem wejście we framework Qt czy Wx.
Oczywiście,można być hardkorem i od razu wziąć takiego Qt na klatę,jednak podejrzewam,iż dla osoby która dopiero co przesiadła się z pisania pod konsolę to może być trochę za wiele.

0

To w takim razie może niech spróbuje z Delphi :D ? Łatwiejsze od WinAPI na pierwszy ogień i łatwy edytor okienek ze zdarzeniami.

0

Zważ Bracie Spine,że autor wątku pyta się o literaturę nie o środowiska/frameworki/inne języki programowania.A w takim wypadku jak sobie weźmie tą cegłę Charlesa i od początku gdzieś do połowy przeczyta to tam ma wszystko czarno na białym wytłumaczone,jak należy się brać za graficzny system operacyjny.I z tą wiedzą łatwiej mu będzie potem się zająć czymś przyjaźniejszym niż WinAPI.

0

@MasterBLB, jeżeli autor chce być programistą C++ i nie programować gier to bardziej przydałaby mu się wiedza o wywołaniach systemowych linuxa.

0

Dzięki za odpowiedzi, właśnie takie coś chciałem przeczytać :)

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