www.w3schools.com/ и практика… И ковыряние кода хороших проектов хороших проектов.
Web-программирование достаточно широкое понятие и часто выходит далеко за пределы чистого web-программинга.
Основное деление это:
1) front-end (программирование того. что клиент видит на экране и взаимодействия);
2) back-end — программирование серверной части.
Эти два направления требуют принципиально разных компетенций и редко кому удается удачно (успешно) совмещать… Тут вам хотя бы на первом этапе изучения надо определиться. После этого выбора будет более-менее понятно в какую степь идти и какие инструменты изучать…