Generalnie wiem, ze duzo firm w Polsce uzywa php i nawet jesli bym pisal w js, to czesto jak nie ma roboty to trzeba pisac w php,
Zalezy gdzie mieszkasz. W dużych miastach jest mnóstwo ofert pracy JSowej / nakierowanej na frontend (chociaz niestety praca przy frontendzie to nie tylko programowanie, ale rowniez grzebanie w CSSach i pisanie templatek w HTMLu)
czemu uwazasz ze jest to dobra sciezka rozwoju?
Bo to naturalny krok naprzód: przeglądarkowy JavaScript --> systemowy JavaScript w postaci NodeJS (systemowy, bo NodeJS nie jest stricte backendowy. Raczej chodzi o to, ze programy w NodeJS sa odpalane z poziomu systemu operacyjnego a nie z przegladarki i maja dostep do wszystkiego. W tym moga posluzyć do stworzenia serwera.
z drugiej strony majac ten sam jezyk na froncie i backendzie latwo mozna wspoldzielic kod miedzy backendem i frontendem piszac modul, ktory odpali sie i w przegladarce i w NodeJS.
Co sie pisze w takim node.js
wszystko można. Poza tym nawet do robienia frontendu jest on już w zasadzie niezbędny, bo pisze sie w nim często choćby skrypty automatyzujac prace.
Nie znaczy to, że frontendowiec musi być ekspertem od Node. Ale podstawowa znajomość jest wysoce wskazana.
Ogolnie slyszalem, ze bardzo popularny jest framework express, dlatego w czystym nodzie sie nie pisze, to prawda?
Wiec, jesli to prawda, to czy warto marnowac czas na czysty nodejs? Bo nie wiem jak obrac swoj kierunek nauki.
Najważniejszy w API NodeJS jest system modułów (np. funkcja require, ktora importuje moduł (Caly system modulow sie nazywa CommonJS)) bo samego systemu modułów sie bardzo czesto uzywa do robienia frontendu (jest narzedzie Browserify, ktore zamienia kod NodeJS na taki, ktory mozna odpalic w przegladarce. W bibliotece standardowej Node jest pare innych przydatnych rzeczy (choćby moduł fs do obslugi plikow). Ale generalnie pracując w Node, większość twojego kodu to będą albo funkcje, które będą wywoływać API zewnętrznych bibliotek, albo będą wywoływane przez zewnętrzne biblioteki jako callbacki.
Aha i uczac sie Node warto poznać "promisy" (sa biblioteki do tego, np. Q), zeby uniknac callback hell. Wypadaloby tez znac jakis framework do unit testow (np. Mocha).
Nodejs->express, czy od razu express a niuanse node wyjda w pisaniu.
Tyle, ze Express i tak bedzie dzialal pod kontrola NodeJs. To srodowisko uruchomieniowe, które zawiera w sobie wirtualna maszynę jsową V8
i pozwala na uruchamianie aplikacji JS z poziomu systemu operacyjnego. Owszem, NodeJS ma pewne API i wbudowane moduły, ale nie można utożsamiać API z NodeJS jako takim.