Początki nauki C++ – co warto wiedzieć?

Początki nauki C++ – co warto wiedzieć?

Wątek przeniesiony 2018-03-29 14:21 z Nietuzinkowe tematy przez kq.

KR
  • Rejestracja:około 7 lat
  • Ostatnio:ponad 2 lata
  • Postów:18
0

Witam!

Za jakieś 2 miesiące zaczynam kurs C++. Co prawda jest on dla początkujących, aczkolwiek dobrze by było mieć już jakąś wiedzę na ten temat.

Także przychodzę z pytaniami:

  • co warto przyswoić na początku? co warto wiedzieć?
  • podstawowe komendy
  • może jakieś ćwiczenia do wykonania na początek
  • ogólne materiały

Z góry dziękuję :D

edytowany 1x, ostatnio: flowCRANE
szweszwe
  • Rejestracja:ponad 11 lat
  • Ostatnio:2 dni
  • Lokalizacja:Kraków
  • Postów:1694
0
cerrato
Moderator Kariera
  • Rejestracja:około 7 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Poznań
  • Postów:8766
0

Jest taka genialna książka "Symfonia C++" Jerzego Grębosza. Pozycja ma już dobre kilkanaście lat (jak nie więcej - nie chce mi się teraz sprawdzać) więc mimo faktu, że była (może jest nadal) wykorzystywana na wielu uczelniach jako podręcznik - obecnie jest trochę nieaktualna.
Ale bardzo niedawno (koniec 2017 albo początek 2018) pojawiła się nowość - koleje wydanie: https://helion.pl/ksiazki/opus-magnum-c-11-programowanie-w-jezyku-c-komplet-jerzy-grebosz,ocpp11.htm#format/d

Jest to super pozycja do nauki samodzielnej, przydaje się także jako "koło ratunkowe" - wiele razy będziesz do niej zaglądać. Oczywiście - to wszystko można (pytanie jeszcze - w jakiej postaci) znaleźć w necie, ale ja akurat jestem takim typem, który lubi posiadać porządną książkę, do której można zawsze zajrzeć w razie potrzeby. A ta jest bardzo rozbudowana. Sam spis treści ma ok. 20 stron (https://pdf.helion.pl/ocpp11/ocpp11.pdf), a książka 1600. No i jeszcze ważny jest język, w jakim jest ona pisana oraz sposób podejścia do czytelnika. Sam autor pisze, że są dwa rodzaje pisania: 1) zobacz, jaki jestem mądry oraz 2) zobacz, jakie to jest proste. Na szczęście Grębosz wybiera opcję numer 2 i zgodnie z nią idzie wraz z czytelnikiem przez kolejne strony :)


edytowany 1x, ostatnio: cerrato
nalik
Symfonia genialna? o nie ;/
cerrato
A czemu? Moim zdaniem to najlepszy (albo przynajmniej ścisła czołówka) w zakresie programowania, z jakim się zetknąłem. Przede wszystkim - pisany bez spinania się, z głównym założeniem takim, żeby w jasny, prosty i bezbolesny sposób wprowadzić czytelnika (nawet totalnie początkującego) w temat.
nalik
Przegadana, za dużo tekstu w stosunku co do konkretnej wiedzy.
cerrato
Zobacz na to, co napisałem powyżej - nie jest to takie stricte kompedium, ale książka do samodzielnej nauki. I tak musisz na nią patrzeć. Oczywiście - są książki pisane "sztywno" i nie twierdzę, że one są złe (a dla zawodowców - lepszy jest suchy opis, niż anegdoty), ale dla osoby zielonej taka "oficjalna" książka może nie trafić, nie być dobrą podstawą do uczenia się. Popatrz chociażby na 2 link z mojego postu - masz przykładowy rozdział. Osoba totalnie początkująca powinna docenić przykład z podlewaniem kwiatków u przyjaciela, ilustrujący mechanizm zaprzyjaźnień w C++
nalik
Rozumiem, że ktoś lubi takie przykłady. Ale dla mnie nauka programowania na kotkach, kotkach, pieskach i kółkach to słaba opcje. Potem ktoś nie ogarnie OOP.
Shalom
Symfonia jest ok, jeśli ktoś miał 0 stycznosci z programowaniem.
nalik
Pamiętam, że na 1 roku studiów jako zielony miałem ten dylemat. Wybrałem thinking in c++ (w obecnym momencie pozycja zbyt stara), symfonii nie mogłem zdzierżyć.
cerrato
@Shalom: dokładnie o to mi chodzi (co zresztą parę razy napisałem) - to jest książka dla początkujących, typowo do nauki od podstaw. I jako taka wspaniale się sprawdza. Aczkolwiek - jest na tyle obszerna, że wcale osoby bardziej zaawansowane nie muszą się wstydzić tego, że do niej zajrzały ;)
nalik
Bez przesady, jak ktoś jest początkujący to Symfonia nie jest jedyną możliwą drogą. Poza tym nie każdy lubi taki słowotok o niczym.
cerrato
Ten "słowotok o niczym" to jest Twoje zdanie. Wg. mnie jest to bardzo wartościowa książka potrafiąca wprowadzić osobę totalnie bez styczności z programowaniem w zagadnienia C++. Przy czym nie jest to podręcznik programowania - tego prawie tam nie ma (algorytmów, wzorców, zapoznania ze środowiskiem/IDE itp.), ale za to masz (w sposób, który może Ci się nie podobać - dla mnie jest OK) wyjaśniony prawie każdy aspekt języka - od podstaw do tematów mocno zaawansowanych
KR
patrząc po spisie Symfonii, zakładam, że trzeba poświęcić nad nią dobre pól roku :(
cerrato
@nalik: I taka prośba - zakończmy to, ok? Bo pisanie w kółko, że Twoim zdaniem książka jest do d**y, a moim że jest bardzo fajna już chyba dalej nie ma sensu. Każdy z nas napisał co myśli i proponuję tego nie ciągnąć, bo raczej niczego sensownego do tematu już nie wniesiemy ;)
cerrato
@Kriselel: Powiem więcej - żeby to w pełni ogarnąć i umieć się sprawnie posługiwać tym wszystkim, co oferuje C++ to raczej bym powiedział, że parę lat. Ale na razie mówimy o podstawach, prawda? Tak samo jak z jazdą autem - zanim pójdziesz na tor się ścigać, to najpierw ćwiczysz na placu manewrowym. Więc duża część z tych rzeczy, które są w spisie jest totalnie nie dla początkujących. Najpierw ogarnij podstawy, a potem idź w bardziej zaawansowane zagadnienia, inaczej poczujesz się przygnieciony tym wszystkim i szybko możesz się zniechęcić.
grzesiek51114
grzesiek51114
Kiedy uczyłem się programować to Symfonia była dla mnie super. Ubóstwiałem tę książkę, ponieważ wyjaśniła mi, jak przysłowiowej krowie na rowie, gros zagadnień, których w ogóle nie rozumiałem. Do dzisiaj mam dwa wydania na półce, jedno w miękkiej, a drugie w twardej oprawie. Razem z Thinking in C++ stanowiła jakieś 10 lat temu cudowne źródło informacji. A dzisiaj? Podobno są dużo lepsze pozycje.
KR
@cerrato: zgodzę się z tobą, z resztą jeżeli pamiętasz co pisałem to wiesz, że mi od początku chodzi o podstawy
grzesiek51114
grzesiek51114
@cerrato: właśnie to przegadanie mi się podobało, bo wprowadzało dla mnie taki fajny balans między ścisłą wiedzę, a całą resztę. Cóż... wiedzę na temat choćby takich wskaźników posiadłem dopiero czytając Symfonię. Wcześniej w ogole tego nie rozumiałem.
cerrato
@grzesiek51114: Fajnie, że mamy podobne podejście do tematu :)
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)