Ocena wątku:
  • 1 głosów - średnia: 5
  • 1
  • 2
  • 3
  • 4
  • 5

Jaką książkę do nauki C++ wybrać?

RE: Jaką książkę do nauki C++ wybrać?
Najlepiej żadną. Poszukaj tutoriala na YT, a jak już będziesz coś umiał to zainwestuj w książkę z wiedzą dla bardziej zaawansowanych, bo na podstawy nie ma sensu wydawać pieniędy, zwłaszcza, że możesz je poznać za darmo.
polubienia 0 +1

www
RE: Jaką książkę do nauki C++ wybrać?
Tianse, proszę, nie traktuj pytań o zrozumienie jako atak na siebie.


Gevciak napisał(a):od dawna planuję zacząć w jezyku c++

Dlaczego akurat C++? Chcesz poznać jakiś pierwszy język? Zaczynanie od niego to błąd - za dużo gruzu (archaiczne klamry i inne dziwactwa) i zbyt niski poziom (dużo pisania na mało rzeczywistego efektu). Zbyt wiele technicznych detali będziesz musiał poznać od razu. Lepiej zacząć od czegoś, co jest szybkie, czytelne, przyjemne, profesjonalnie szeroko używane i wciąż zdobywa popularność - Python. Następnie możesz pogłębiać arkana zrozumienia o kolejne niskopoziomowe elementy - jeśli zechcesz.

Tak czy siak, Twoim długodystansowym celem powinno być napisanie własnego kompilatora i interpretera specjalnie przygotowanego, prostego języka(/ów). Wtedy jakikolwiek język weźmiesz, to będziesz widział w nim decyzje projektowe - będziesz w stanie przewidzieć jak się go używa. To otwiera drogę do poznawania języków jedynie po przeczytaniu gramatyki i specyfiki semantyki kodu. Interpretery i kompilatory to najważniejszy przedmiot na studiach informatycznych.


forest napisał(a):Ja z C++ zaczynałem od tego:

http://helion.pl/ksiazki/c-dla-kazdego-w...cppint.htm

O nie, tylko nie C++ dla każdego. Autor tworzy kod na trzy kartki, a następnie po wprowadzeniu małej zmiany wypisuje cały od początku i każe Ci porównać, a porównanie zajmuje stronę ~A4. Owszem, teraz bym to robił bez problemu, ale jak na podstawówkę/gimnazjum, to było bardzo zniechęcające.

Jeśli już C++, to weź coś, gdzie są małe, treściwe przykłady, najlepiej rzeczywiście użyteczne.


Tianse napisał(a):są dziedziny w których start od języka wysokiego poziomu w przyszłości powoduje więcej problemów niż korzyści.

Mógłbyś podać przykład? Nie widzę w tym zdaniu prawdy, gdyż poznawanie coraz bardziej niskopoziomowych technologii pozwala skupić się wyłącznie na rzeczach, które pojawiają się po raz pierwszy na danym poziomie. Rzucanie się od razu na język niskopoziomowy jest jak próba zjedzenia hamburgera o zbyt wielu warstwach, aż żuchwa wysiada. Lepiej po kolei odkrajać po trochu lub rozbić go na dwie kanapki. Owszem, część wiedzy się może nie przydać, ale bazowe pojęcia będą znacznie lepiej rozumiane i przyjemniej przyswojone, a przy zejściu z wysokiego poziomu do najniższego uczeń ma w głowie ułożone jak świat softu funkcjonuje. Jak jeszcze zrozumie programowanie obiektowe (prawdziwie obiektowe, z komunikacją wyłącznie przez sygnały, nie to co w C++ czy Javie), funkcyjne, w logice, a także teoretyczne jak maszyna Touringa czy automaty, to staje się uniwersalnym programistą, potrafiącym przedstawiać najlepsze rozwiązania, nawet jeśli są z innych światów (np. z języka logiki w zwykłym programowaniu proceduralnym), zaadaptowane do obecnych potrzeb. Każda zazębiająca się dziedzina, choć może w przyszłości nie być sama w sobie użyteczna (sorry, ale maszyny Touringa nie będę programował ;≻), pogłębia zrozumienie innych elementów tej układanki.
polubienia 0 +1

www
RE: Jaką książkę do nauki C++ wybrać?
Pewnie, że mógłbym podać przykład :) Otóż każdy ma swój tok rozumowania i twierdzisz, że poznanie języka wysokiego poziomu jest dobre, po czym schodzenie do dołu i odkrywanie jego dalszych cząstek będzie o wiele łatwiejsze. W zasadzie masz trochę racji, lecz... jak kto woli. Ja zanim wziąłem się za naukę programowania (w lotnictwie, także nie znam żadnych skryptów do programowania gier i innych takich rzeczy) to postanowiłem pogadać z kimś, kto w tym siedzi już trochę lat. Wybrałem dwie osoby. Pierwsza to facet, przez którego ręce przechodziła pierwsza w Polsce elektronika typu komputery, mikrokontrolery i wiele innych komponentów elektronicznych, za które ówcześnie płacili krocie. W 1989 roku, tenże jegomość zaprogramował (autentycznie latającego, nie jakiś modelik) wielokanałowego autopilota i zrobił do niego całą elektronikę, do samolotu "Mewa". Nie wiem czy ktoś zdaje sobie sprawę z tego jakie to osiągnięcie, ale teraz mniejsza z tym. Później zaprogramował jeszcze wiele innych rzeczy, dziś głównie zajmuje się systemami przeciwoblodzeniowymi. Druga osoba, to syn Pana powyżej. Wdał się w ślady ojca i to bardzo, również stworzył już autopilota, tylko że poczynił krok dalej i jest to pierwszy w Polsce (i jeden z pierwszych na świecie) autopilot wspomagający pilota-operatora wykorzystujący heurystyczne prawa sterowania dla mikrosamolotów. Goście naprawdę robią wiele magicznych rzeczy. Osobiście uczę się od młodszego z wymienionych jegomościów i często go o coś męczę, jak i również jest moim promotorem na pracę inżynierską (co robię nie powiem, bo to pierwszy taki systemik na świecie i ktoś mi pobiegnie do urzędu patentowego :P). Wymienieni przeze mnie Panowie mają kompletnie odwrotne podejście do programowania, niż Ty. Zacząłem programowanie od języka niskiego poziomu, czyli od Assemblera. Dlaczego? Dlatego, że pisząc programy w tym języku (i programując mikrokontrolery), człowiek uczący się dopiero co to jest i jak to działa, widzi krok po kroku, linijka w linijkę, jak każde polecenie, zadanie czy instrukcja działa. Kroczek po kroczku. Jak wszystko jest zbudowane, jak to wygląda tam w środku takiego mikrokontrolera, jak to się fizycznie dzieje. To jest podstawa, fundament programowania. Od tego założenia wyszedłem, a dokładnie do tego zostałem przekonany. Fakt, dobre jest to do pewnego stopnia, bo jakby miało się cokolwiek zaawansowanego napisać w tym języku, to prędzej bym się pociął, niż podjął takiego zadania. Jednak przechodząc na język wyższego poziomu, gdzie wpisując instrukcję w kilka linijeczek, ja widzę i mam świadomość jak to wygląda rzeczywiście (w większości przypadków, są rzeczy których nie da się sobie wyobrazić, albo których wolałoby się sobie nie wyobrażać - kto programuje to wie :D). Przeskok z języka niskiego poziomu na język wysokiego poziomu jest komfortem dla kogoś i taka osoba rozumie wszystko co robi. Jest jak przesiadka z gorszego auta do lepszego. W tą stronę łatwo się przesiąść, odwrotnie byłoby trudno. Tak samo jest z nauką. Języka niskiego poziomu jest trudno się nauczyć (rzut na głęboką wodę), a wysokiego poziomu łatwiej. Dobrym autem też szybciej nauczysz się jeździć, niż starym rzęchem. Moim zdaniem pozostaje ta kwestia, czy ktoś chce zacząć od limuzyny i poznawać życie schodząc w dół ( i nie będąc przy tym świadomy co go tam czeka), czy ktoś chce metaforycznie zacząć od 4-biegoweo malucha bez wspomagania i przesiadać się na lepsze auta.


Kulturalny Wilk napisał(a):
forest napisał(a):Ja z C++ zaczynałem od tego:

http://helion.pl/ksiazki/c-dla-kazdego-w...cppint.htm


O nie, tylko nie C++ dla każdego. Autor tworzy kod na trzy kartki, a następnie po wprowadzeniu małej zmiany wypisuje cały od początku i każe Ci porównać, a porównanie zajmuje stronę ~A4. Owszem, teraz bym to robił bez problemu, ale jak na podstawówkę/gimnazjum, to było bardzo zniechęcające.

Jeśli już C++, to weź coś, gdzie są małe, treściwe przykłady, najlepiej rzeczywiście użyteczne.

Widzę, że masz pojęcie o programowaniu :) Jesteśmy jednak w różnych branżach, gdzie są różne wymagania i rożne podejścia do sprawy, co wcale nie oznacza, że któreś z naszych podejść jest najlepsze. Jak widać wszystko zależy od wymagań i sytuacji w której dana osoba się znajduje ;)
polubienia 0 +1

www
RE: Jaką książkę do nauki C++ wybrać?
Z porównaniem do nauki jazdy masz rację, to jest to samo, co moja analogia do hamburgera. Erystyczny argument autorytetów pomijam.

Co kto lubi. Każdy może sobie utrudniać życie na własne życzenie.
polubienia 0 +1

www