Bardzo dobra znajomość HTML to znanie specyfikacji a tym samym – semantyki poszczególnych elementów (np. rozumienie różnicy między code a kbd czy między i a em). Do tego dochodzą kwestie dostępności, więc znajomość ARIA (w tym domyślnych mappingów) i zasady WCAG 2.0 + sposoby ich wypełniania. Do tego warto ogarniać hierarchię elementów DOM oraz wiedzieć jak dokładnie rozwiązywana jest delegacja eventów (oraz czym się różni faza przechwytywania od fazy bąbelkowania).
Bardzo dobra znajomość JS to znajomość ES.next, zatem ES6 to podstawa. Trzeba umieć w moduły – zarówno w node jak i w przeglądarce. Do tego dochodzi ogarnianie npm. Iteratory, generatory, promise i inne sposoby rozwiązywania kodu asynchronicznego (async/await choćby). Podstawy programowania funkcyjnego (funkcje bez skutków ubocznych, pipe'ing, currying…). Relacja między ES a DOM i BOM.
Bardzo dobra znajomość CSS to specyficzność, relacje między selektorami, hierarchizacja stylów, kaskadowość. Warto znać ogólne problemy, czyli id vs class, globalność, specyficzność, kaskadowość i sposoby ich rozwiązania (konwencje typu BEM, SUIT czy "armaty" typu ICSS/CSSM). Preprocesory to must know (Sass, Less, Stylus, PostCSS). Na chwilę obecną dochodzi też projekt Houdini. No i kwestia niezwykle istotna: wydajność! Czyli will-change i contain choćby, transformacje vs pozycjonowanie, modele animacji RAIL i FLIP (to w sumie na granicy JS i CSS).
Bardzo dobra znajomość PHP: SOLID, DRY, KISS, YAGNI, CQRS, TDD, BDD, DDD, mikroserwisy, architektura heksagonalna, REST API – nawet jak nie zastosujesz, to wypada znać i wiedzieć z czym to się je. Do tego PSR i Composer.
Ogólnie przyda się też znajomość tematów około HTTP (do wszystkich wyżej wymienionych), zatem HTTP 1.x, HTTP 2.0 (i tutaj server push vs inline zasobów, dużo małych żądań vs mało dużych żądań itd), HSTS, key pinning, CSP, X-Frame-Options i inne nagłówki. Do tego teoria jeśli chodzi o cookies, tokeny i OAuth. Dochodzą też inne protokoły: Web Sockets, WebRTC, QUIC, stary SPDY…
Do tego jest jeszcze np Service Worker, czyli offline first i proxy w przeglądarce, push notifications, Progressive Web Apps, Progressive Enhancement, graceful degradation, Web Components, WICG.io…
Na początek wystarczy… ;)