Jak się uczyć i nie zdemotywować?

Jak się uczyć i nie zdemotywować?
K2
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:4
0

Cześć, jestem kompletnie nowy jeśli chodzi o programowanie i przychodze do was z pytaniem.
Aktualnie moja nauka wygląda tak.
Zakupiłem Sololearn i staram się codziennie coś w niego klikać. W pewnych sytuacjach stoje na jakimś temacie i nie jestem go w stanie w 100% zrozumieć co powoduje we mnie wielka frustracje ze nadal jestem tak daleko z tematem, presją są znajomi studenci którzy w sumie to mnie demotywują tym ze mi to wolno idzie.
Myślicie ze lepiej uczyć się w praktyce? Jeśli mam jakieś zadanie z sololearna to szukać rozwiązań na jakichś stronkach? Czy uważać to za oszustwo i starać się robić wszystko z głowy?
Zacząłem robić projekt servera gry który w większości jest oparty na c++, większości nie rozumiem ale moją taktyką jest googlowanie.
Dajcie jakieś rady dla początkującego :x
Zeby zacząć muszę to podstawę mieć wbitą dokładnie na blachę?

edytowany 1x, ostatnio: ktokolwiek23
stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
13

Najlepiej nie zaczynac od C++


λλλ
edytowany 1x, ostatnio: stivens
CZ
  • Rejestracja:ponad 2 lata
  • Ostatnio:5 miesięcy
  • Postów:25
1

Jednym idzie wolniej, drugim szybciej. Są pewnie tematy które złapiesz od razu, a nad innymi się pomęczysz, a jak ktoś Cię demotywuje głupim gadaniem to niech ciągnie kiszkę, nie zwracaj na niego uwagi. Googlowanie według mnie jest ok, bo po co wymyslać koło po raz drugi, chodzi o to żeby zrozumieć to rozwiązanie z neta a nie bezmyślnie przeklejać. Podstawy musisz umieć, reszta zależy od Ciebie - masz zajawkę to sobie kmiń sam grubsze algorytmy albo konkretne rozwiązania po kolei, a jak masz bardzo duży projekt do zrobienia a nie chcesz stracić całego życia to szukaj gotowych rozwiązań.

edytowany 3x, ostatnio: czarnygej
K2
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:4
0
stivens napisał(a):

Najlepiej nie zaczynac od C++

Dlaczego?

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:24 minuty
  • Postów:8398
3
ktokolwiek23 napisał(a):

presją są znajomi studenci którzy w sumie to mnie demotywują tym ze mi to wolno idzie.

Studia to gra złudzeń.

Jakbyś podrążył głębiej, to mogłoby się okazać, że ci studenci wcale nie są tacy hop do przodu, a tylko ci się wydaje, że są lepsi.

Ew. mogą mieć nawet lepsze wyniki, ale dlatego, że mają np. lepszą taktykę (tutaj możliwe, że mniej perfekcjonistyczni, więc idą mocniej nie przejmując się, że nie rozumieją). Tylko, że też trzeba wziąć pod uwagę, że szybsze robienie ćwiczeń na jakiejś tam stronie czy lepsze wyniki na studiach to nie jest to samo, co bycie lepszym w programowaniu.

Jeszcze możliwe, że mają lepszy background (co robili przed studiami) albo więcej czasu spędzają na nauce.

Albo po prostu są lepsi i tyle. Tyle, że tu gra rolę jeszcze motywacja i determinacja. To, że ktoś jest lepszy na studiach, nie oznacza, że będzie lepszy kilka lat po studiach.

większości nie rozumiem ale moją taktyką jest googlowanie.

Witamy w życiu.

Na wyższym etapie po prostu wiesz, gdzie szukać. Ew. nie potrzebujesz już googlować, bo zinternalizowałeś wiedzę.

W pewnych sytuacjach stoje na jakimś temacie i nie jestem go w stanie w 100% zrozumieć co powoduje we mnie wielka frustracje ze nadal jestem tak daleko z tematem

Jak nie rozumiesz, to przesuń się na drugą stronę opozycji teoria-praktyka.

Jeśli czytasz coś w teorii i nie rozumiesz, to postaraj się samemu to napisać (albo zobaczyć konkretny przykład konkretnego kodu, który działa).

I odwrotnie - jeśli masz konkretny kod, którego działania nie rozumiesz, to możesz spróbować rozbić to na części i poczytać coś o każdej funkcji czy koncepcji, żeby zrozumieć to teoretycznie "dlaczego ten kod robi to, co robi".

100% zrozumieć

Toż to eksperci z danego tematu nie osiągają 100% zrozumienia. Zawsze coś pozostanie zagadką czy wątpliwością albo czymś, co się przyjmuje na wiarę. Na pewnym etapie w życiu trzeba zaakceptować, że się robi coś, czego się nie rozumie do końca. A czasem najlepsze, co możesz zrobić, to odłożyć temat (np. jak robisz te zadania, to możesz skipnąć to zadanie i przejść do kolejnego łatwiejszego czy coś).


edytowany 1x, ostatnio: LukeJL
Spearhead
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 2 godziny
  • Postów:1002
2
ktokolwiek23 napisał(a):

Zacząłem robić projekt servera gry który w większości jest oparty na c++, większości nie rozumiem ale moją taktyką jest googlowanie.

Najwyraźniej nie jesteś jeszcze na poziomie by pisać serwery do gier. Na początku to trzeba się przedrzeć przez podstawy pokroju sprawdzania, czy napis jest palindromem czy gra w kółko i krzyżyk w konsoli.

K2
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:4
0
LukeJL napisał(a):
ktokolwiek23 napisał(a):

presją są znajomi studenci którzy w sumie to mnie demotywują tym ze mi to wolno idzie.

Studia to gra złudzeń.

Jakbyś podrążył głębiej, to mogłoby się okazać, że ci studenci wcale nie są tacy hop do przodu, a tylko ci się wydaje, że są lepsi.

Ew. mogą mieć nawet lepsze wyniki, ale dlatego, że mają np. lepszą taktykę (tutaj możliwe, że mniej perfekcjonistyczni, więc idą mocniej nie przejmując się, że nie rozumieją). Tylko, że też trzeba wziąć pod uwagę, że szybsze robienie ćwiczeń na jakiejś tam stronie czy lepsze wyniki na studiach to nie jest to samo, co bycie lepszym w programowaniu.

Jeszcze możliwe, że mają lepszy background (co robili przed studiami) albo więcej czasu spędzają na nauce.

Albo po prostu są lepsi i tyle. Tyle, że tu gra rolę jeszcze motywacja i determinacja. To, że ktoś jest lepszy na studiach, nie oznacza, że będzie lepszy kilka lat po studiach.

większości nie rozumiem ale moją taktyką jest googlowanie.

Witamy w życiu.

Na wyższym etapie po prostu wiesz, gdzie szukać. Ew. nie potrzebujesz już googlować, bo zinternalizowałeś wiedzę.

W pewnych sytuacjach stoje na jakimś temacie i nie jestem go w stanie w 100% zrozumieć co powoduje we mnie wielka frustracje ze nadal jestem tak daleko z tematem

Jak nie rozumiesz, to przesuń się na drugą stronę opozycji teoria-praktyka.

Jeśli czytasz coś w teorii i nie rozumiesz, to postaraj się samemu to napisać (albo zobaczyć konkretny przykład konkretnego kodu, który działa).

I odwrotnie - jeśli masz konkretny kod, którego działania nie rozumiesz, to możesz spróbować rozbić to na części i poczytać coś o każdej funkcji czy koncepcji, żeby zrozumieć to teoretycznie "dlaczego ten kod robi to, co robi".

100% zrozumieć

Toż to eksperci z danego tematu nie osiągają 100% zrozumienia. Zawsze coś pozostanie zagadką czy wątpliwością albo czymś, co się przyjmuje na wiarę. Na pewnym etapie w życiu trzeba zaakceptować, że się robi coś, czego się nie rozumie do końca. A czasem najlepsze, co możesz zrobić, to odłożyć temat (np. jak robisz te zadania, to możesz skipnąć to zadanie i przejść do kolejnego łatwiejszego czy coś).

bardzo dziękuje za tak treściwą wypowiedź :)

stivens
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 5 godzin
4
ktokolwiek23 napisał(a):
stivens napisał(a):

Najlepiej nie zaczynac od C++

Dlaczego?

Bo to jeden z gorszych jezykow dla poczatkujacych. Trudny, z rozdmuchana skladnia i recznym zarzadzaniem pamiecia, rzeczami dorzucanymi do niego przez dziesiat lat - czasami bez ladu i skladu, z archaizmami odziedziczonymi po C albo zwyczajnie wstecznie kompatybilnymi z wymyslami z lat 80. A w praktyce wiekszosc programistow i tak nie bedzie mialo nic wspolnego z domena, w ktorej zyje C++. A nawet jesli bedzie mialo to zarzadzania pamiecia mozna sie juz nauczyc jak sie zna podstawy.

Nie zaczyna sie nauki matematyki od calek


λλλ
edytowany 7x, ostatnio: stivens
K2
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:4
0
stivens napisał(a):
ktokolwiek23 napisał(a):
stivens napisał(a):

Najlepiej nie zaczynac od C++

Dlaczego?

Bo to jeden z gorszych jezykow dla poczatkujacych. Trudny, z rozdmuchana skladnia i recznym zarzadzaniem pamiecia, rzeczami dorzucanymi do niego przez dziesiat lat - czasami bez ladu i skladu, z archaizmami odziedziczonymi po C albo zwyczajnie wstecznie kompatybilnymi z wymyslami z lat 80. A w praktyce wiekszosc programistow i tak nie bedzie mialo nic wspolnego z domena, w ktorej zyje C++.

Z racji iż jestem mocno początkującym spróbuje jeszcze pythona. Bardzo dziękuje za opinie :)

edytowany 1x, ostatnio: ktokolwiek23
KS
  • Rejestracja:prawie 4 lata
  • Ostatnio:6 dni
  • Postów:581
2

My się wydaje, ze dopóki jesteś systematyczny to będzie ok, nie przejmuj się za bardzo innymi. Wraz z doświadczeniem nauczysz się lepiej ogarniać tematy. Poza tym tak jest ze wszystkim. Trochę dam przykład nie z programowania ale.

Np. ja przeczytałem 5 Książek do materiałoznawstwa, aby pogłębić wiedzę w tym kierunku. Przy pierwszej wszystko wyadało mi się zagmatwane i odniosłem wrażenie, że nieomal nic nie wyciągnąłem z tej książki ( fakt byłą kapkę niskich lotów ).
Potem czytałem już bardziej zaawansowaną literaturę, miałem też już jakąś wiedzę praktyczną i nie dość, że lepiej mi wchodziło to więcej rozumiałem. "Kropki się łączyły"
Także czasami wystarczy, ze zapamiętasz, ze o tutaj jest coś nie halo ale nie ogarniam co i przyjdzie czas, że się skrystalizuje w głowie.
Oczywiście powtarzam, trzeba systematycznie pracować.

edytowany 1x, ostatnio: ksh
LukeJL
dokładnie, niektóre rzeczy rozumie się tak, że najpierw trzeba mieć input, który nie do końca się rozumie, a potem jak wystarczająco dużo jest inputu, to nagle się okazuje, że człowiekowi się układa wszystko w głowie, co i jak. Niektóre rzeczy trzeba zrozumieć najpierw w całości po to, żeby móc zrozumieć szczegóły i odwrotnie. Koło hermeneutyczne https://pl.wikipedia.org/wiki/Ko%C5%82o_hermeneutyczne
TheWypierdzisty
TheWypierdzisty
  • Rejestracja:prawie 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:43
1

Kompletnie nudne rzeczy robisz to zawsze się wypalisz.

C++ to tylko język, ale przydatny.
Żeby się nie wypalić powinieneś robić coś ciekawego to co ci podpowiada wyobraźnia.

Ciekawe miejsca to kernel windowsa i linuksa, umiesz manipulować syscallami? ukryć swój proces albo plik żeby żadna aplikacja w systemie tego nie znalazła.
Dobrać się do dowolnego pakietu wysyłanego z każdej aplikacji i np. je przefiltrować.

Ukraść samochód, otworzyć okno, przechwycić i wstrzyknąć kod immobilizera.

Zcrackować każdy program i każdy zrozumieć, każdy ma się podporządkować.

Ciekawe jest umieć znaleźć to o czym się myśli, przykładowo klikam coś myszką i chcę widzieć od razu kod tej funkcjonalności, która za to odpowiada.
Zwykle jest tego trochę, ale warunki logiczne można takie ustalić, że tylko ta funkcja programu, która to robi się znajdzie nic innego i wtedy się zaczyna tango bo jeśli znajdziesz taki kod w kernelu lub innej aplikacji to masz jej adres możesz hooknąć, zrzutować na wskaźnik na funkcję i wywołać robisz co chcesz zabawa rośnie im więcej jej doświadczysz, większa wiedza więcej pomysłów, więcej zabawy.

T3
  • Rejestracja:ponad 4 lata
  • Ostatnio:6 miesięcy
  • Postów:687
0

Nie da się przeskoczyć takich nudnych podstaw chociażby z samej składni języka, ale jak już przez to przebrniesz, to zacznij pisać rzeczy, które cię interesują. Sam język to już drugorzędną sprawa. Jeśli znajdziesz działkę, projekt (najlepiej nie porywać się od razu na coś dużego i skomplikowanego, na początek to może być nawet mały wycinek czegoś większego) z jakimś sensownym tutorialem, to ucz się z nim, od razu będziesz wiedział, do czego to dąży i będzie łatwiej o motywację przy widocznych efektach

UJ
  • Rejestracja:około 2 lata
  • Ostatnio:4 miesiące
  • Postów:72
0

Chyba najlepszą i najskuteczniejszą metodą pokonania chwilowego zdemotywowania jest po prostu pasjonować się danym tematem.
W tym przypadku działką IT pod tytułem "programowanie". Dlaczego? Ponieważ po chwilowej możliwej demotywacji i tak zwykle pasja i chęć bycia jeszcze lepszym bierze górę nad demotywacją.

A motywacje typu:

  • "bo łatwa i duża kasa" (nie narobię się a i tak będę ustawiony do końca życia)
  • "a bo rodzice kazali zająć się kumputerami" (projekcja oczekiwań rodziców na swoje dzieci)
  • "a bo byłem po ogólniaku i nie miałem zawodu więc poszedłem na studia IT" (nic mnie nie interesuje i nic nie umiem ale może odnajdę się w IT)
  • "kumpel poszedł na butkamp i teraz zarabia kokosy" (zazdrość)

to chyba najkrótsza droga do szybkiej i często nawracającej demotywacji.

Z porad udzielonych do tej pory proponuję przyjrzeć się temu co napisał: @TheWypierdzisty i pomyśleć nad tym w kontekście, który opisałem tutaj w tym poście.

:)

edytowany 2x, ostatnio: userek_jakis
UJ
Ej co jest? Celowo napisałem "p.o.s.z.ł.e.m." w poście a portal poprawił mi to na "poszedłem". Jak tak można? :)
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)