Książka dla początkującego

Książka dla początkującego
W2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:23
0

Witam. Jaką książkę, do nauki c++, moglibyście polecić osobie która dopiero zaczyna przygodę z językiem C++?

lion137
  • Rejestracja:około 8 lat
  • Ostatnio:3 minuty
  • Postów:4887
0

W2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:23
0

Bardzo dziękuję za odpowiedź ale bardziej chodziło mi o książki w języku polskim? Co sądzicie o tej książce (link poniżej), Czy nie jest ona aby trochę przestarzała?
https://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm#format/d

lion137
Nie widzę sensu czytania informatyki po Polsku
Sunnydev
@lion137: a co z młodymi osobami, które nie zdążyły się jeszcze dobrze nauczyć angielskiego? :)
AK
Tzw "pierwsze uderzenie wiedzą" ma/moze mieć sens po polsku (gdzie np nie na potrzeby być na absolutnie aktualnej wersji itd) -> potem angielski
xDevil2
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Poznań
  • Postów:109
0

O, sam kiedyś przerobiłem książkę Praty. Bardzo fajnie napisana i wszystko wyjaśnia, aż za mocno wałkuje pewne tematy, często pomijałem fragmenty z racji tlumaczenia jak dla 5latka. Osobiście polecam, na początek jak znalazł.

Sunnydev
hmm nie podzielam opinii. przeczytałem całą i żałuję zmarnowanego czasu na uczenie się C zamiast C++.
Sunnydev
przy czym oczywiście zdążyłem się zbrzydzić do tego języka 500 razy przechodząc przez książkę.
W2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:23
0

Bardzo dziękuję za odpowiedzi i życzę Miłego Dnia!

MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:7 minut
0

Ja zaczynałem od Grębosza ("Symfonia C++"), był dla mnie zbyt rozwlekły, ale i tak mi odpowiadał.
Nie wiem, jak teraz się spisuje najnowsza edycja.
Jeszcze lubię "Scot Mayers", z tego co wiem jest parę dobrych tłumaczeń, ale nie wiem która była by dobra dla początkującego. To chyba będzie ci pasować, na podstawie linka do SO.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
W2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:23
0

@MarekR22. Zapowiada się ciekawie i wygląda na to że ją kupie bo cena nawet taka nie straszna... Dzięki!

UC
  • Rejestracja:ponad 5 lat
  • Ostatnio:3 dni
  • Postów:27
1

Widziałem nowe "Opus Magnum" Grębosza i wygląda całkiem, całkiem. Praty nie znam, natomiast sprezentowałem znajomemu ksiązkę Gaddisa i jest bardzo zadowolony.

W2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:23
0

@UncleChesster. Bardzo dziękuję Ci za odpowiedź i mam jeszcze takie pytanie: Czy ja i ty moglibyśmy zostać znajomymi? Pytam ponieważ nie mam zbyt dużo pieniędzy na zakup ksiązki a do mikołaja jeszcze daleko... To tak z przymrużeniem oka a tak bardziej poważnie to ta ksiązka Gaddisa liczy sobie ponad 1000 stron i wydaje mi się że jej zakup jest dobrą inwestycją. Miłego dnia!

koszalek-opalek
  • Rejestracja:około 9 lat
  • Ostatnio:około 2 lata
0
MarekR22 napisał(a):

Jeszcze lubię "Scot Mayers", z tego co wiem jest parę dobrych tłumaczeń, ale nie wiem która była by dobra dla początkującego. To chyba będzie ci pasować, na podstawie linka do SO.

Scott Mayers jest świetny, ale dla początkującego na nic... Natomiast jego książki są obowiązkowe dla bardziej zaawansowanych już w C++...

ZK
  • Rejestracja:około 19 lat
  • Ostatnio:3 miesiące
0

również polecam Opus magnum C++ 11. Programowanie w języku C++ osobiście uważam, że jest to jedna z najlepszych książek do nauki C++ i sam się z niej uczyłem i daleko zaszedłem bo już trochę poznaję Qt, mogę jeszcze polecić następujące tytuły

  1. C++ dla bystrzaków. Wydanie VII
  2. Programowanie. Teoria i praktyka z wykorzystaniem C++. Wydanie III
  3. Język C++. Kompendium wiedzy. Wydanie IV
  4. Język C++
  5. Język C++ bardziej efektywny
  6. C++17 STL. Receptury
  7. C++. Biblioteka standardowa. Podręcznik programisty
  8. I jeszcze darmowy -> C++ na PJWSTK

Na początek polecam zacząć od Opus Magnum Grębosza, gdyż jest bardzo lekkostrawna i wszystko z niej zrozumiesz, potem czytaj według kolejności co podałem, ponieważ każdy autor wnosi coś nowego. Jak skończysz C++ i będziesz szukał biblioteki do pisania okienek, to polecam Qt, z tym, że co do Qt to po polsku nie ma kompletnie nic, a to co jest to mało przydatne rzeczy...


bla
edytowany 4x, ostatnio: zkubinski
semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
0

Na początku opanuj C++ bez klas, i coś rób z tym. Ja uczyłem się pisząc gry w SDL.

  1. biblioteczka komputer świat c++
  2. Wskaźniki w języku C. Przewodnik

Potem przestaw się na język, który pozwoli Ci szybciej zrozumieć idee klas, szybciej eksperymentować np. Python i spróbuj pisać okna w PySide2 - zwróć również szczególną uwagę, na to że:

  • nie zarządzasz pamięcią
  • masz wygodne kolekcje
  • funkcje mogą przyjmować dowolne parametry (jakby były szablonami)
  • kod można uogólniać z poziomu klas i funkcji wyższego rzędu
  1. Po 3 tygodniach wróć i próbuj uzyskać podobne rzeczy w C++

Wtedy polecam:

https://helion.pl/ksiazki/c-dla-programistow-gier-wydanie-ii-michael-j-dickheiser,cpprog.htm (<-- WARTO nawet jeśli nie piszesz gier!!!)
https://www.nieprzeczytane.pl/C.-Strategie-i-taktyki.-Vademecum-profesjonalisty,product472845.html
https://helion.pl/ksiazki/jezyk-c-metaprogramowanie-za-pomoca-szablonow-david-abrahams-aleksey-gurtovoy,cppmet.htm#format/d

Dopiero po czymś takim będziesz miał w miarę dobre podstawy.

edytowany 1x, ostatnio: semicolon
koszalek-opalek
  • Rejestracja:około 9 lat
  • Ostatnio:około 2 lata
0
semicolon napisał(a):

Na początku opanuj C++ bez klas, i coś rób z tym. Ja uczyłem się pisząc gry w SDL.

Hej, ale co Ty chcesz robić w C++ bez klas...??? Bez vectorów, cin i cout...?

Potem przestaw się na język, który pozwoli Ci szybciej zrozumieć idee klas, szybciej eksperymentować np. Python i spróbuj pisać okna w PySide2 - zwróć również szczególną uwagę, na to że:

Kocham Pythona, ale...

  • nie zarządzasz pamięcią

W C++ nie zarządzasz pamięcią. Chyba że musisz. Prawie nigdy nie musisz.

  • masz wygodne kolekcje

Porównywalne z C++.

  • funkcje mogą przyjmować dowolne parametry (jakby były szablonami)

Dla niektórych to wada -- także dla wielu początkujących.

  • kod można uogólniać z poziomu klas i funkcji wyższego rzędu

Możliwe i w C++ -- choć pewnie bardziej zawiłe.

  1. Po 3 tygodniach wróć i próbuj uzyskać podobne rzeczy w C++

Wtedy polecam:

Książki mogą być. :)

semicolon
Ale Ty masz jakieś uprzedzenia do mnie? Niby jakim prawem? Dałem najlepszą odpowiedź i uważam, że ona wnosi więcej niż Twoje pojękiwanie. Pythona to dobry punkt wyjścia by zorientować się jakie są techniki. W tym języku szybciej można to sprawdzić, a następnie wrócić do C++ by działać. Wiedząc o tym, że istnieje coś takiego jak kolekcje albo ogólny kod to łatwiej i szybciej odnajdzie się odpowiednik z C++.
koszalek-opalek
@semicolon: Hej, hej, spokojnie, to nic osobistego. :) Nie zgadzam się jednak, że ta odpowiedź jest najlepsza, a napisałem powód w pierwszym akapicie ("co Ty chcesz robić w C++ bez klas"). Możesz się do tego odnieść... Z jakiegoś powodu @wojownik266 chce (musi?) się uczyć C++. Ja też bym radził zacząć od czegoś innego (Python jest tu super), ale takie przesiadki, jak ma nauczyć się C++ do niczego nie doprowadzą...
semicolon
Chodziło mi o najlepszą ode mnie, bo chciałem pomóc, a nie najlepsza w znaczeniu, że pozjadałem wszystkie rozumy :-) Przejście na pythona (na 3 tygodnie) piszę z własnego doświadczenia. Ja żałuje, że o pewnych mechanizmach językowych dowiedziałem się z opóźnieniem. Gdybym tylko wcześniej wiedział, że są kolekcje, że pewne kody można z szablonami lepiej napisać to programowanie w c++ byłoby duuuużo prostsze. W c++ rzadko spotykałem się z prostą informacją to jest do tego, to jest do tego. Zamiast prostych odpowiedzi większość tekstów dotyczyła niuansów związanych z zapisem.
semicolon
A tu C++ trochę leży i kwiczy, bo IMO ma jedną z najbardziej złożonych gramatyk więc nim dostrzeżesz jakie możliwości kryją się za wybranymi konstrukcjami to trochę mija czasu. W lepszej sytuacji są te osoby, które wcześniej poznały niższy język np. C (stąd nauka do poziomu wskaźników), ale i też bardziej obiektowy np. Python (stąd te 3 tygodnie). I dopiero jak masz doświadczenia z C i z Pythona, wtedy pracujesz nad kompromisem w C++ (zapoznając się z książkami z 3 sekcji jaka wymieniłem w moim poście). Myślę, że taka wiedza pozwala zbududować bardziej zbalansowany skill.
koszalek-opalek
@semicolon: Dlatego napisałem, że polecam Pythona do nauki programowania. :) Tyle, że tu pytanie było o C++.
W2
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:23
0

Dzięki! Miłego Dnia!

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)