Najlepsza książka do C++ po polsku, dostępna za darmo w PDFie

0

Witam,

Mam 14 lat i chciałbym rozpocząć przygodę z programowaniem. W sumie to obejrzałem kurs Mirosława Zelenta na temat C++, jednak przydałoby mi się więcej tej wiedzy. Czy możecie podać najlepsze książki o C++, za darmo oraz po polsku, dostępne w jakimś pdfie?
Mam Symfonie C++ Standard tom 1 i 2, ale spotkałem się z wieloma negatywnymi opiniami na jej temat, dotyczących błędów oraz złych nawyków.
Chciałbym przede wszystkim nauczyć się tego programowania, aby w przyszłości przesiąść się na inny język lub pisać jakieś gry albo inne aplikacje w C++.

2

Jak masz symfonię fizycznie to świetnie, nauczysz się z niej podstaw, a o to przecież ci chodzi. Legalnie po polsku raczej nic lepszego nie znajdziesz.

Ale musisz wiedzieć, że bez angielskiego się nie obejdziesz i musisz go dobrze znać (tzn. na poziomie czytania literatury technicznej), bo do wielu rzeczy, z którymi się spotkasz, po prostu nie ma materiałów po polsku, a jeśli są to albo szczątkowe, albo stare.

6

Nie ma najlepszej książki do C++ po polsku, wszystkie są nieaktualne i uczą pisania w C z klasami zdaje się. Nie ucz się w ogóle C++. Po co Ci to. To chyba jeden z najbardziej skomplikowanych języków programowania jaki istnieje.

Zacznij od Pythona na przykład.

0

A po opanowaniu Symfonii będę w stanie napisać jakiś użyteczny program? Czy symfonia to sama teoria?

0

Nie. Symfonia nie ma wiele wspólnego z nowoczesnym C++. Nauczysz się samych starych rzeczy. Nie ma raczej książki, która tego uczy.

Mówię całkiem poważnie. Olej C++. Najpierw naucz się programować. Potem nauczenie się innego języka będzie prostsze. Jeżeli od początku będziesz zawalony informacjami na temat dziwactw C++ to stracisz z oczu cel - nauczenie się programowania.

Pamiętaj, że język to tylko narzędzie. Pewnie, że wymusza pewne sposoby programowania. Ale sama jego istota nie jest zależna od języka i to tego musisz się nauczyć.

0

A co, gdybym jednak zaczął się uczyć C++ z symfonii?

0

Nic. Nauczyłbyś się C++ (to prawda, Symfonia jest stara, ale podstawy języka się właściwie nie zmieniają) ;)

4

C++ to dobry język na początek, sam się go uczyłem i nie żałuje pomimo, że teraz siedzę głownie w php i rzadziej w C#. Symfonia zależy które wydanie, z tego co piszesz masz jakieś wydanie pobrane z neta, osobiście polecam http://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm ja mam wcześniejsze wydanie ale najnowsze ma sporo elementów z cpp11. 100zł to nie dużo jak na książkę mającą 1300 stron i bardzo przyjemnie uczącą. Mnie np syfonia zraziła po kilku rozdziałach przerwałem i zacząłem szukać czegoś lepszego.

0

Mam wydanie Standard, z tego co słyszałem to jest to aktualniejsze.
Więc, opłaca się z niego uczyć?

2

Chopie, bier i ucz się. Masz 14 lat, więc nie ma presji, że musisz na już. Ucz się, szukaj. W Necie jest multum kursów za darmo. Jak masz Symfonię to czytaj i przerabiaj. Mnie symfonia drażniła, była pisana koszmarnym językiem. Ale może właśnie do 14latka lepiej będzie pasowała niż do gościa w średnim wieku.

Nie słuchaj narzekających na C++, bo to takie święte wojny jak za moich czasów były czy Amiga czy PC czy może C64. I co z nich wynikało? Nic. C64 i Amiga już zdechły, choć były takie lepsze od PC :)

Python jest koszmarnym językiem na start. Ilekroć go widzę, mam dreszcze z przerażenia. Pewnie ma swoje możliwości, pewnie musiałbym dorosnąć, ale najwyżej kiedyś się nauczysz Pythona, a znajomość C++ przełoży się na inne języki też.

Nie ma się co zastanawiać czy rower, na którym jeździsz jest super czy nie, ważne, żeby zacząć jeździć. A jak już pojedziesz, to ocenisz czy wystarcza ten czy szukasz lepszego modelu.

Jeżeli chodzi o książki, to każdemu pasuje coś innego. Kolega mi polecił w noworocznej promocji Python dla każdego Dawsona... A ja bym tu sparafrazował Dodę: Nie wiem co ten gość ćpał, jak to pisał, ale musiało być mocne zioło. Dla mnie wywalony pieniądz.

Dla odmiany Stephen Prata C++ Szkoła programowania bardzo fajnie mi się czyta. Choć z drugiej strony cegła za 80zł i bardzo o podstawach podstaw. Pięknie wyjaśnione i z przykładami coś, ale tak naprawdę faktycznie same podstawy i mogło być o 2/3 mniejsze.

Ale jak masz wolne 80zł, to kup Pratę i jedź z tego, ale rozwiązując zadania. To o tyle fajna książka, że ma zadania do rozdziałów i warto je robić, jak ktoś się uczy.

Ale jak masz 14 lat i 80zł nie jest twoją mocną stroną, to leć tego Symfonika i już. C++ na pewno ci w życiu nie zaszkodzi. Nawet jak kiedyś przejdziesz na ciemną stronę mocy, znaczy się ... pythona.

A jeszcze tak o przyszłości języków powiem: Jeżeli ktoś uważa, że ogranicza go to, że nauczył się kiedyś C++ a nie Pythona albo Javy albo C#, to znaczy że to tyłek zza krzaka, a nie programista, bo prawdziwy programista, jak zna C++ a nie zna Pythona a musi poznać Pythona bo cośtam, to się po prostu douczy. A jak ktoś twierdzi, że umie coś napisać w C++ a nie umie się douczyć Pythona, to bredzi... On w C++ też nie umie.

6

W Necie jest multum kursów za darmo.

Tak, większość się do niczego nie nadaje, przynajmniej tych po polsku.

Nie słuchaj narzekających na C++, bo to takie święte wojny

To nie jest żadna wojna. C++ jest obiektywnie jednym z najtrudniejszych języków programowania i bez wątpienia jednym z najbardziej poronionych. Nie ma absolutnie żadnego powodu, dla którego osoba początkująca miałaby zaczynać od tego języka (poza tym, że C++ ma rzeszę 15-letnich fanboi, którzy chcą być gejmdewami, więc o nim głośno), bo jest masa lepszych języków do tego celu.

Python jest koszmarnym językiem na start

WTF?! Składni pythona można się w tydzień czy dwa nauczyć i zająć się tym co ważne - programowaniem, a nie przyswajaniem kolejnej porcji dziwnych ficzerów jak w C++, których na dobrą sprawę nikt nie rozumie. W pythonie można po prostu zacząć tworzyć i mieć z tego jakiś efekt, bez męczenia się z poronioną składnią czy poronionymi kruczkami w standardzie.

a znajomość C++ przełoży się na inne języki też.

90% rzeczy z C++ nijak się nie przełoży na inne języki. Pozostałe 10% jest dostępne w każdym jednym imperatywnym języku.

Jeżeli ktoś uważa, że ogranicza go to, że nauczył się kiedyś C++

Kto tak uważa i skąd ten pomysł w ogóle wytrzasnąłeś?

Anyway... dziwnie wygląda obalanie postów @Endrju odnośnie C++, który zapewne kawał życia spędził pracując w tym języku, przez kogoś kto się niedawno pytał co to jest referencja, ale co ja tam wiem.

2
n0name_l napisał(a):

W Necie jest multum kursów za darmo.

Tak, większość się do niczego nie nadaje, przynajmniej tych po polsku.

Taaak, jaaasne.

n0name_l napisał(a):

Nie słuchaj narzekających na C++, bo to takie święte wojny

To nie jest żadna wojna. C++ jest obiektywnie jednym z najtrudniejszych języków programowania i bez wątpienia jednym z najbardziej poronionych.

Oczywiście zapomniałeś dodać, że Twoim Skromnym Zdaniem. Za czasów mojej młodości były święte wojny o amidze i pececie, potem święte wojny o windowsie i linuksie itp. Każdy ma swoje ulubione.

n0name_l napisał(a):

Python jest koszmarnym językiem na start

WTF?! Składni pythona można się w tydzień czy dwa nauczyć

A C++ w 2 dni ;-P

Generalnie argumentacja jest bez sensu, bo każdy lubi swoje i jeżeli gość chce się uczyć C++, to wciskanie mu Pythona jest bez sensu.

n0name_l napisał(a):

i zająć się tym co ważne - programowaniem, a nie przyswajaniem kolejnej porcji dziwnych ficzerów jak w C++, których na dobrą sprawę nikt nie rozumie.

Póki sam pisze, to nie musi ich używać, no nie?

n0name_l napisał(a):

W pythonie można po prostu zacząć tworzyć i mieć z tego jakiś efekt, bez męczenia się z poronioną składnią czy poronionymi kruczkami w standardzie.

O ile się najpierw nauczy dzikiej składni Pythona, a po drodze nie zabije się o bezsensowny sposób blokowania instrukcji wcięciami.

Jeżeli ktoś uważa, że ogranicza go to, że nauczył się kiedyś C++

Kto tak uważa i skąd ten pomysł w ogóle wytrzasnąłeś?

Skoro mu to nie zaszkodzi, to niech chłop się uczy C++, a do Pythona sobie sięgnie potem.

Anyway... dziwnie wygląda obalanie postów @Endrju odnośnie C++, który zapewne kawał życia spędził pracując w tym języku, przez kogoś kto się niedawno pytał co to jest referencja, ale co ja tam wiem.

No właśnie wygląda, że niewiele wiesz. Głównie z tego powodu, że lubisz chamsko atakować rozmówcę, a to już oznacza, że masz -1000 do mocy wiedzy i dla mnie jesteś po prostu nikim.

2

@heillos

zacznij pracowac, wtedy sie wypowiadaj. Opowiadasz bajki o smokach

@n0name_l i @Endrju maja 100% racje

C++ na poczatek jest jednym z glupszych decyzji ever*

Python na start jest swietny.
Jezeli nie python bo sie cos w nim nie podoba to wtedy c#

*chyba ze uczy Cie ktos kto siedzial w tym jezyku juz 10 lat i wie co jest aktualnego wtedy to ma sens

0
fasadin napisał(a):

@heillos

@n0name_l i @Endrju maja 100% racje

C++ na poczatek jest jednym z glupszych decyzji ever*

A ja jestem zdania, że ma tyle samo zalet co wad. I to raczej zależy od konkretnego człowieka. Programować można uczyć się w dowolnym języku. C++ - faktycznie - jest trudny, jeśli chcemy wykorzystać w pełni to co oferuje, ma jednak pewną zaletę - można w nim programować zarówno obiektowo, jak i nieobiektowo. Zmusza do tego, aby nauczyć się zarządzać pamięcią, ale można programować tez tak, aby aż tak bardzo to nie miało znaczenia. Więc jak napisałem, dla jednej osoby może być to dobre, dla drugiej niekoniecznie. Sądzę, że Symfonia może być dobra na początek, z uwzględnieniem tego, że należy pamiętać, że tą wiedzę należy później uzupełnić. W sumie lata temu uczyłem się z tej książki (zanim jeszcze powstał standard c++98, więc było to jedno z pierwszych wydań książki) i mogę powiedzieć, że dla całkowicie początkujących nie jest to zła książka - pierwszy tom można było przeczytać nie dotykając klawiatury ze zrozumieniem. Później zostają testy.

Python na start jest swietny.

Dla mnie Python przez to, że formatując kod - zmienia się jego działanie, co jest dla mnie wystarczające, by odradzać ten język, ale to juz kwestia indywidualna.

Jezeli nie python bo sie cos w nim nie podoba to wtedy c#

Bardzo dobry język (trochę ogranicza systemy, na które można programować), ale faktycznie - język ciekawie zaprojektowany.

5

Dla mnie Python przez to, że formatując kod - zmienia się jego działanie, co jest dla mnie wystarczające, by odradzać ten język, ale to juz kwestia indywidualna.

Genialne dla początkujących - zakaz robienia śmietnika :P

4
kaczus napisał(a):

Dla mnie Python przez to, że formatując kod - zmienia się jego działanie, co jest dla mnie wystarczające, by odradzać ten język, ale to juz kwestia indywidualna.

Widziałeś 1/3 tematów w newbie? Oni zmieniają działanie formatując kod nawet w językach z klamrami.

0

Nikt nie wspomniał o Ruby :(.

2

każdy, kto nie jest "ślizgaczem" w branży dobrze wie, że c++ to jest dobra kasa, dużo wyższa niż w innych językach,

to, że średnie niektórych języków są wyższe nie oznacza wcale, że topowi programiści np pythona są lepiej opłacani od tych z cpp (bo nie są)

ja zacząłem od c++, ale tylko dlatego, że miałem i mam mocnego mentora inaczej byłoby ciężko

nie żałuję decyzji, na brak pracy raczej już nigdy nie będę narzekał, a jak trzeba będzie przejść na inny język to nie ma problemu, bo programowanie ma być zabawą a nie pracą przymusową, bo płacą powyżej średniej krajowej

a co do tematu:

c++ na start? wiadomo, ale musisz być zdolny i mieć chęci, bo to jest kobyła, i wymaga dużo więcej pracy niż nauka np pythona

książka? najlepiej coś po angielsku, ale chyba jest Prat, Symfonia jest już za stara, gorąco nie polecam (pamiętam ten kolosalny rozdział o wskaźnikach, i jak ciężko było je zrozumieć)

pozdrawiam wszystkich, którzy wylali swoje łzy w temacie (brakuje tutaj tylko opinii najwiekszego "eksperta" na forum, który jest obrażony)

P.S. lepiej ucz się po angielsku, bez tego nie ma szans na niebycie "ślizgaczem" :D

0

Ja na Twoim miejscu znalazłbym jakieś kursy C++ po polsku (np. coś stąd: http://cpp0x.pl/kursy/), i w trakcie ich "przerabiania" dla każdego polecenia, konstrukcji, etc. sprawdzał jej opis na jakiejś anglojęzycznej stronie z opisem języka http://www.cplusplus.com/ z wykorzystaniem jakiegoś słownika angielsko-polskiego (np. translate.google.com, diki.pl, https://www.diki.pl/slownik-angielskiego/slownik-terminow-informatycznych-i-komputerowych/). Wraz z nabywamiem nowych umiejętności z kusrsu pisałbym proste programiki to wykorzystujące. W ten sposób nauczysz się dobrze podstaw zarówno C++ jak i angielskiego, a dalej to już będzie z górki.

A może się i mylę, ale postępowanie wg powyższego na pewno Ci nie zaszkodzi :)

0

Po pierwsze - po takim namieszaniu raczej nic chłopakowi nie rozjaśniliście :/
I chyba nikt nie wziął pod uwagę, że ma już drukowaną książkę do C++.

Ktoś napisał, że programowanie w C++ jest trudne bez mentora — racja, dobrze by było sobie również kogoś znaleźć (ja się chyba nie bardzo nadaję – 14 lat, z czego tylko 2 programowania, ale jak nikomu się nie będzïe chciało, to może być)

C/C++ na początek nie jest takie złe, nawet korzystając z przestarzałych kursów – przejście na nowe technologie nie jest takie trudne, a ma się satysfakcję z tego, że np. wiesz jak jest zbudowany tekst ;p

[irony]A tak na serio, to radziłbym ci zacząć od Brainf*cka, (chyba, że wolisz iść na łatwiznę i zacząć od Assemblera) a następnie – kod maszynowy (chciałem się jeszcze trochę ponabijać z COBOLA, ale już mi się trochę szkoda go zaczyna robić).[/irony]

1

Osobiście zaczynałem od pascala (delphi) potem wszedłem w c++ który nauczył mnie wiele i dał podstawy do działania w językach w których pracuje obecnie. Poza tym z sentymentu wracam od czasu do czasu do c++, jakoś kod jego wygląda najfajniej :D

0
Laurefinwe napisał(a):

Po pierwsze - po takim namieszaniu raczej nic chłopakowi nie rozjaśniliście :/
I chyba nikt nie wziął pod uwagę, że ma już drukowaną książkę do C++.

[...]
C/C++ na początek nie jest takie złe, nawet korzystając z przestarzałych kursów – przejście na nowe technologie nie jest takie trudne, a ma się satysfakcję z tego, że np. wiesz jak jest zbudowany tekst ;p

Ależ napisałem, aby czytał. Napisałem - pierwszy tom (jak było wydanie trzytomowe) był spokojnie do przeczytania ze zrozumieniem bez dotykania klawiatury. Nie pozna najnowszego standardu, ale pozna podstawy, na których będzie mógł oprzeć dalszą naukę.

Ktoś pisał o kursach - jeśli ktoś nie zna żadnego języka programowania w stopniu choć średnim odradzam od zaczynania od kursów - książka (nawet średnia), która ma jakąś całość na początek moim zdaniem lepsza.

0

Proponuję rozpisać konkurs "język programowania który najdłużej się uczyłem".
Mój typ: C++ (znam ich kilkanaście).

Książka "Effective Modern C++" aktualnie leży w kolejce do przeczytania, ale jeśli "move" (który zaimplementowałem po swojemu na jednym ekranie) jest w niej skomplikowany, to chyba będzie to moja ostatnia książka o C++.

Są języki które można się nauczyć z kursów i YT. Na pewno C++ do nich nie należy.
Myślę, że z językiem C++ jest jeden poważny problem - można trafić na kod kogoś kto myśli że go umie a "defensive programing" to dla niego programowanie dla Lockheeda (dla którego nomen omen ktoś na ten temat napisał solidną lekturę: http://www.stroustrup.com/JSF-AV-rules.pdf).

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