Jednoczesna nauka języka programowania z dwóch książek

Jednoczesna nauka języka programowania z dwóch książek
PrzemolPrzemol
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 9 lat
  • Postów:225
0

Ma to sens czy może namieszać? Na myśli mam C++

Zacząłem się uczyć z Język C++ Szkoła Programowania (Stephan Prata) i zastanawiam się nad zakupem Język C++ Kompendium Wiedzy (Bjarne Stroustrup) porównując spis treści są pewne różnice. Logiczne jest to, że w jednej książce opisano coś mniej, w drugiej bardziej i na odwrót.

Dodam, że moim celem jest bardzo dobre poznanie tego języka.


In progress: C++ || Asm
edytowany 2x, ostatnio: PrzemolPrzemol
somekind
W innych wątkach robisz z siebie eksperta, wmawiając innym, że C++ to dobry wybór i nadaje się do wszystkiego, a teraz okazuje się, że dopiero zaczynasz się uczyć? Nieładnie.
J0
Jak tak bardzo chcesz czytać dwie książki to może przeczytaj jedną, ale "do góry nogami" wtedy bardziej będziesz czuł, że analizujesz czytany tekst no i informacje lepiej zrozumiesz, a może nawet nowego neurona wyhodujesz :)
PrzemolPrzemol
@somekind nie robię z siebie eksperta, wskaż mi miejsce, w którym tak napisałem. Wskaż mi miejsce w tej wypowiedzi, gdzie napisałem, że C++ to zły wybór. Nie rozumiem Twojej wypowiedzi, bo nigdzie tak nie pisałem. I po drugie w podpisie masz na niebiesko napisane, że uczę się C++ (ustawione mam już od około tygodnia czasu). A z C++ miałem styczność już wiele lat temu tylko porzuciłem naukę, co było złym wyborem. I w wielu wątkach, w których wypowiadałem się odnośnie C++ zaznaczałem, że też dopiero zaczynam.
somekind
@PrzemolPrzemol, np. tutaj: http://4programmers.net/Forum/C_i_C++/263539-c++_warto_inwestowac_czas?p=1208766#id1208766 i tutaj: Nauka programowania Nie twierdzę, że dosłownie napisałeś, że jesteś ekspertem, ale takie sprawiasz wrażenie w swoich postach. Bo żeby pisać o innych ludziach, że nie rozumieją C++, albo że są rzeczy, których nie zrobi się w C#, to trzeba mieć znaczną wiedzę i doświadczenie.
PrzemolPrzemol
"sam się zacząłem uczyć i mam cel doprowadzić to do porządnego stopnia..." <- w wypowiedzi. Podstawy do takiego twierdzenia mam solidne, bo inaczej się nie wypowiadał, jak już pisałem kilka lat temu uczyłem się C++ (tyle, że przerwałem) więc co nieco wiem, bo inaczej bym się nie wypowiadał. Ale uszanuje Twoje zdanie i nie będę wypowiadał się w takich wątkach do czasu aż nie poznam C++ na znacznie wyższym poziomie i po problemie ;)
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
2

Przeczytaj jedną, porób przykłady, zacznij pracę nad jakimś projektem/dołącz się do jakiegoś opensource'owego - jeśli stwierdzisz, że wciąż za mało wiesz, dopiero wtedy bierz się za drugą.
Nie ma sensu przedobrzać, ponieważ Ty nie masz wiedzieć wszystkiego - Ty masz potrafić, a książka jest jedynie źródłem pomocy, poradnikiem we wstępie. Potem wiedzę oraz zdolności zdobywa się na bieżąco podczas pisania projektów.


DN
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 9 lat
  • Postów:34
0

Cześć. zgadzam się z Przedmówcą... z jednym zastrzeżeniem iż to dla osobnika który pragnie zostać ułożonym biurokratą... nauczyć się być może na pamięć każdego słowa jakie uwidział...

do pewnego momentu kiedy jakiś pomysł ulepszenia opisanego prostego projektu z książki nie zaświta w główce... w tym momencie albo Kto cokolwiek będzie próbował już samodzielnie albo zwykły urzędnik... po prawie 60 latach żywota to mogę powiedzieć... nie ucz się niczego na pamięć ! rozwiązuj problemy jakiekolwiek najbardziej dziwne głupiutkie ucz się myślenia samodzielnego bądź ciekawy świata... przeczytać można tysiąc ksiąg... co nie oznacza, napisania choćby jednej nowelki jako Antek czy Nasza szkapa... Pozdrawiam DeNiss

KR
  • Rejestracja:około 13 lat
  • Ostatnio:10 miesięcy
  • Postów:117
0

Nie czytałem książki Praty, ale co do Kompendium wiedzy Stroustrupa, to nie powiedziałbym, że to się nadaje do nauki. Jest to raczej coś w rodzaju encyklopedii języka C++, więc może być doskonałym dodatkiem do jakiegoś kursu, coś jak słownik przy nauce języka obcego.


0

TL:DR
Tak, jest to nawet wskazane.

Ja JavaScriptu uczyłem się z 10 książek na raz, jednocześnie czytająć dokumentację i miliony blogów + stackoverflow. Często musisz przeczytać o danym zagadnieniu milion różnych rzeczy, żeby w końcu znaleźć ten artykuł, książkę która wywoła tzw. efekt AHA i wszystko staje się jasne. Czytanie jednej książki w nadzieji, że w końcu autor przedstawi to z innej strony jest stratą czasu, bo często autor myśli w określony sposób który możesz, ale nie musisz zrozumieć.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

@Duży Terrorysta: cocococo?
A myślałeś może nad tym, aby samemu rozpracowywać dane zagadnienia, a nie liczyć na podanie gotowca przez autora? Rozwijanie się nie jest skutkiem samego przeczytania książki.


edytowany 1x, ostatnio: Patryk27
0

Pisałeś, że uczysz się też jednocześnie Ruby, więc naraz 2 książki o C++ i jednocześnie Ruby? To wszystko Ci się prędzej czy później pomiesza, chyba lepiej uczyć się naraz tyko 1 języka.

PrzemolPrzemol
Tak, uczę się obu języków i póki co nie widzę problemu. Rano kilka godzin poświęcam Rubiemu, pod wieczór kilka godzin C++. Na studiach ludzie też uczą się kilku języków jednocześnie (w jakim stopniu - nie wnikam) i dają radę. Póki co nie jest źle.
0

Oczywiście to też jest wskazane, ale ma swoje minusy. Np. komuś kto dopiero zaczyna łatwiej jest zrozumieć gotowiec niż próbować zagłębiać się np. w kod źródłowy frameworku, bo tam zginie (moim zdaniem). Poza tym ja odpowiedziałem strikte na pytanie zadane w temacie, sam wychodzę z założenia (co implikuje poprzedni post) że dobrze jest korzystać z różnych metod nauki w tym samodzielne rozpracowywanie problemu.

0

Oczywiście, że rozwijanie nie jest skutkiem samego przeczytania książki, ale korzystając z gotowców moim zdaniem przyspieszamy proces nauki. Oczywiście warto czytać książki aktywnie. Tzn. korzystać z nich na zasadzie reference guide. Brać kod, który autor przedstawia, tweakować go, stosować w praktyce (bo ja zazwyczaj jak przerabiam jakąś ksiązkę, to od razu staram się wprowadzać nową wiedzę do swoich projektów) i zgłębiać problem co mając podstawową wiedzę podsuniętą przez autora jest łatwiejsze.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
1

Np. komuś kto dopiero zaczyna łatwiej jest zrozumieć gotowiec niż próbować zagłębiać się np. w kod źródłowy frameworku

Dwie sprawy:

1.Dziwne porównanie - kompletnie nietrafione. Po co ktoś miałby się zagłębiać w kod źródłowy frameworku? :| Mówię o pisaniu kodu na własną rękę (np. jakieś DFSy, parsery czy kto co chce - najwyżej przy wsparciu książki), a nie wykorzystywaniu gotowców, bo to nic nie uczy, do czego zmierzam też w drugim punkcie:

2.Wiadomo, że łatwiej jest zrozumieć i wykorzystać gotowiec. Tak samo jak łatwiej jest nie robić zadań z matmy, tylko szukać rozwiązań w internecie. I wtedy faktycznie można czytać i sto książek, a tak naprawdę wciąż albo nie do końca rozumieć to zagadnienie, albo wyłożyć się na podobnym zadaniu "no bo dokładnie takiego nie było" :)


edytowany 1x, ostatnio: Patryk27
AA
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 9 lat
  • Postów:14
0
Patryk27 napisał(a):

Np. komuś kto dopiero zaczyna łatwiej jest zrozumieć gotowiec niż próbować zagłębiać się np. w kod źródłowy frameworku

Dwie sprawy:

1.Dziwne porównanie - kompletnie nietrafione. Po co ktoś miałby się zagłębiać w kod źródłowy frameworku? :| Mówię o pisaniu kodu na własną rękę (np. jakieś DFSy, parsery czy kto co chce - najwyżej przy wsparciu książki), a nie wykorzystywaniu gotowców, bo to nic nie uczy, do czego zmierzam też w drugim punkcie:

2.Wiadomo, że łatwiej jest zrozumieć i wykorzystać gotowiec. Tak samo jak łatwiej jest nie robić zadań z matmy, tylko szukać rozwiązań w internecie. I wtedy faktycznie można czytać i sto książek, a tak naprawdę wciąż albo nie do końca rozumieć to zagadnienie, albo wyłożyć się na podobnym zadaniu "no bo dokładnie takiego nie było" :)

To nie o to chodzi, żeby nie robić nic, ale że jeden Autor wytłumaczy jedno zagadnienie lepiej, inne gorzej.

Na przykładzie matematyki, jeżeli w jednym podręczniku pojecie całki i przykłady są dla mnie niezrozumiałe, to sięgam do innych pomocy, gdzie będzie to wytłumaczone jaśniej. Nie rozumiem, dlaczego mam się trzymać jednego źródła teorii, nawet jeśli jest kiepsko napisane, byle tylko sobie nie pomóc. Im więcej dobrych opracowań o całkach przeczytam, tym lepiej będę przygotowana na samodzielne rozwiązywanie nowych problemów. Wydaje mi się, że w każdym podręczniku przy nowym zagadnieniu są podawane jakies przykłady, więc w sumie o to też można się przyczepić, bo powinna być tylko sucha teoria, a potem rób sam, żeby nie korzystać z jakichś okropnych gotowców....

Porównanie do bezmyślnego przepisywania rozwiązań zadań z matematyki jest moim zdaniem nietrafione, bo pytanie Autora nie brzmiało ,,czy warto kopiować tylko gotowe programy, samemu nic nie tworząc". Raczej nie o to chodziło.

Tak więc ja nie widzę żadnego problemu z korzystaniem z paru podręczników na raz, aczkolwiek preferuję metodę skupienia się na jednym głównym i jeżeli jakieś zagadnienie jest dla mnie naprawdę źle omówione / niezrozumiałe, to wtedy sięgam do innych źródeł.

LL
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:46
0

Polecam Sams Teach Yourself Cpp in One Hour a Day 7 wydanie pokrywające C++11, jest też w wersji PL.

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)