Uczenie się Javy i ćwiczenia

0

Cześć wszystkim, zacząłem uczyc się javy od kompletnych podstaw. Wiedzę czerpie z kursu na Udemy i wszystko jest tam dobrze wytłumaczone ale jak dla mnie kurs zawiera troche za mało praktycznych zastosowań danych zagadnień i troche za mało ćwiczeń. Przykładowo takie podstawy jak zmienne itp ćwiczyłem sobie sam. Brałem jakiś dokument i starałem się go odwzorować w programie ale obliczenia, zastosowania operatorów, instrukcje warunkowe wolałbym mieć jakieś zadania do których sam muszę podejść i ewentualnie później sprawdzić rozwiązanie. A może to ja popełniam błąd w nauce? Czy najpierw trzeba poznac bardzo podstawowa teorie i później rożnego rodzaju przykłady i zastosowania tego? Prosiłbym o pomoc jak wy do tego podeszliście.

2
Daniellon17 axb napisał(a):

Czy najpierw trzeba poznac bardzo podstawowa teorie i później rożnego rodzaju przykłady i zastosowania tego? Prosiłbym o pomoc jak wy do tego podeszliście.

IMHO Najlepiej napisać jeden większy projekt a potem wrzucić tu do oceny

1

Jeżeli nie masz pomysłu na własny projekt to zawsze możesz skorzystać ze stron www, które oferują ćwiczenia w praktycznie każdym języku. Chociaż osobiście zdecydowanie bym polecał znalezienie własnego pomysłu (ważne jednak aby mierzyć siły na zamiary) - najlepiej coś co Tobie się przyda i nie ważne, że już takie narzędzie istnieje. Daje to dużą satysfakcję i motywacje na dalsze działanie. Pisząc coś bardziej złożonego będziesz napotykał problemy, które nauczą Cię wiele, zostaną w głowie i w przyszłości gdy podobny problem znów się pojawi będziesz miał w rękawie rozwiązanie.

Co do teorii i praktyki musisz znaleźć swój balans, ale uważam, że praktyki musi być zdecydowanie więcej niż teorii.

0

Wiesz od czego ja zaczynałem? Od narysowania kwadratu w programie (to był jeszcze dos i uruchamianie ręczne trybu graficznego) i sterowanie nim za pomocą klawiatury. A potem to już baza danych podpięta pod interfejs użytkownika (takie coś jak Norton Commander). W C i C++. I bardzo dogłębne analizowanie przykładów z helpa borlanda. Widzisz gdzieś w tym teorię?

1

@Daniellon17 axb,

gdyby w świecie programistów mogła istnieć jakaś bogini to z całą pewnością byłaby nią: frustracja. To ona daje najwięcej do myślenia i co ważne to ona pomaga wpłynąć na zmianę perspektywy. Tak jak Alan Key określił, zmiana perspektywy jest warta +80 IQ. Liczy się wyłącznie to co jesteś w stanie dostrzec, reszta jest marginalna.

Jeśli będziesz próbował się od tego odciąć od frustracji szukając w książkach metody na dowolne problemy jakie wyręczą Cię z myślenia to będziesz wiele lat stał w miejscu. Te materiały nie uczą myślenia, lecz skupiają się na zaprezentowaniu narzędzia i niestety tylko od tej dobrej strony. Najgorszą rzecz jaką mogą te materiały dla Ciebie zrobić to przedstawienie jakiegoś szablonu wedle którego masz dalej robić rozwiązanie. To jest najgorsza opcja, bo odłącza Twój mózg od myślenia, zmyka Cię w jednym dość szczelnym schemacie, i w efekcie utrudnia zrozumienie szeregu wielu rzeczy jakie na siebie wzajemnie wpływają podczas rozwiązywania problemów. Byle głupiec da się prowadzić za pomocą szablonu.

Frustracja mówi Ci co jest problematyczne. Warto tą rzecz wziąć pod lupę. Zidentyfikować problem jaki dokucza w pracy. Ocenić z czego się wziął, czy można go zamienić na coś innego. Jakie są plusy / minusy, a jeśli poczujesz się wyczerpany zostaw temat na inny dzień bądź wróć do sprawy, gdy będziesz miał więcej informacji.

Dodatkowo zamiast mówić Ci co możesz zrobić, aby zmniejszyć frustrację, lepiej byś się dowiedział co możesz zrobić, by ją podkręcić na wyższy poziom:

  1. Zacznij pisać tak, aby w kodzie stosować wyłącznie to co niezbędne, niby proste, ale większość rzeczy w IT to coś w rodzaju "polepszaczy". Niby dają kopa, ale w efekcie tylko utrudniają zrozumienie i przeciwdziałanie złym skutkom. Jak chcesz być dobry to idź w odwrotnym kierunku i poświęć trochę czasu na eliminowanie złożoności przy przerośniętych rozwiązaniach. Ten krok prowadzi do zrozumienia środków jakimi dysponujesz. Bądź tutaj trochę jak kucharz, czy malarz, który jak już coś dodaje to w jasnym i konkretnym celu. Eliminując złożoność szybciej zrozumiesz jakim celom odpowiadają poszczególne środki, masz nad tym większą kontrolę i co ważne stokroć łatwiej jest tak odpowiadać na awaryjne sytuacje.

  2. Zacznij pomagać innym osobom bądź pisz np. na blogu o programowaniu. Zobaczysz niejednokrotnie, że mimo dobrych intencji nie będziesz potrafisz objąć tematu / problemu w słowa i problemem nie jest bycie słabym w humanistycznych przedmiotach (to dobra wymówka swoją drogą), lecz fakt, że jeszcze wiele rzeczy nie widzisz i tym bardziej trudno o tym jakoś jasno się wyrażać. Opisuj te rzeczy jakie dały Ci do myślenia, pozwól im leżakować, niech dojrzewają, a będą lepsze. Jeśli masz problem z publicznymi notatkami (ja ich nie lubię, bo mi blokują mi głębsze rozkminy) to pisz w notatniku i wracaj do nich co jakiś czas.

  3. Oczywiście skok w większe projekty też jest na miejscu, ale rozmiar projektów lepiej dobierać stopniowo. Mniejsze projekty dają więcej szans na odkręcenie złego ruchu.

0
johnny_Be_good napisał(a):

Wiesz od czego ja zaczynałem? ... Widzisz gdzieś w tym teorię?

To widać.

0

są takie stronki jak LeetCode czy inne, gdzie można poćwiczyć. Takie coś często czasem się określa code kata. Możesz szukać tez pod code excercises itp.

Tylko o ile nic nie ma złego w ćwiczeniach, to jeśli to jest jedyny sposób nauki, to się oddalasz od praktyki. Programowanie to budowanie. Programiści nie uczą się najwiecej na ćwiczeniach, tylko na realnych projektach.

A może to ja popełniam błąd w nauce? Czy najpierw trzeba poznac bardzo podstawowa teorie

Trzeba po prostu umieć robić coś ze świadomością, że jesteś w tym słaby i ciagle ci się coś nie udaje i wszystko musisz sprawdzać albo robisz źle. To nie jest tak, że nauczysz się prawidłowego programowania z ćwiczeń i nagle zaczniesz pisać większe programy dobrze jeśli wcześniej nie pisałeś nic poza ćwiczeniami. Programowanie to rozwiązywanie problemów, więc potrzebujesz mieć kontakt z tymi problemami i uczyć się je rozwiązywać (a nie tylko pisać kod wg schematu).

Trzeba powoli się oswajać z programowaniem ( np. Zaczynać od jakichś mniejszych projektów) ale jednak zacząć robić to samodzielnie.

0

Jeżeli uczysz się od zera i jest to twój pierwszy język programowania, to polecam zacząć od podstaw, czyli prostych algo w Java: https://adventofcode.com/2022/events kilkaset ćwiczeń, które pozwolą ogarnąć myślenie algorytmiczne, instrukcje sterowania przepływem, zmienne itd. Do tego jakiś podręcznik do Java + analiza tego co zrobili inni (sporo jest na githubach).

0

@Daniellon17 axb:
aż dziwi mnie to, że nikt Ci nie polecił:
https://hyperskill.org/tracks/8?category=2

Multum ludzi z tego teraz korzysta. Na bieżąco omawiana teoria + zadania praktyczne. Warto to przerobić. Są też kursy bardziej doświadczone. Generalnie na reddicie są reflinki że masz 3 miesiące za darmo.

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