Najlepiej to umiec wszystkie 3 dobrze... ;)
Rzecz w tym, ze wszystkie te jezyki sa do czego innego. Znajomosc samego html ssie, bo bez css'a sie zarzniesz. Z drugiej strony znajomosc samego css nic Ci nie daje, jak nie znasz html.
Klasyczny projekt internetowy (powiedzmy intranet firmowy) wymaga:
- znajomosci jezyka server-side - zeby dalo sie strone generowac dynamicznie, bo i zwykle tresc jest dynamiczna (np. zmienialna przez panel administracyjny)
- znajomosci sql, zwykle mysql, ale moze byc i psql, oracle, mssql, itp. - generalnie baza danych jest potrzebna, bo tylko w wyjatkowych sytuacjach trzymanie tresci w plikach ma przewage nad baza (np. przechowywanie obrazkow do galerii).
- znajomosc (x)html i css - tu oczywiscie bezdyskusyjna kwestia
- znajomosc js i AJAX - poki co js i AJAX to jeszcze wspomagacze frontside, ale w razie potrzeby i checi mozna dzieki nim zrobic naprawde potezna aplikacje (wystarczy popatrzec na niektore wynalazki google ;) ). Choc i tutaj bez znajomosci server-side i sql moze byc ciezko
W zwiazku z powyzszym klasyczny wniosek: Cwicz ile sie da wykorzystujac wszystkie te technologie. Nie ucz sie nazw funkcji czy klas na pamiec, od tego sa manuale. Staraj sie zrozumiec jak to dziala. Np. czemu do wywolania php z js potrzebny jest AJAX, a 'zwykly' js nie wystarczy (choc AJAX to tez js, stad apostrofy). Jak zakumasz co sie dzieje miedzy przegladarka a serwerem i skad oba elementy wiedza co zrobic i co wyswietlisz, to zadna 'stronka' nie bedzie stanowila wyzwania ;)
Jesli chodzi o kase to da sie na tym wyjsc na swoje, wiec w razie czego z dobra znajomoscia php, mysql, js, (x)html i css mozesz na siebie zarobic. Samo to nie robi to jeszcze z Ciebie programisty pelna geba, ale droga w tym kierunku jest w porzadku.