Książka do nauki programowania.Czy musi być najnowsza.

0

Witam.
Zamierzam rozpocząć naukę programowania i mam do was takie oto pytanie:
Czy data wydania książki musi być świeża i po jakim czasie książka jest już przestarzała?
Zamierzam kupić "Symfonia C++ standard" Jerzego Grębosza lub "Język C++. Szkoła programowania." Stephena Prata. Podobno najlepsze tytuły do nauki.
Z góry dziękuję za pomoc i uprzedzam, że dopiero zamierzam się uczyć i nic jeszcze nie umiem.

1

szkola programowania praty jeszcze przejdzie bo jest tam opisywany c++11, a zmiany doczytasz w dokumentacji, ksiazka swietna, polecam, pisana bardzo latwym jezykiem i nawet taki debil jak ja zakochalem sie w tej ksiazce i przerobilem bardzo szybko

symfonie sobie daruj, stara, uczy zlych nawykow, jeszcze 10 lat temu bym moze ja polecil ale teraz? nie ma mowy

tldr; bierz prate

0

Dzięki za szybką odpowiedź. Poczekam jeszcze na inne opinie, ale z tego co wiem to faktycznie większość ma takie same zdanie o książce Jerzego Grębosza

0

Tak na prawdę nie ważne czego się nauczysz. Ważne abyś załapał o co w tym wszystkim chodzi, jak to działa. Nawyki zawsze można eliminować. Chociaż im młodsza książka tym lepsza.

0

Jeżeli celem nauki jest nauczenie się programowania, to data wydania książki nie ma żadnego znaczenia. Większość języków programowania wraz z rozwojem zachowuje kompatybilność wstecz (np. C++, Java), a osoba która uczyła się z nieco starszej książki, nie będzie tylko znała najnowszych ficzerów. Kod napisany przez taką osobę, skompilowany najnowszą wersją kompilatora będzie działał.

Jeżeli celem nauki jest np. zmiana pracy, to warto wcześniej zorientować się jaką wersję języka/bibliotek używają pracodawcy (niekoniecznie najnowsza) i zaopatrzyć się w odpowiedni podręcznik.

0

Celem nauki jest sprawdzenie, czy programowanie to coś dla mnie. Jestem w 2 liceum i się zastanawiam nad przyszłym zawodem. Czy te "złe nawyki" to coś, co dzisiaj jest niedopuszczalne czy po prostu nieco utrudni mi pracę w przyszłości?

0

Raczej to pierwsze, ponieważ książka Grębosza pokazuje styl programowania jaki obowiązywał jakieś 15 lat temu. Jest tam wiele niskopoziomowych operacji na wskaźnikach, których dzisiaj zwyczajnie się nie używa jak choćby tworzenie tablic dynamicznych za pomocą gołego new gdzie dzisiaj masz do dyspozycji kontener std::vector itp..

Z sentymentu bardzo dobrze wspominam tę książkę i lubię ją ale dzisiaj to już raczej historia.

0

Z wypowiedzi mojego przedmówcy wnioskuję, że starsza książka uczy jednocześnie bardziej pracochłonnego stylu programowania, ale i za to uczy od samych podstaw jak to wszystko działa. A na tym mi zależy bo lubię wiedzieć co z czego się bierze bo łatwiej mi to wtedy zrozumieć.

0

Jeżeli chcesz prześledzić historię tego jak programowano kiedyś, kiedy ludzie nie używali tak powszechnie STL'a, a tak z 70% kodu było oparte o wskaźniki to książka Grębosza jest jak znalazł.
Tylko słowo historia należałoby tutaj wytłuścić i powiesić na transparencie.

PS: Wskaźników nauczyłem się właśnie z niej... tylko, że to było właśnie dobre 12 lat temu. No... może przesadziłem ale z 10 na pewno :)

0

Aż ta mi nie zależy na tym, żeby utrudniać sobie pracę. Chyba jednak zdecyduję się na Stephena Prata :). Dziękuję za pomoc.

2

Tak swoją drogą nie przejmuj się: pójdziesz na studia to zobaczysz takie relikty, przy których książka Grębosza to świeżuteńka bułeczka z jagodami, dopiero co zerwanymi i przywiezionymi z lasu.

I to bynajmniej nie jest żart, zwłaszcza w stosunku do nauczania C/C++! :)

0

W takim wypadku czy nie należy opanować najpierw kompletnych podstaw, dzięki którym będę mógł zrozumieć na czym to polega? Skoro na studiach wymagają znajomości "reliktów" to nauka po to, żeby zobaczyć czy to coś da mnie chyba lepiej będzie mi szła przy korzystaniu ze starszej książce. Chyba, że dzisiejsze programowanie polega na zupełnie innych zasadach, a nie tylko ułatwieniu w celu przyspieszenia i nie będę mógł wykorzystać starych technik w "nowym" programowaniu. Trzeba wziąć pod uwagę, że w tej chwili mój poziom wiedzy na temat programowania jest równy 0.

2

No, a jaki problem poznawać stare i uczyć się nowego? Np:

Tablice (taki kontener danych), których powiedzmy rozmiar użytkownik podaje podczas działania programu:

Kiedyś

#include<iostream>
using namespace std;

int main()
{
	unsigned size = 2; // rozmiar tablicy;
	int *numbers = new int[size]; // alokowanie pamięci dla tablicy o rozmiarze size;
	numbers [0] = 12; // wstawianie danych;
	numbers [1] = 10; // jak wyżej;
	delete[] numbers; // zwalnianie pamięci dla tablicy;
	numbers = nullptr; // ustawienie wskaźnika na tablicę na null;	
	// Zapominanie o dwóch powyższych linijkach grozi naprawdę nieciekawymi rzeczami takimi jak wycieki pamięci,
	// czy używanie zwolnionej przed chwilą przestrzeni w pamięci, w której tak naprawdę są już same śmieci.
	return 0;
}

Dzisiaj

#include<iostream>
#include<vector> // informacja dla kompilatora, że chcemy korzystać z wektora
using namespace std;

int main()
{
	vector numbers; // nasza tablica
	numbers.push_back(12); // wstawianie danych;
	numbers.push_back(10); // jak wyżej;

	// a tych starych rzeczy w ogóle nie trzeba robić.
	return 0;
}

Nowe jest i ładniejsze i bezpieczniejsze, a przy okazji poznajesz jak się robiło to po staremu. Naprawdę nie trzeba wybierać tylko jednej ścieżki nauki. Grunt żeby być świadomym tego czego się uczysz.

0

Ok. Więc kupię książkę Grębosza z jednoczesnym patrzeniem na to jak to się robi dzisiaj (jak już zrozumiem o co chodzi w danej kwestii) BARDZO dziękuję za pomoc.

1

Uważam, że jeżeli uczysz się C++ to koniecznie powinieneś wiedzieć jak działają wskaźniki, jak zaalokować i zwolnić pamięć, co nie znaczy, że masz to robić ręcznie w swoim kodzie. Biblioteka STL jest bardzo przydatna i dobrze by było, gdyby podręcznik ją również omawiał. W związku z powyższym powinieneś kupić książkę Stephena Prata, jeżeli jedyną alternatywą jest Grębosz. W książce Prata masz zarówno omówienie ręcznej alokacji, a obok jest omówiony vector jako ten "lepszy" wzorzec.

0

Czyli w książce Prata jest omówione wszystko co ważne w książce Grębosza i to co jest nowego? W sensie wytłumaczone są te podstawowe pojęcia, jak zrobić coś ręcznie itp. ?

0

Daj sposób z tym Gręboszem - to się czytało, jak była bieda po komunie w latach 90. ;) Jak chcesz historię, to sobie przeczytaj K&R.

0

Bierz coś w standardzie C++14, C++17 na przyszłość, te stare książki nie są nawet w standardzie C++11.

0

Bralbym Prate, co prawda zakupilem ksiazke i przeczytalem jedynie kilka pierwszych rozdzialow, ale dosyc fajnie pisana. Niestety nietrafiony jezyk programowania i sie kurzy.

0

Grębosz niedługo wydaje książkę o C++17, jeśli chcesz właśnie jego to lepiej poczekać na nią.

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