Java - dla...idiotow(?)

Forum Rozmawiamy
Odpowiedz
29.10.2012 23:36
Sitros
1
odpowiedz
Sitros
64
The One

Java - dla...idiotow(?)

Witam.
Od miesiaca na uczelni staram sie wysuczyc z wylanego mi na poczatku pazdziernika zimnego kubla wody...zwanego java. Niestety nigdy w zyciu nic nie programowalem, nie mialem stycznosci z zadnym jezykiem, az tu nagle przyszly laborki i dawaj! Niby od podstaw, ale w zabojczym tempie, nagromadzenie roznorakich funkcji i nagle nie rozumiem nic. Dlatego tez prosze ludzi "z branzy" o jakas rade. A mianowicie, jak nadrabiac? Wiem ze tutoriali do javy jest mnostwo, ale poszukuje jakiegos sprawdzonego, co lopatologicznie wytlumaczy najwiekszemu kretynowi co, gdzie i jak. Ew. sa jeszcze ksiazki, w ktorych rowniez sie nie orientuje i nie wiem czy po wydaniu np. 150 zl nie dostane tego samego co na zajeciach tylko na papierze...

29.10.2012 23:39
Siepet
😜
2
odpowiedz
Siepet
99
Generał

http://javastart.pl/
Ten kurs jest bardzo przystępny, jedyna wada w nim to mała ilość materiałów. Ogólnie z językami jest taka śmieszna sprawa, że w większości wygląda to jednakowo, a różni się jedynie instrukcjami.

29.10.2012 23:42
😊
3
odpowiedz
zanonimizowany857402
19
Generał
29.10.2012 23:45
4
odpowiedz
Tuminure
106
Senator

A tak z ciekawości - jak inni sobie radzą?

29.10.2012 23:46
Sitros
5
odpowiedz
Sitros
64
The One

Ta czesc ktora juz miala stycznosc z programowaniem, np. C++ daje rade, ale ta druga, biedna, niedouczona niestety jest z tylu...

29.10.2012 23:57
6
odpowiedz
DEXiu
151
Senator

W sensie że od razu na pierwszym semestrze zaczęliście od Javy? Cóż... mocno. Jedni powiedzą, że to dobrze, bo nie "tracicie czasu" na tak "nieprzydatne" języki jak Pascal czy czyste C, inni (w tym ja), że to źle, bo trochę z grubej rury tak zaczynać i efekty są takie jakie widać (m. in. na twoim przykładzie). Zakładam, że pomimo "zabójczego tempa" na razie przerobiliście podstawy składni? A na laborkach co robicie? Proste programy proceduralne, czy już (albo nawet od razu) obiektówka? (jeśli ostatnie pytanie jest niezrozumiałe, to się nie przejmuj i po prostu to powiedz bo to też odpowiedź).
Nie przychodzi mi za bardzo na myśl żadna pozycja, która by mogła cię poratować, bo jednak większość podręczników czy kursów Javy stanowi też wprowadzenie do programowania zorientowanego obiektowo i przeważnie zakłada u czytelnika umiejętność programowania proceduralnego i przynajmniej podstawową znajomość jakiegoś innego języka :/

30.10.2012 00:12
Sitros
7
odpowiedz
Sitros
64
The One

Zaczelismy od bloczkow, nastepnie juz na blaszakach poszly krotkie programy liczace delte, nww, nwd, ciag fibonacciego, n-ty wyraz ciagu podzielny przez x itd itd, ostatnio w ruch poszlo robienie roznych figur geometrycznych z samych intow, elsow, i++, scannera itp. Zdaje sobie sprawe z tego ze to jest malenka czesc tego co nadejdzie, ale jezeli teraz nie nadgonie to moge zapomniec o tym co bedzie.

30.10.2012 00:53
jiser
8
odpowiedz
jiser
94
generał-major Zajcef

Ja nie jestem zwolennikiem nauki przez historię ewolucji języków, mimo (a może właśnie dlatego że) że sam taką drogę przeszedłem. Jeszcze od Logo przez TBasic, Pascal, C++ do Java i Pythona. Nie wydaje mi się żeby ułatwiała naukę. Uważam, że lepiej uczyć się jako podstawy jednego zasadniczego języka, o ile ma spójną i klarowną składnię, eleganckie mechanizmy oraz spójny i pełny zestaw bibliotek. Kiedyś tak polecałem Java właśnie. Teraz, przyzwyczaiwszy się do Pythona, już mi się tak silna kontrola typów nie podoba :)

Tyle że właśnie nie mam tej perspektywy: podchodzenia do nauki Java będąc zielonym. Też polecałbym http://www.codecademy.com gdyby nie to, że nie ma tam Java, tylko JS/jQuery, Python i Ruby. Jak coś mi przyjdzie do głowy, to podrzucę.

Jestem przekonany, że to nie sama Java jest problemem, tylko tempo poznawania mechanizmów.

30.10.2012 02:03
😃
9
odpowiedz
YogiYogi
127
Generał

Każdy język programowania coś wnosi ciekawego - ma swoje wady i zalety.
Z perspektywy mojego doświadczenia (edukacyjnego i zawodowego) oceniam że Java na pewno jest świetna do nauki języka obiektowego i to na początek - więc źle nie masz. No chyba że prowadzący wstrzeli Was od razu w jakiś framework bez kompletnych podstaw.
Mój nauczyciel Javy na studiach tak zaprezentował ten język, że po 1wszej godzinie zajęć każdy potrafił napisać swój program.

Aczkolwiek podkreślam że sam język programowania to nie wszystko - algorytmika, wzorce...dopiero z takimi rzeczami można poszaleć.

Jedna rada - unikaj jak ognia książek gościa o nazwisku "Bielecki" :)
Swego czasu produkował z szybkością karabinu ksiązki do coraz co kolejnych języków (zależy pewnie czego uczył albo na co miał zamówienie) - ale te potworki wprowadzały więcej zamętu niż nauki programowania.
Jego próby tłumaczenia słownictwa na język polski przeszły do historii dowcipów z IT...

30.10.2012 02:54
10
odpowiedz
Taal
72
Pretorianin

Literatura - jeżeli koniecznie chcesz mieć coś "na papierze" (do czego nie zachęcam), to można polecić "Thinking in Java". Książka jest strasznie długa i strasznie nudna, ale stanowi tak łopatologiczne wprowadzenie do idei programowania obiektowego jak to tylko możliwe.

Tutoriale - jeżeli angielski nie jest dla Ciebie barierą, to zajrzyj na stronę Oracle'a - aktualnego właściciela Javy - http://docs.oracle.com/javase/tutorial/ .

Dokumentacja - Java jest fantastycznie udokumentowana. Wszystko, co może być Ci potrzebne znajdziesz na stronie Oracle'a - http://docs.oracle.com/javase/1.4.2/docs/api/overview-summary.html (konkretnych klas łatwiej jest szukać przez Google).

DEXiu ->
1. Bardzo duża część obecnego na świecie kodu jest napisana w języku C. Wszystkie krytyczne elementy systemów informatycznych (np. jądra systemów operacyjnych) wciąż są pisane w języku C. Nie wyobrażam sobie, żeby ktoś mógł nazwać ten język nieprzydatnym.
2. Z Twojej wypowiedzi można by wywnioskować, że pisanie w języku Java jest trudniejsze niż w C. Nie jest to prawdą. Java zwalnia programistę z myślenia robiąc wiele rzeczy za niego (np. GC) oraz dostarczając potężną bibliotekę gotowych rozwiązań.

jiser ->
1. Twierdzenie, że znajomość jednego języka nie ułatwia nauki kolejnych jest bardzo niepopularne. Pokusiłbym się nawet o tezę, że nabywszy odrobinę wprawy w programowaniu można pisać bez przeszkód w dowolnym języku o ile pod ręką ma się jego dokumentację.
2. Nie polecałbym początkującym programistom języków interpretowanych. Brak typów czy możliwość dopisywania kodu w run-timie mogą uczynić ich wiedzę niepełną.

30.10.2012 07:31
11
odpowiedz
Tuminure
106
Senator

dostarczając potężną bibliotekę gotowych rozwiązań
Czyli całą masę rozwiązań, z których trzeba nauczyć się korzystać. W dodatku, które będą działać tylko i wyłącznie w tym języku. Jak dla mnie, wcale nie jest to prostsze.

Nie polecałbym początkującym programistom języków interpretowanych. Brak typów czy możliwość dopisywania kodu w run-timie mogą uczynić ich wiedzę niepełną.
To zależy. Jeżeli ktoś ma zamiar do końca zostać przy takim języku, to nie ma sensu uczyć się języka kompilowanego, to raz. Dwa - o ile dobrze mi wiadomo, to druga część Twojej wypowiedzi jest nieprawdą.

nabywszy odrobinę wprawy w programowaniu można pisać bez przeszkód w dowolnym języku o ile pod ręką ma się jego dokumentację
Tja. O ile ograniczasz się do pisania appek konsolowych i podstawowej składni.

30.10.2012 13:26
jiser
12
odpowiedz
jiser
94
generał-major Zajcef

Taal ~~~>

Twierdzenie, że znajomość jednego języka nie ułatwia nauki kolejnych jest bardzo niepopularne.
Nigdy tak nie twierdziłem. Oczywiście, że ułatwia. Tylko lepiej, poznając kolejny, móc odnosić się do czegoś, co daje ładną perspektywę we wszystkich kierunkach. Pojawia się teraz trend, aby ucząc programowania per se, uczyć Pythona. I uważam, że to za świetny pomysł (o ile stosuje się code-style-checkery PEP8 i podobne). Ma swoją wirtualną maszynę (z JVM włącznie), zarządzanie pamięcią, porządny zestaw spójnych pakietów standardowych, repozytorium pakietów PyPI. Można pisać skryptowo, obiektowo, funkcyjnie, a nawet logicznie. Dano-centrycznie, test-driven, aspektowo, co tylko chcesz. Składnia może być bardzo czytelna. A jak trzeba przeprowadzić optymalizację, to przecież też można tworzyć pakiety natywne. Ma swoje wady, ale to inny temat. Poza tym, który nie ma.

Z Twojej wypowiedzi można by wywnioskować, że pisanie w języku Java jest trudniejsze niż w C.
A gdzie tam. Nie wspominając o tym, że DEXiu pisał o czystym C. Szczególnie, że nie trawię C/C++ ze względu na chaos jaki panuje w bibliotekach, nawet tych uznanych za standardowe. Niezależnie od wydania.

Java zwalnia programistę z myślenia robiąc wiele rzeczy za niego (np. GC) oraz dostarczając potężną bibliotekę gotowych rozwiązań.
I dobrze. To jeden z powodów, dla których warto właśnie zaczynać od Java. Zarządzania pamięcią można się nauczyć później, a początkującemu taka perspektywa jest niepotrzebna. Z twierdzeniem, że trzeba od początku programować z myślą o zarządzaniu pamięcią, jest jak z twierdzeniem, że kod od swojej pierwszej wersji musi być zoptymalizowany. Po prostu - głupota. First things first.

Brak typów czy możliwość dopisywania kodu w run-timie mogą uczynić ich wiedzę niepełną.
Skąd wziąłeś takie przekonanie? Silna kontrola typów to najwyraźniejszy znak szczególny Java. Zmiana kodu run-time nie stanowi żadnego problemu w Java, nie wspominając o tym, że jest jednym z fundamentów takiego sobie Pythona. O ile kontrola typów faktycznie ma znaczenie dla nauki, to dynamiczna introspekcja? Dla kogoś kto uczy się od zera? A po cholerę?

Mam nadzieję, że autor wątku nie pogniewa się za ten offtopic :)

Yogi ~~~>
Jedna rada - unikaj jak ognia książek gościa o nazwisku "Bielecki" :)
Tia. Na początku studiów uczyłem się z jego książki Swinga. Mogę oddać za darmo :]

***
Mi "Thinking in Java" się nie podobała, ale może właśnie z tego powodu, dla którego tu byłaby dobra? Bez problemu można znaleźć na sieci "niezbyt legalną" kopię elektroniczną.

Forum Forum Rozmawiamy
Odpowiedz

GRYOnline.pl:

Facebook GRYOnline.pl Instagram GRYOnline.pl X GRYOnline.pl Discord GRYOnline.pl TikTok GRYOnline.pl Podcast GRYOnline.pl WhatsApp GRYOnline.pl LinkedIn GRYOnline.pl Forum GRYOnline.pl

tvgry.pl:

YouTube tvgry.pl TikTok tvgry.pl Instagram tvgry.pl Discord tvgry.pl Facebook tvgry.pl