Czy polecacie tę książkę?

Czy polecacie tę książkę?
S6
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 2 lata
  • Postów:21
0

Chodzi o książkę ,,Wprowadzenie do C++. Efektywne nauczanie. Wydanie III" Autor: Cay S. Horstmann. Jest nowa, została wydana 2021-01-18, tu link:

https://helion.pl/ksiazki/wprowadzenie-do-c-efektywne-nauczanie-wydanie-iii-cay-s-horstmann,wpcpp3.htm#format/d

Jest dość droga, a nie znalazłem nigdzie informacji o jej poprzednich wydaniach i nie wiem, czy warto ją kupić, dlatego pytam tutaj, może ktoś miał już z nią do czynienia? Czy jest bardziej dla zaawansowanych czy dla totalnie początkujących?

Miałem już książkę tego autora ,,Java. Podstawy wydanie XI" i język był zrozumiały, ale nieco ,,encyklopedyczny", pewnie w tej książce o C++ będzie podobnie...

edytowany 2x, ostatnio: stn617
G3
Bierz stroustrupa
Waran3
  • Rejestracja:około 4 lata
  • Ostatnio:ponad rok
  • Lokalizacja:Zielonka
  • Postów:103
2

Ja zdecydowałem się na tę:
https://helion.pl/ksiazki/opus-magnum-c-11-programowanie-w-jezyku-c-wydanie-ii-poprawione-komplet-jerzy-grebosz,ocpp12.htm#format/d
Opus magnum C++ 11. Programowanie w języku C++. Wydanie II poprawione (komplet).

Warta uwagi również jest ta :
https://helion.pl/ksiazki/jezyk-c-szkola-programowania-wydanie-vi-stephen-prata,cppri6.htm#format/d
Język C++. Szkoła programowania. Wydanie VI


Zobacz pozostałe 5 komentarzy
Waran3
Ciekawe :-) Dam znać za jakiś czas.
_13th_Dragon
Na książki też przyjdzie czas jak będziesz w stanie ją czytać z taką samą prędkością jak opowiadania SF (nie tracąc na rozumieniu czytanego materiału).
Miang
@_13th_Dragon: Heinleina czasem czytam tak wolno że książka do statystyki spokojnie wygrywa
DN
Do mnie nie trafiła narracja w Opus Magnum, jakoś tak rozwiąźle było dla mnie to napisane, jak dla mnie zbyt.
Miang
@dnj chodzi o tę inicjację?
several
  • Rejestracja:ponad 15 lat
  • Ostatnio:3 minuty
0

Człowiekowi, który już wczesniej programował raczej nie polecałbym książki do C++ napisanej przez człowiek z tytułem "Java Champion", założę się że będzie w niej nawoływał do wstąpięnia do wyznawców obiektowego programowania. TYM NIE MNIEJ, pofatygowałem się i zajrzałem do środka i muszę przyznać, że dla osoby która wcześniej nie programowała wygląda to całkiem całkiem.

EDIT Znalazłem jednak pierwsze błędy, patrz drugi screenshot, a wcale daleko nie przewinąłem. C cały czas jeszcze siedzi w profesorskich głowach.

screenshot-20210218013906.png
screenshot-20210218014511.png


edytowany 3x, ostatnio: several
Zobacz pozostałe 16 komentarzy
LukeJL
Może to też sprawia, że w sytuacjach, kiedy potrzeba wydajności, odrzuca się pewne abstrakcje i pisze bardziej niskopoziomowo (więc myśli się w kategoriach danych, a nie obiekcików). Ale znowu - później dorzuca się swoje abstrakcje (np. ECS, które w pewnym sensie można uznać za alternatywny model obiektówki, gdzie zamiast obiekcików masz encyjki, komponenciki i systemiki), więc nie robi się nic innego, czego nie robią OOPowcy, po prostu robi się to w bardziej niskopoziomowy sposób.
several
Wchodzimy w szarą strefę jeśli chodzi o definicje. ECS tworzy Ci pewną hierarchię obiektów, które reprezentują Twoje dane, tylko że nie ma nic złego w obiektach jako takich, dane są spinane razem cały czas. To programowanie zorientowane obiektowo i fiksacja na niepotrzebnej abstrakcji jest problemem.
TomaszLiMoon
Więc teraz napisz mi, które silniki programuje się obiektowo? równie dobrze można zadać pytanie o silniki, które napisane zostały zupełnie bez użycia OOP tzn. bez wykorzystania dziedziczenia, klas, polimorfizmu itd. tak jakby twórcy mieli do dyspozycji tylko język C. Moim zdaniem problem jest tutaj definicja obiektowości - musimy określić jakie podstawowe warunki powinien spełniać obiektowo napisany program - aby móc dalej dyskutować na ten temat. Jeżeli nasze definicje tego pojęcia będą inne, to cała dalsza dyskusja będzie pozbawiona sensu.
LukeJL
@several oglądam tę prezentację. Ciekawe, że sytuacja z 20:32 https://youtu.be/qYN6eduU06s?t=1232 działa również w Node, co mnie zdziwiło, tzn. wcześniej słyszałem o data locality, ale się zastanawiałem, na ile to się stosuje do języków skryptowych. W końcu w JS nie ma się wpływu na to, jak to silnik zaimplementuje(czy będzie to w jednym miejscu w pamięci, czy będą jakieś wskaźniki), a jednak mimo wszystko V8 musi chyba implementować jakoś po ludzku, skoro występuje efekt, o którym mówi Fleury na przykładzie C++.Ciekawe jak inne silniki JSa
several
@LukeJL: też zauważyłem że iterowanie przez wiersze vs iterowanie przez kolumny robi sporą różnicę również w językach nie pisanych bezpośrednio na sprzęt. Jeśli chodzi o V8 to jest to o tyle ciekawe, że, z tego co się orientuje, trzyma on wygenerowany kod na stercie zarządzanej przez GC, więc obiekty zmieniają swoje adresy i potencjalnie masz większe ryzyko fragmentacji. A jednak podstawowe mechaniki wciąż pozostają w mocy.
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
1
several napisał(a):

Człowiekowi, który już wczesniej programował raczej nie polecałbym książki do C++ napisanej przez człowiek z tytułem "Java Champion", założę się że będzie w niej nawoływał do wstąpięnia do wyznawców obiektowego programowania.

Kiedy przerabiałem jedne z wcześniejszych wydań "bazowego Horstmana" to w tamtym wydaniu były wstawki dla "przechodzących z C/C++" i dużo wyjaśnień dla nich,

Może po prostu jest tytuł Java Champion więc Horstman go dostał w uznaniu społeczności.
Jakby był tytuł C Champion to może miałby dwa tytuły.

Java od Horstmana polecam.

Polecam też styl przekazywania wiedzy. Jest OK, więc z tego powodu książka z C nie powinna być zła (też powinna być OK).


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 2x, ostatnio: BraVolt
several
Jest OK, więc z tego powodu książka z C nie powinna być OK. Tu się chyba mały chochlik wdarł? Po pobieżnym przejrzeniu książki zgadzam się, że taki graficzno-obrazowy styl jest bardzo fajny, aż żałuję że moje pierwsze książki tak nie wyglądały.
BraVolt
@several: Dzięki, poprawione. A Horstman IMO dobrze tłumaczy, w sam raz "na pierwszy raz" dla początkującego.
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)