Сайт это прежде всего информация. Примем это. Сайт, где главное не информация, а какой-то сервис, назовем веб-приложением и не будем рассматривать в рамках этой заметки.
Что у вас будет - не ясно. Но HTML понадобится точно.
Представляем информацию с помощью HTML. CSS понадобится для внешнего видимого (как правило) оформления.
Это главное.
HTML для каждой страницы можно вручную подготовить (написать, сверстать), а можно программно. Так делают (и для этого служат) генераторы статических сайтов или CMS.
И те и другие берут данные из источника (файлы, базы данных, сторонние HTTP-сервисы,...), берут шаблоны страниц и наполняют их данными (это называется рендеринг). На выходе получается готовая веб-страница.
Отличие в том, что генератор статических сайтов, как правило, работает на на компьютере разработчика. А получившиеся в результат страницы - набор файлов - разработчик загружает на вебсерер.
CMS же генерирует страницу в момент запроса и сразу отдает результат в браузер, иногда даже не сохраняя нигде (необходимость сохранения появляется при возрастании нагрузки или повышении требований к производительности и тогда оно называется кешированием). А потому CMS работает непосредственно на вебсервере.
Самое интересное, что генератор сайта или CMS может быть написана на почти любом языке программирования.
Если вы не знаете никакого, то начать можно с любого.
Поймите то, где будет работать ваша программа (генератор сайта, CMS,...).
Варианты такие:
1) ваш личный компьютер: программа сгенерирует все файлы сайты и вы их загрузите на сервер, в т.ч. самый дешевый виртуальный хостинг.
2) виртуальный хостинг под управлением Unix-совместимой операционной системы: программа будет работать под управлением вебсервра (Apache, nginx) где-то на компьютерах провайдера
3) виртуальный хостинг под управлением операционной системы Windows Server: программа будет работать под управлением вебсервра (IIS) где-то на компьютерах провайдера
4) виртуальный или выделенный сервер: вы сами выберите операционную систему и веб-север, но компьютер остается под контролем провайдера.
Выбор варианта повлияет на многое. На ваши затраты, на ваши возможности по настройке и использованию разного программного обеспечения.
В варианте 1 все в ваших руках, вы можете использовать любой язык, который только сможете заставить работать под своей операционной системой.
Вариант 2 накладывает ограничения: как правило любой провайдер виртуального хостинга предложит вам (даст возможность использовать) PHP и Perl. Редкий хостер (но его можно найти) предложит python или ruby.
Вариант 3 имеет свои особенности. Почти всегда вы также сможете использовать PHP, но появляется возможность использовать технологии Microsoft и их языки VB.net, C# и другие.
Вариант 4 снова возвращает нас к полной свободе - можно использовать все, что угодно. Но требует от нас и большей квалификации и ответственности - сервер полностью придется настраивать самостоятельно или нанимать сисадмина.
Вы можете выбрать любой язык, но ваш выбор может привести вас к варианту 4, если не найдете хостинг с выбранным языком. Это потребует от вас более долгого обучения и откладывания своего проекта.
Когда я шел этим путем лет 8 назад, я уже умел программировать на разных не особо популярных языках.
И первые сайты мои были сгенерированы моими, а позднее сторонними программами-генераторами и представляли собой пачку HTML файлов.
Позднее я стал использовать виртуальный хостинг. Во-первых, он уже был у клиентов, а во-вторых, я не был системным администратором и не имел интереса им становиться.
Поэтому пришлось изучить PHP. Позднее к нему добавился базовый JavaScript, т.к. страницы сайтов становились все более и более интерактивными.
Почти для всех задачах мне достаточно тех языков, что я знаю. Постепенно я улучшаю свои навыки, углубляю знания.
Да, вокруг много всего интересного и появляется это постоянно. Около 30 вкладок в моем браузере открыто сейчас. Это то, что мне было бы интересно изучить.
Важно понимать, что процесс познания нового идет параллельно с работой. Далеко не все, что я могу интересного нового узнать я смогу применить в работе.
Рабочие проекты используют надежные, проверенные лично мной решения. Они весьма консервативны. Пусть они не лучшие в мире и устаревшие, но это позволяет лично мне спать по ночам спокойно и отвечать на работу проектов перед клиентами.
Поэтому, открывайте новые вкладки, добавляйте в закладки, смотрите видеоуроки и читайте книги, но не надейтесь все это применить на практике. Но это будет вас развивать.
А еще хорошо найти какого-то наставника, который будет хотя бы давать направления и ставить ограничения.
У меня таким был начальник на той работе, где я выучил PHP. Я работал в тех условиях, которые были мне даны, что сильно повлияло на путь моего развития, как разработчика. Он далек от общепринятого. Со своими плюсами и минусами. Но главное, что теперь, уже семь лет, у меня нет других начальников, кроме себя :)