Defekt sposobu nauki C++

0

Witam, mam 14 lat i od 3 miesięcy uczę się programować w języku C++. Wiedzę biorę głównie z kursów na YT i książki "Symfonia C++ standard" Jerzego Grębosza. Kiedy oglądam kursy, albo czytam książkę to robię przykłady tam zamieszczone w swoim kompilatorze żeby to lepiej zrozumieć i zwiększyć swoje umiejętności, wydaję mi się wtedy, że wszystko rozumiem i nie mam z tym problemów, ale jak próbuję zrobić jakieś zadanie sam, to kompletnie nie ogarniam co mam robić. Byłbym bardzo wdzięczny gdyby ktoś doradził mi w jaki sposób się uczyć i lepiej zrozumieć język C++. Pozdrawiam.

2

Jest tysiące takich tematów na forum ale odpowiem.

Zapamiętaj kilka rzeczy:

  • teoria to nie wszystko,
  • praktykuj jak najwięcej - nawet dobrze jest zacząć jakiś projekt (pkt. niżej) zacząć pisać i szukać rozwiązań w Internecie,
  • nie wychodź z motyką na słońce,
  • dokumentacja to nie zło,
  • więcej materiałów jest w języku Angielskim.

Jak mi przyjdzie coś jeszcze do głowy to dopisze ;)
Zapoznaj się z definicją słowa 'witam' ;p

2

Język to tylko narzędzie - Twoim problem jest brak zrozumienia problemu czy niemożliwość przeniesienia tego, co masz w głowie, na C++?

0
Patryk27 napisał(a):

Język to tylko narzędzie - Twoim problem jest brak zrozumienia problemu czy niemożliwość przeniesienia tego, co masz w głowie, na C++?

Obawiam się, że obydwa wyżej wymienione problemy mnie dotyczą.

0
Trebuh napisał(a):

Jest tysiące takich tematów na forum ale odpowiem.

Zapamiętaj kilka rzeczy:

  • teoria to nie wszystko,
  • praktykuj jak najwięcej - nawet dobrze jest zacząć jakiś projekt (pkt. niżej) zacząć pisać i szukać rozwiązań w Internecie,
  • nie wychodź z motyką na słońce,
  • dokumentacja to nie zło,
  • więcej materiałów jest w języku Angielskim.

Jak mi przyjdzie coś jeszcze do głowy to dopisze ;)
Zapoznaj się z definicją słowa 'witam' ;p

Właśnie chciałbym praktykować jak najwięcej, ale jak widzę treść jakiegoś zadania to kompletnie nie wiem jak mam to zrobić.

0

Najprościej - narysuj sobie schemat blokowy, a następnie stwórz z tego program.

0
kaczus napisał(a):

Najprościej - narysuj sobie schemat blokowy, a następnie stwórz z tego program.

Dziękuję, pomogłeś. :)

4
Krzywy Młot napisał(a):

(...) Byłbym bardzo wdzięczny gdyby ktoś doradził mi w jaki sposób się uczyć i lepiej zrozumieć język C++. Pozdrawiam.

Prosta odpowiedź: nie da się zrozumieć C++. Pozdrawiam.

Bardziej skomplikowana odpowiedź: zastanów się jaki program (np. grę) zawsze chciałeś napisać, uprość wymagania tego programu (podziel je przez 1 trylion) i zacznij pisać. W trakcie pisania napotkasz na problemy, o których wcześniej w ogóle nie słyszałeś/nie wiedziałeś, że istnieją. Nie ważne czy projekt dokończysz czy nie, skill na pewno urośnie.

0
satirev napisał(a):
Krzywy Młot napisał(a):

(...) Byłbym bardzo wdzięczny gdyby ktoś doradził mi w jaki sposób się uczyć i lepiej zrozumieć język C++. Pozdrawiam.

Prosta odpowiedź: nie da się zrozumieć C++. Pozdrawiam.

Bardziej skomplikowana odpowiedź: zastanów się jaki program (np. grę) zawsze chciałeś napisać, uprość wymagania tego programu (podziel je przez 1 trylion) i zacznij pisać. W trakcie pisania napotkasz na problemy, o których wcześniej w ogóle nie słyszałeś/nie wiedziałeś, że istnieją. Nie ważne czy projekt dokończysz czy nie, skill na pewno urośnie.

Chyba jestem jeszcze za słaby, aby takie coś miało sens, ale dzięki w przyszłości tak zrobię

2

Nie jesteś, programowania nauczysz się przez programowanie czegoś swojego, nie ważne że projekt zakończy swoje życie w połowie (jak większość naszych projektów :D).

0

<quote="1134932">Nie jesteś, programowania nauczysz się przez programowanie czegoś swojego, nie ważne że projekt zakończy swoje życie w połowie (jak większość naszych projektów :

To może od razu napisze system operacyjny :D

0

To nie jest taki głupi pomysł z tym osdevem, lecz porywasz się z motyką na słońce.
Po kolei, niech ma to jakiś sens.

0

Myślę, że przydałoby Ci się poczytać nie tyle o C++, co ogólnie o programowaniu - mianowicie jak przejść od założeń co program ma robić do jego struktury (pseudo-kod, flowchart). Dopiero mając rozpisane co ma się dziać po kolei w programie bierz się za implementację. Jeśli już w C lub C++, to przychodzą mi na myśl dwie książki:
"Myśl jak programista. Techniki kreatywnego rozwiązywania problemów" http://helion.pl/ksiazki/mysl-jak-programista-techniki-kreatywnego-rozwiazywania-problemow-v-anton-spraul,myprog.htm#opis
"Lekcja programowania. Najlepsze praktyki" Brian W. Kernighan, Rob Pike
Nie przejmuj się komentarzami typu "programowanie nie jest dla ciebie, bo masz 14 lat i nie ogarniasz pętli, ja pisałem programy jak miałem 8 lat". Sam miałem kilka nieudanych podejść do programowania jako nastolatek.

0

Programuję niedługo - dopiero od jakiś 4-5 miesięcy. Też miałem poczucie, ze "teoretycznie umiem, praktycznie już nie". Moja rada: pisz jakieś proste programy dotyczące tego, co się dzisiaj nauczyłeś (nawet, jeśli musisz co chwilę zaglądać do jakiś pomocy naukowych ;) ). Po jakimś czasie (czasami może to trwać nawet ponad miesiąc!) wszystko w jakiś magiczny sposób staje się dla nas proste ;) Także nie martw się, pisz proste programy (na spoj przykładowo), ucz się podstaw a wszystko się jakoś naprostuje ;)

0

mam 14 lat i programowanie jakoś mi idzie nie licząc ustawień kompilatora bo to jest złe :)
moim zdaniem najlepszy sposób na naukę to przeglądanie kursów a potem sprawdzanie co robią nieznane polecenia z kursu żeby wiedzieć jakie są do nich argumenty, co robią jakie typy zwracają. W ten sposób można przerobić kod z kursu na własny w miarę prosty sposób. Kolejną metodą jest szukanie poleceń które są pomocne, dokładnie czytam opis i dodaję do programu, jednak nie jest to takie proste jak powinno...

0

Najważniejsze to na tym etapie nie skupiać się na języku tylko na zadaniach.
Czyli cel powinien być związany np. z jakimiś obliczeniami a nie językiem w jakim je ma się wykonać.

Język po prostu nie powinien przeszkadzać. Na C++ się nie skupiaj, bo jest kilka fajniejszych języków do nauki - jak już będziesz na etapie nauki jakiegoś konkretnego języka.
Póki co rób symulacje, wizualizacje, aplikacje, bez specjalnego wgłębiania się w składnię (o ile nie chcesz się wypalić).

Po kilku latach, jak poznasz kilka języków i stwierdzisz że jednak C++ Ci najbardziej pasował, wróć do niego i go zgłębiaj. W moim profilu jest lista zagadnień (w tym książek) do ogarnięcia w tym temacie.

1

ucz się angielskiego, wejdź np. na chaty tematyczne irca na freenode, irc.freenode.net kanały #c++ #c++-general jest jeszcze chyba #c++-beginners, po 1 wszyscy nawijają po angielsku, po 2 jest tam wiele ludzi, którzy piszą kompilatory, pracują dla googla, facebooka czy microsoftu, nieoceniona kopalnia wiedzy, i non stop się o coś kłócą, języka technicznego nauczyłbyś się w rok i przy okazji nauczyłbyś się mnóstwo nowych dla Ciebie zagadnień w c++

0
vpiotr napisał(a):

Najważniejsze to na tym etapie nie skupiać się na języku tylko na zadaniach.
Czyli cel powinien być związany np. z jakimiś obliczeniami a nie językiem w jakim je ma się wykonać.

Język po prostu nie powinien przeszkadzać. Na C++ się nie skupiaj, bo jest kilka fajniejszych języków do nauki - jak już będziesz na etapie nauki jakiegoś konkretnego języka.
Póki co rób symulacje, wizualizacje, aplikacje, bez specjalnego wgłębiania się w składnię (o ile nie chcesz się wypalić).

Po kilku latach, jak poznasz kilka języków i stwierdzisz że jednak C++ Ci najbardziej pasował, wróć do niego i go zgłębiaj. W moim profilu jest lista zagadnień (w tym książek) do ogarnięcia w tym temacie.

A możesz podać te fajniejsze języki do nauki? :)

1

python

0
Krzywy Młot napisał(a):

A możesz podać te fajniejsze języki do nauki? :)

To zależy kto czym się interesuje.

Sprzęt, sterowniki mikro-kontrolery: assembler, C (bez klas)
Wizualizacje: JavaScript, Python
Finanse: Java, Scala, Python, Pascal, C#
Programowanie równoległe: Erlang, Scala
Programowanie naukowe: Java, Python
Programowanie systemowe: Rust
Webdev: Python, JavaScript, Hack, Dart, Closure, CoffeScript, Groovy...
Data mining: Python, Java
Gry: to bardzo zależy od środowiska, najprościej zacząć od Java (jMonkeyEngine), Python (PyGame), Scratch, JavaScript (Quintus) itd

0
fasadin napisał(a):

python

A są jakieś ważne przesłanki co do tego? Ktokolwiek z młodych kto wybrał sobie C++ do nauki, kierując się nie wiadomo czym musi mieć świadomość tego że jest to jeden z najtrudniejszych języków programowania, trudny do nauki a pisanie aplikacji przy użyciu co niektórych narzędzi i kompilatorów to najpewniej droga przez mękę. Ten język faktycznie może skutecznie zniechęcać, co więcej jest też taka opcja, że ten kto go wymyślił zdawał sobie pewnie sprawę, że ze względu na stosunkowo wysoki próg wejścia nie powinno być za wielu programistów.

Proszę zauważyć, że nasze uczelnie jakimś dziwnym trafem nie stawiają na języki typowane dynamicznie, jak python czy ruby, tylko na języki kompilowane, statycznie typowane. Ciekawe dlaczego???

Dużo prostszy od C++ powinien być już pascal, o którym niestety u nas praktycznie się nie mówi, co więcej nawet co niektóre IDE nie mają nawet podświetlenia składni. Co jeszcze bardziej ciekawe, ileś tam lat temu można było również spotkać tych co wychwalali pod niebiosa właśnie C++ (i Linuxa). Wiem że teraz to nawet na uczelniach studenci też coś tam mają z Free Pascala i Lazarusa, tylko ciekawe ile to jest zajęć?

Co do wyboru (na co się nastawić), też można mieć niezły mętlik w głowie. Pythona można się uczyć jak się stawia za cel tworzenie choćby aplikacji web w DJANGO, jak również aplikacji desktopowych, także do jakichś aplikacji naukowych, tylko że u nas to można mieć wrażenie, że jest to język tylko do webu.

Biorąc pod uwagę realne perspektywy, stawiałbym tu na C#, JAVA albo PHP, JS.

0

Trochę (przynajmniej w teorii) poznałem obiektowego C++ i postanowiłem przerzucić się na php. Żeby nie tworzyć nowego tematu, spytam tutaj. Jakie polecacie książki lub kursy dostępne w internecie z php? Czy żeby tworzyć aplikacje internetowe będę musiał poznać HTML'a? W jakim stopniu php ma podobną składnię do C++?

ps. Dziękuję za wszystkie rady, naprawdę mi pomogły i w końcu w miarę ogarniam tego C++ w praktyce, ale mimo to chyba wolę programowanie web'owe.

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