Czy zaczynając naukę od Java Scriptu będzie łatwiej poznać inne jęzki?

2

Witam

Czy zaczynając naukę programowania od Java Scriptu będzie łatwiej potem w takich językach jak Java czy C# ?

0

Umiejąc już jakikolwiek język zawsze będzie Ci łatwiej poznać każdy kolejny. Ale dużego pokrewieństwa między JS a Java/C# nie ma, więc zdaje się, że odpowiedź na Twoje pytanie brzmi: ogólnie TAK, ale inny język ułatwi sprawę bardziej.

1

ogolnie tak
praktycznie nie

Jezeli nauczysz sie programowac to w kazdym jezyku bedzie Ci latwiej przyswoic jego cechy. Problem stanie sie, jak przejdziesz z JS do ASM. To wtedy za duzo Ci JS nie da (oprocz tego, ze bedziesz wiedziec co chcesz osiagnac tylko nie bedziesz wiedziec jak)

0

A przejście z Java Script na Java EE ?

2

Javascript jest delikatnie inny od większości języków (a z Javą ma bardzo mało wspólnego, głównie nazwę)

Natomiast łatwo sie uczyć bo od razu widać efekty, można pisać userscripty do istniejących już stron itd

Przy przejściu na inne języki najważnie będzie myślenie jak programista a nie sam język

0
LynxBings napisał(a):

A przejście z Java Script na Java EE ?

Javascript do Java opócz słowa w nazwie ma się nijak, to zuzpełnie inne typy języków. Do JEE trzeba znac podstawy Java.

0

Rozumiem bo w tej chwili w zawodzie i z doświadczenia najbliżej mi do front-endowca (tyle że zarobki mi nie odpowiadają) ale chciałbym uczyć się też programowania bo wiem że bez tego jest ciężko i myślałem o Javie (SE, EE) . I nie wiem czy dalej iść w tym kierunku co jestem czyli nauka programowania ale przypuścmy JS i uczenie się bootstrap, jQuery, Git itd.

Bo chciałbym się dokształcać ale żeby jednocześnie to było elastyczne czyli myślałem że jak pójdę dalej w kierunku front-endowca i nauczę się programowania w JS to będzie pokrewne z innymi językami czy podstawą do opanowania Java.

0
LynxBings napisał(a):

Rozumiem bo w tej chwili w zawodzie i z doświadczenia najbliżej mi do front-endowca (tyle że zarobki mi nie odpowiadają) ale chciałbym uczyć się też programowania bo wiem że bez tego jest ciężko i myślałem o Javie (SE, EE) . I nie wiem czy dalej iść w tym kierunku co jestem czyli nauka programowania ale przypuścmy JS i uczenie się bootstrap, jQuery, Git itd.

Bo chciałbym się dokształcać ale żeby jednocześnie to było elastyczne czyli myślałem że jak pójdę dalej w kierunku front-endowca i nauczę się programowania w JS to będzie pokrewne z innymi językami czy podstawą do opanowania Java.

Nauczenie się czegokolwiek na jakimś średnim poziomi będzie już elastycznością, bo zrozumiesz programowanie. Więc musisz się na coś zdecydować i byc w tym konsekwentnym, czy do javy, czy do javascriptu masz tu mnóstwo materiałów. Chcesz zrozumieć czego powinieneś się nauczyć przeczytaj wymagania ogłoszeń o pracę.A później wybierz coś z materiąłów na forum i po prostu się ucz, zastanawianie sie za dużo napsuje ci w głowie i odpuścisz.

0

Rozumiem bo wstępnie zauważyłem duży potencjał Java EE ale ja zawodowo idę bardziej w kierunku front-endowca i jednocześnie wiem że muszę umieć programować i że mnie to nie ominie i nie wiem czy pogłębić swoją dotychczasową wiedzę dodając do tego naukę progamowania JS czy może zacząć naukę czegoś nowego jak język Java. Czy może nauczyć się dobrze front-end'owca a potem uczyć się Java. No pytań jest sporo, wiem że nikt mi na to nie odpowie, ale dziękuje za rozsądne porady które pozwolą mi coś wybrać. Właściwie obecnie najbliżej mi do front-end'owca ale jest to mała firma prywatna i robię tu inne rzeczy i właściwie specjalizacji nie mam żadnej.

0

Tyle że JS to bardzo mało nauki, a Java EE to co najmniej 5 lat ostrej nauki, ponieważ jest bardzo rozbudowana. Z tego co pisali w książkach to nazwę JavaScript ściągnęli od Javy w celach marketingowych.

2

Nie powiedziałbym, że tak bardzo mało nauki, bo znanie JS'a w obecnych czasach to także znanie całego systemu wokół - popularnych tool'i, framework'ów, bibliotek. Teraz jest tego naprawdę dużo.

0

Ale mi też chodzi czy znając przypuśćmy "dobrze" JS będzie łatwiej z nauką JSE lub JEE?

1

Tyle że JS to bardzo mało nauki

Chyba z 10 lat temu jak było mało bibliotek, język był minimalistyczny i wystarczyło umieścić tag script. Teraz język się strasznie pokomplikował (ES6 jest trudniejszy niż wcześniejsze wersje, bo nic nie usuwa, a jedynie dodaje kolejnych rzeczy do nauczenia), masę bibliotek trzeba znać, oraz zanim coś umieścić na stronie, musisz postawić cały build proces*. Czyli do nauki jest język + biblioteki + infrastruktura. Nie wiem czy to tak mało. Plus jeszcze HTML i CSS (ale to chyba OP zna lepiej lub gorzej, bo coś pisał o frontendzie).

*nie jest to technicznie konieczne, można dalej wrzucać tagi script i na tym jechać - ale zwykle się tak już nie robi, tylko się bierze jakiegoś Webpacka, Babela, czasem Gulpa konfiguruje się to itp. Kolejne parę rzeczy do nauczenia.

Czy zaczynając naukę programowania od Java Scriptu będzie łatwiej potem w takich językach jak Java czy C# ?

JavaScript bardziej podobny jest do np. Pythona niż do Javy czy C#.
Tym niemniej ponieważ z wyglądu JavaScript jest złudnie podobny do Javy może być ci trudniej się tej Javy nauczyć (widzę to po programistach Javy, którzy chcą się nauczyć JavaScript. Zwykle kończy się na tym, że nie mogą się za nic pozbyć nawyków z poprzedniego języka. Przypuszczam, że w drugą stronę mogłoby być podobnie).

1

JS mało nauki :D
No jak dla mnie to nawet ogarnięcie webowej Javy od podstaw jest szybsze, bo w takim JS masz co pół roku nowy framework , liczba tooli itd. to jakas masakra. No i jeszcze trzeba dobrze umieć HTML(no to akurat nie jest wyczyn) i CSS(i to już jest wyczyn).

0

nie.

Jeżeli umiesz programować w czymkolwiek to byś nie zdawał tego głupiego pytania.
Rozkręcenie roweru praktycznie ma się nijak to rozkręcania silnika samochodowego.
Tak samo ma się JavaScript do innych języków - jak deskorolka do hulajnogi.

0
scibi92 napisał(a):

JS mało nauki :D
No jak dla mnie to nawet ogarnięcie webowej Javy od podstaw jest szybsze, bo w takim JS masz co pół roku nowy framework , liczba tooli itd. to jakas masakra. No i jeszcze trzeba dobrze umieć HTML (no to akurat nie jest wyczyn) i CSS (i to już jest wyczyn).

mhm chyba śnię. Bez urazy i bez wyzwisk - dla Ciebie (kolego) ogarnięcie webowej Javy od podstaw jest szybsze niż JavaScript?
Stary to ty na prawdę nie wiesz co piszesz.
"w takim JS masz co pół roku nowy framework" - i co z tego? To jest framework, a nie sam język JavaScript, a rozmawiamy o języku. A przy JS język jest w miarę prosty - poza pewnymi kruczkami. Dyskutujmy między podstawami składni językowej JavaScript i JavaEE (rozumiem, że tutaj chodzi tylko i wyłącznie o Java Server Pages, a nie całe JavaEE, bo to porównywalne absolutnie moim zdaniem nie jest).

Zresztą, co tu gadać:

JavaScript - język wykonywany po stronie klienta, czyli przeglądarki www.
JavaEE - po stronie serwera i koniec porównania.

0
LynxBings napisał(a):

Ale mi też chodzi czy znając przypuśćmy "dobrze" JS będzie łatwiej z nauką JSE lub JEE?

Stary, JavaScript vs Java to są języki zupełnie do innych zastosowań.
JavaScript - jest wykonywany przez przeglądarkę internetową do jakichś tam prostych kwestii, uzupełnienie strony www/html/css.
JavaSE - jest to język kompilowany i wykonywany jako program standalone i nie ma nic wspólnego z www.
JavaEE - nooo to jest kobyła EnterPrise Edition od wszystkiego serwerowego. Generuje twór który jest wyświetlany lub przetwarzany po stronie klienta np. wewnątrz przeglądarki internetowej.

Więc porównanie JavaScript z JavaSE/JavaEE jest jak porównanie piekarni do deski do krojenia w kuchni twojej mamy.

2

A Node.js to pies?

4

JavaScript - jest wykonywany przez przeglądarkę internetową do jakichś tam prostych kwestii,

To jest info sprzed kilkunastu lat. Obecnie JS jest używany nawet w przeglądarce do robienia całych aplikacji działajacych w przeglądarce (nie mówiąc już o wspomnianym NodeJS choćby).

Więc porównanie JavaScript z JavaSE/JavaEE
jest jak porównanie piekarni do deski do krojenia w kuchni twojej mamy.

zgadzam się. JS to piekarnia, Java to tylko deska. W JS można robić wszystko(aplikacje przeglądarkowe, backend serwisów internetowych, aplikacje mobilne, aplikacje desktopowe, skrypty działające w linii poleceń itp.), w Javie tylko proste applety na strony WWW typu "oblicz swoje BMI".

Oczywiście nie znam się na Javie, ale czuję się upoważniony, żeby wyrokować i porównywać te dwa języki na wzór przed-przedmówcy ;)

0

Faktycznie, zupełnie zapomniałem o tworach typu Node.js. Przyznaję się bez bicia.

0

Chwała za przyznanie się do błędu :)

0

Jak to jest z tym ES6, czy jest taki udziwniony jak to niektórzy piszą, jako nowszy standard JS jest trudniejszy do przyswojenia? Wiem że dodano w nim pewne nowe ficzery i zmniejszono składnię. Czyli to co było w JS napisane w czterech linijkach skrócili do dwóch. Dużo też zabrali z TypeScript i dodali do tego nowego standardu ES6. Jak dla mnie JS jest nawet łatwiejszy od Pythona i PHP. Piszę o czystym JS bez żadnych frameworków.

3

Nie no, Panowie. Przede wszystkim nie należy się zapędzać. Mowa jest o nowicjuszu, który chce sobie ogarnąć podstawy JavaScriptu. Nie oczekiwałbym równoległego uczenia się jakiegoś frameworka typu Angular, czy react, chociaż widziałem tego typu próby i nie jestem pewien, czy efekt był zadowalający.

Ja dajmy na to w swoich początkach dosyć mocno skakałem po technologiach, poznając podstawy różnych języków. Języka w którym napisałem pierwszy program nie używam w ogóle, języka na którym ogarnąłem programowanie używam tylko z konieczności (projekty legacy?). Tutaj może być podobnie. Chwycenie się JavaScriptu jeszcze niczego nie determinuje i nie należy przykładać dużej wagi do tej decyzji (moim zdaniem), tylko wziąć jakieś książki/tutoriale/wtf i się uczyć. Zrozumienie podstaw programowania strukturalnego zajmuje odrobinę czasu, JavaScript ma tutaj walor edukacyjny w postaci elementów funkcyjnych. Jeżeli autor wątku pozna później kolejny język, to w nim na zasadzie kontrastu te elementy mogą być zrobione inaczej, albo może ich nie być w ogóle. I to jest dobrze, bo pojawia się szansa na wyciągnięcie wniosków.

Jeśli chodzi o rozwijającą literaturę do nauki programowania to zareklamuję "Zrozumieć programowanie" Gynvaela Coldwinda. Niektóre rzeczy bym tam inaczej opisał, ale ogólnie jest to pozycja o znacznie większych walorach niż jakaś losowa książka o programowaniu.

Podsumowując: język w którym się zaczyna raczej nie jest szalenie istotny, ważne jest ogarnięcie kluczowych idei w programowaniu. Dopiero wtedy myślałbym o uczeniu się czegoś typowo "do pracy".

2
LukeJL napisał(a):

JavaScript - jest wykonywany przez przeglądarkę internetową do jakichś tam prostych kwestii,

To jest info sprzed kilkunastu lat. Obecnie JS jest używany nawet w przeglądarce do robienia całych aplikacji działajacych w przeglądarce (nie mówiąc już o wspomnianym NodeJS choćby).

Więc porównanie JavaScript z JavaSE/JavaEE
jest jak porównanie piekarni do deski do krojenia w kuchni twojej mamy.

zgadzam się. JS to piekarnia, Java to tylko deska. W JS można robić wszystko(aplikacje przeglądarkowe, backend serwisów internetowych, aplikacje mobilne, aplikacje desktopowe, skrypty działające w linii poleceń itp.), w Javie tylko proste applety na strony WWW typu "oblicz swoje BMI".

Oczywiście nie znam się na Javie, ale czuję się upoważniony, żeby wyrokować i porównywać te dwa języki na wzór przed-przedmówcy ;)

Mam nadzieję, że to żart. W Javie przecież spokojnie robi się aplikacje samodzielne i to multiplatformowe, backend www, aplikacje na androida, programy CLI, usługi i całe serwery. Banki stoją na javie, LibreOffice, IBM RUP, tak samo jak Edukacja.CL od PWr - te byty to chyba nie aplety "oblicz swoje BMI". Można by wymieniać.

Generalnie koncepcyjnie JS jest prosty, ale przez słabe typowanie potrafi zajść za skórę - wole silnie typowane, jak np. Python (który też jest interpretowany). Programowanie nie kończy się na webie gdzie króluje JS, a poza webem nie wiele widziałem aplikacji Node.JS na produkcji. Strony, a raczej aplikacje JS(bo tam zazwyczaj tylko html do wczytania skryptów jest a resztę generuje i rysuje JS) są końcówkami do wielu systemów Enterprise gdzie zaplecze jest wielką kobyłą Javy lub C# z serwerem HTTP lub nawet REST. Teraz zaczyna przechodzić się przechodzić na mikroarchitektury w niektórych rozwiązaniach, ale nie wszystkich, zresztą trzeba pamiętać, że obecnie jest sporo już napisanego kodu który nie będzie portowany, a też należy go rozwijać - nikt nie pamięta, że kod nie jest pisany na rok-dwa tylko na dziesięciolecia i tyle pracuje (mało kto wie widocznie, że czasami banki pracują na Javie 1.4, a aplikacje obsługujące firmy są pisane w językach natywnych gdzie ich rdzeń to wczesne lata 90). Dalej mamy mobile gdzie Java króluje na androidzie. Poza tym są dziesiątki dziedzin, gdzie Java się odnajduje a JS średnio. Java jest o wiele większa, niż JS.

Nauczenie JS nie pomoże w nauce Javy moim zdaniem, bo przede wszystkich to może nie są inne paradygmaty bo to i to imperatywne, ale zasada tworzenia programu, struktur, debuggowanie, projektowanie to coś różnego. Dodatkowo widziałem, jak "programiści" js zwalają wydajność programów bo nie mają pojęcia co się dzieje pod spodem (np. zamiast pobrać obiekt wywołują GetObject() co chwile gdzie raz, że to funkcja, a dwa w środku jest jakaś logika orająca po DOM - sorry, ale używajmy tego z głową, a nie głową w mur)

Uważam, że przyzwoity programista powinien znać C (nie C++), język ogólnie Enterprise (C#, Java) oraz jakiś język dynamiczny (Python, JS), żeby mieć ogląd na technologie wytwarzania RÓŻNEGO oprogramowania, a potem jak zechce może się specjalizować, ale to też nie konieczne - sam pisałem parę lat w C, potem w C# parę lat a obecnie produkcyjnie wykorzystują Pythona (C oraz C# również, jak i wiele innych języków).

Jeden język jeśli chcesz dobrze zarabiać to za mało moim zdaniem. W każdej pracy lepszej niż klepacz (a tylko tak możesz zarabiać przyzwoicie), ma się styczność z różnymi technologiami (programiści nie zarabiają dużo z samego faktu bycia, tylko, że programowania, projektowanie jest trudne, sami klepacze dużo nie wyciągają i szybko osiągają sufit).

Proponuję uczyć się JavaScript i Javy na raz. W JS rób końcówkę kliencką w ramach nauki, walidacje danych, obsługa klawiatury, odpytywania serwera o kolejne dane, a w Javie serwer http, rest czy websocket i tam realizuj logikę, dostęp do DB, jakieś notyfikacje etc. Taka nauka pozwoli zebrać ogląd na całość produkcji aplikacji z GUI w www, ale tak naprawdę to czubek góry lodowej technologii możliwych do nauczenia i zarazem jeden dopiero "model" systemu z zapleczem na serwerze i lekkim klientem, a istnieje znów wiele modeli co w połączeniu z wieloma technologiami tworzy multum możliwości.

0

Ja jak zaczynałem, to nie pytałem na forum tylko w komisie komputerowym jak się tworzy programy, a ci mnie spławili, że to tylko na studiach, rok po dostaniu stałego łącza już umiałem podstawy C :)

1

Dodatkowo widziałem, jak "programiści" js zwalają wydajność programów bo nie mają pojęcia co się dzieje pod spodem
(np. zamiast pobrać obiekt wywołują GetObject() co chwile gdzie raz, że to funkcja, a dwa w środku jest jakaś logika orająca po DOM

Jeśli metoda nazywa się GetObject używając CamelCase z pierwszą literą dużą, to raczej pisał to programista C#, który JS pisze tylko czasami.

Ale żarty na bok, uważam, że w JS jest jak w każdym innym języku. Większość programistów nie ma za wiele pojęcia na temat tego, co robi.

Z drugiej strony masę złego kodu w JS to właśnie wina programistów Javy czy C#, którzy przechodząc na JS programują tak, jakby programowali w Javie czy w C#, ignorując fakt, że JS to całkowicie inny język i raczej sprawdza się tu całkowicie odmienny styl pisania niż ten wyniesiony z ww. języków.

Uważam, że przyzwoity programista powinien znać C (nie C++), język ogólnie Enterprise (C#, Java) oraz jakiś język dynamiczny (Python, JS),
żeby mieć ogląd na technologie wytwarzania RÓŻNEGO oprogramowania, a potem jak zechce może się specjalizować,

Z tym się zgadzam. Ciężko być programistą i nie wiedzieć co to np. stos wywołań (a tego prędzej się człowiek nauczy pisząc w C++ niż w JS - tzn. w JS też trzeba o tym pamiętać, przy pisaniu rekurencji choćby - ale jednak pisząc w C++ pamiętam, że musiałem się nauczyć o tym, w jaki sposób na poziomie kodu maszynowego są odkładane parametry w funkcji, że są rózne koncepcje wywołania funkcji itp. i generalnie potrafiłem sobie wyobrazić dokładnie stos wywołań, ba, nawet jak zapauzowałem debuggera w C++ to debugger pokazywał mi kod assemblera i mogłem sobie samemu przejechać po tym stosie wywołań.

Z kolei pisząc funkcję rekurencyjną w JS, która nie ma warunku stopu pojawia się oczywiście błąd ”RangeError: Maximum call stack size exceeded ale zastanawiam się ile programistów, którzy nie programowali w żadnym niskopoziomowym języku wie w ogóle skąd się to bierze*.

co prawda nie jestem pewien, czy stos w JS to stos na poziomie maszynowym, czy może wirtualna maszyna JS tworzy sobie własny wirtualny stos. Tym niemniej myślę, że pisanie C++ daje większe przygotowanie nawet do zrozumienia takiego ewentualnego wirtualnego stosu - bo można by nawet zrozumieć go poprzez analogię z tym stosem na poziomie kodu maszynowego. Pisząc tylko w językach, w którym wszystko dzieje się magicznie (JS, Python, PHP itp.) nie ma się tych analogii do porównania (swoją drogą Java to też do pewnego stopnia taki magiczny język, w końcu jest GC choćby czy wiele innych ułatwień).

Proponuję uczyć się JavaScript i Javy na raz.

nie wiem czy to dobry pomysł, biorąc pod uwagę, że JS i Java wyglądają dość podobnie, a działają całkowicie inaczej. Łatwo się to może pomieszać. I potem będzie krzyk, że coś nie działa w JS albo w Javie.

1
LukeJL napisał(a):

Proponuję uczyć się JavaScript i Javy na raz.

nie wiem czy to dobry pomysł, biorąc pod uwagę, że JS i Java wyglądają dość podobnie, a działają całkowicie inaczej. Łatwo się to może pomieszać. I potem będzie krzyk, że coś nie działa w JS albo w Javie.

Podobieństwo nawet na poziomie składni jest dosyć znikome. Różni się cały model obiektowości pomiędzy tymi językami. JS to język z dziedziczeniem prototypowym, w Javie jest rozwiązane bardziej "klasycznie". Kod jest diametralnie różny, nawet pod względem składni.

0

@LukeJL - Ty tak serio ? To jak mówić, że nie można uczyć się na raz jazdy na ciągniku i na tirze bo to i to diesel ... Sądzę, że java i javascript ma jeszcze mniej podobieństw niż wspomniane pojazdy. Jeśli ktoś jest niezgrabnie mówiąc idiotą i miesza języki tylko dlatego, że mają wspólny człon w nazwie to już problem uczącego się, bo serio nie widzę racjonalnych powodów, żeby nie uczyć się na raz... A nauka backendu w C# i frontu w JS to już ok ??

title

0

@Trzezwy Samiec"Uważam, że przyzwoity programista powinien znać C (nie C++), język ogólnie Enterprise (C#, Java) oraz jakiś język dynamiczny (Python, JS), żeby mieć ogląd na technologie wytwarzania RÓŻNEGO oprogramowania"
A można pójść w przyszłość i zamiast C uczyć się Rust, do Enterprise zamiast Javy uczyć się Scala/Go, a zamiast Pythona, JS uczyć się Elixir, TypeScript lub CoffeScript?
Zastanawiam się czy w tych czasach nauka od zera JavaScript 5 ma sens, czy od razu nie wybrać jakiś framework pisany w TypeScript lub Dart, ewentualnie CoffeScript lub Scala.js?

0

@mały Sławi
Na pewno będzie łatwiej uczyć się następnego, bo w większości języków for, while, if, typy zmiennych, funkcje pisze się podobnie albo i nawet tak samo. Co do samego JS to nie polecam zaczynać od tego jeżeli nie masz mentora, bo JS jest tak nie restrykcyjny że można nabrać dużo złych nawyków. A co do reszty to fakt doszły nowe konstrukcje ale to kwestia nauczenia się i wykorzystywania ich, niemal w każdym języku tak jest.

@mały Lew Miałem takiego kokxa co C# umaił ale jak się go zapytałem jak wyglądać String (w C#) to nie umiał odpowiedzieć "Bo ja sobie deklaruje String to jest String" i go to wali że muszę mu go w pamięci zbudować w odpowiednim kodowaniu i przekazać pointer. Więc tak ma sens uczenie się podstaw chyba że chcesz klepać pętle całe życie.

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