Cześć. Jak jeden z wielu szukam szczęści w programowaniu. Postanowiłem, że pierwszym językiem będzie Java.
Pierwszy problem. Pchasz się jak prawie wszyscy szukający szczęścia w Javę - a tam zamiast szczęścia możesz znaleźć najwyżej ogonek kolejki oczekujących na pasjonującą pracę Java deva utrzymującego jakiś crap z pierwszej dekady XXI wieku.
Nauka idzie chyba ok. Same funkcje w javie i jej możliwości są dla mnie zrozumiałe. Obecnie stanąłem w kropce. Uczę się tej Javy z kursu na udemy przerabiam temat po temacie tylko co z tego jak nawet nie wiem czy dany temat będzie mi potrzebny ? Jaki zakres powinienem przerobić, żeby zacząć cokolwiek pisać? Przerobiłem obiektowe programowanie, polimorfizm, tablice teraz uczę się kolekcji no ale to ciągle klepie teorie robię zadania w których implementuje np ArrayListe i to tyle.
Błąd polega właśnie na tym, że przerabiasz sobie po kolei temat po temacie i próbujesz to wkuć, ale nie wiesz, jak tego użyć. Ale na szczęście to nie z Tobą coś jest nie w porządku, tylko z Twoim sposobem nauki :P Tak przerobić po kolei od deski do deski to niby można na początku, ale raczej przeglądowo - nie, żeby się nauczyć raz na zawsze, tylko żeby kojarzyć co to jest i po co. Na lepsze poznanie przyjdzie czas, ale o tym za chwilę.
Koniec końców wpadam na pomysł napisać jakąś aplikacje z tą arrayList ale nie umiem w ogole zacząć pisać. Nie potrafię swoich myśli przelać na kod.
Bo źle zaczynasz. Nie wymyślaj, co by tu napisać z hurr durr ArrayList koniecznie, tylko wymyśl sobie jakiś problem, który chcesz rozwiązać. Prosty. Rzecz, którą chciałbyś zrobić - prostą. Może to być np. gra w wisielca, albo lista zakupów.
Możesz sobie napisać np. generator "paragonów fiskalnych". Dostajesz na wejściu zawartość koszyka - produkty, ilość i ceny - na wyjściu chcesz dostać wydruk z wylistowanymi zakupami, ilością, ceną jednostkową, całkowitą, kwotą podatku, całkowitą kwotą, w tym kwotą PTU etc. I już masz zadanie, w którym będziesz musiał ogarnąć jak działają listy, pewnie jakieś formatowanie stringów, string buildery, jak będziesz chciał będziesz mógł się pobawić I/O (być może nie będziesz chciał akurat przekazywać outputu na ekran konsoli, tylko np. na jakiś ekran z logami, albo przesyłać na serwer który będzie to zbierać?), jak pokombinujesz to i znajdzie się miejsce na polimorfizm (choćby po to, by rozróżnić produkty "na wagę" i "na sztuki" itd. - już tutaj logika obliczania cen może być troszeczkę inna). Sam widzisz - z prostego pomysłu "wyprintuję sobie paragon" można sobie ułożyć całkiem niezłe ćwiczenie ;)
W ogóle jest gdzieś może jakaś książka czy strona internetowa z programami które można napisać i są do tego odpowiedzi aby sprawdzić czy to o to chodzi ?
Nie znam takich, ale są strony będące zbiorem luźnych pomysłów na to, co można napisać. Na szybko wyguglałem takie coś, jest też wątek na 4p, zapewne niejedyny: Strona z zadaniami programistycznymi :)
Od biedy (bardzo, bardzo biedy, uprzedzam) możesz wbić na jakiś HackerRank lub podobną mu stronę z zadaniami programistycznymi, w zakładce Discussion czy jakoś tak zawsze jest pełno komentarzy błagalnych howl do I do this please proveede me the solition
(błędy zamierzone) i niewiele mniej lepszych lub gorszych rozwiązań, które ktoś tam powrzucał
Nie wiem no stanałem w miejscu i zniechęciłem się do wszystkiego. Pomyślałem, że zaczne frontend ogarniać przezcież sam HTML CSS I JS to nie musi byc jakis problem.
Ehe, żebyś się nie zdziwił :D
No i spoko przerobiłem kilka odcinków jest fajnie ale szkoda mi czasu który poświęciłem na Jave i mam wrażenie że szukam czegoś innego bo nie potrafie sobie poradzić w problemem jaki napotkalem w backend i nie umiem znależć na to odpowiedzi.
To szukaj, jest 99.999999% szans że ktoś już z tym walczył i odpowiedź znajduje się albo w tutorialach, albo na StackOverflow.
Czy jest ktoś na tym forum kto łopatologicznie mógłby mi w tym pomóc? Ja obrałem sobie kierunek tworzenia aplikacji na telefon w Javie przynajmniej to chciałbym robić. Jakiś nie wiem spis zagadnien javy jakie musze umieć. Wytyczyć mi szlak droge ktorej bede sie trzymał aż w końcu pojmę to wszystko zatrybi to w mojej głowie i na nowo powróci radość z programowania.
Największy problem jest chyba taki, że sam nie wiesz, czego chcesz. Chcesz wgryźć się w programowanie, ale nie wiesz z której strony, nadgryziesz jeden koniuszek, ciumkasz sobie aż trafisz na twardy kawałek, po czym próbujesz w innym miejscu licząc, że będzie się lepiej żuło. Nie będzie. Albo masz twarde zęby i wgryziesz się w temat, albo nie - nieważne, z której strony byś próbował ;)
Poza tym większość zagadnień z Javy
które będziesz musiał poznać jako początkujący, to tak naprawdę nie są zagadnienia z Javy per se, tylko z języków programowania, a szczególnie obiektowych ogólnie. One różnią się składnią, niektóre mają fajne ficzery ułatwiające pracę podczas gdy inne przyprawiają o wrzody żołądka. Coś się inaczej nazywa, trochę inaczej się tego używa, ale idee zwykle są podobne w ramach jednego paradygmatu (w tym przypadku obiektowego).
Mogę Ci rzucić buzzwordami w stylu
- polimorfizm
- enkapsulacja
- dziedziczenie
- kompozycja
- typy danych
- basic I/O
- kolekcje
- struktury danych
- pętle
- wielowątkowość
- wzorce projektowe
- itd...
Ale to po prostu nazwy rozdziałów z właściwie dowolnego tutoriala, w przypadkowej kolejności.
Jedyne co Ci mogę poradzić od siebie, to
- opanuj podstawy, żebyś nie blokował siebie problemami w stylu
tu w sumie bym chciał żeby A był podrodzajem B, ale nie wiem co to dziedziczenie więc nie dam rady tak zrobić albo będę kombinował dookoła
- rób rzeczy i robiąc je douczaj się tego, w czym brakuje Ci wiedzy. Jeśli czujesz, że robisz coś strasznie topornie i na okrętkę, rób research, bo prawdopodobnie istnieje rozwiązanie eleganckie, zwięzłe i być może nawet znajduje się już w standardzie języka
- Google i SO to Twoi przyjaciele i prawie na pewno kryją odpowiedź na wszystkie Twoje pytania, trzeba tylko odpowiednio je zadać
- co oznacza, że jeśli jednak nie możesz znaleźć odpowiedzi, trzeba spróbować przeformułować pytanie
- odpowiedzi prawie na 100% rozwiązują Twój problem, ale również prawie na 100% nie są rozwiązaniem dokładnie Twojego problemu - musisz się nauczyć dostrzegać podobieństwa
- stack trace to Twój przyjaciel
- jak najszybciej naucz się uczyć z dokumentacji i ją czytać, jest dużo bardziej szczegółowa niż tutoriale, które jedynie muskają powierzchnię problemu, ale nie wchodzą głębiej w temat - nie na tym polegają.
- debugger to kolejny dobry przyjaciel, o wiele lepszy od "printowania" wszystkiego i niczego
- jak już wszystkie inne metody zawiodą i jesteś w kropce, możesz spytać tutaj na forum o konkretny problem, ALE nie licz na to, że napiszesz "nie wiem jak to zrobić" i ktoś Ci wrzuci gotowe rozwiązanie. Opisz, czego już próbowałeś, co konkretnie sprawia Ci problem, czego nie rozumiesz, która linijka się wysypuje, pokaż stack trace. Staraj się jak najbardziej zawęzić potencjalne źródło problemu - jak człowiek widzi bloba na 4 klasy i 500 linii z opisem "nie działa co mam zrobić", to od razu się odechciewa.