Языков программирования для сайтостроения или, говоря по-научному, веб-разработки не так чтобы много, но и не так чтобы мало. Жаль, конечно, что нет одного, общего для всех сайтов, языка, которым можно ограничиться. Практический минимум - это языки HTML, CSS, Javascript, PHP и SQL.
HTML - язык разметки гипертекста.
Изначально с помощью меток - так называемых тэгов - указывал браузеру, как показывать то, что отмечено этими тэгами. С появлением дополнительных средств (например CSS, JavaScript) фактически используется только для разбиения содержимого веб-страницы на блоки с тем, чтобы с различными блоками можно было совершать различные операции.
Например, чтобы просто разделить текст на абзацы, нужно каждый абзац начинать тэгом <p> и заканчивать тэгом </p>. Когда браузер встречает на сайте эти тэги, он показывает как абзац всё, что между ними находится.
CSS - каскадные таблицы стилей.
С помощью CSS задаётся оформление того, что отмечено тэгами. Например, браузер просматривает таблицу CSS и там сказано, что в тэге <p> текст должен быть синим. Тогда браузер показывает текст во всех абзацах синего цвета.
Поскольку тэгов в HTML ограниченное количество, часто оказывается, что для одинаковых тэгов нужно задать различное оформление. Достигается это добавлением в тэг классов (или идентификатора, или и того, и другого). После чего CSS может по имени класса (или идентификатора) выделить из общей массы именно этот тэг и задать ему необходимые свойства.
Например, есть два абзаца текста, один из них должен быть синим, другой - красным. В тэг первого абзаца добавляется класс "green" и в CSS для класса "green" назначается зелёный цвет. В тэг второго абзаца добавляется класс"red" и в CSS для класса "red" назначается красный цвет.
Если таблицу CSS сделать в отдельном файле, то её можно использовать для разных страниц сайта.
JavaScript.
Для того, чтобы на сайте можно было совершать сложные действия, используется обычно JavaScript. С помощью этого языка можно создавать целые приложения, работающие на сайтах. Например, игры. Или калькуляторы там, календари всякие и т.п.
Но есть один нюанс - команды JavaScript'а выполняются в браузере. Иногда это неприемлемо - например при работе с паролями. Ведь для проверки пароля, допустим, от емэйла с помощью JavaScript'а сервер должен предоставить браузеру всю базу паролей для сверки с тем, который ввёл пользователь. В результате пароли вообще потеряют смысл, так как будут доступны любому прохожему. Поэтому введённый пароль отправляется на сервер и проверяется уже там. А на сервере используется другой язык - PHP. Впрочем относительно недавно появилось ответвление от JavaScript'а, которое используется на серверах - Node.js.
PHP - препроцессор гипертекста.
Препроцессор - значит занимается процессом предварительной подготовки. Что позволяет создавать веб-страницы в автоматическом режиме, благодаря чему вся эта возня упрощается и ускоряется.
Как происходит создание сайта с предыдущими тремя языками - HTML, CSS и JavaScript? Распихиваем по отдельным папкам на диске разные типы содержимого - тексты, картинки, видео и пр. Создаём веб-страницы - файлы с расширением .html, - в которые вставляем содержимое, размечаем его HTML'овскими тэгами, оформляем внешний вид CSS'овскими указаниями, добавляем, если нужно, JavaScript'овые программы. Засовываем всё это на сервер и наслаждаемся.
С PHP всё почти так же, но с добавлением одной фишки, значительно улучшающей ситуацию. В PHP создаём не сами веб-страницы, а их шаблоны, в которых указываем, где что должно находиться - сюда вставить заголовок, туда подвал, там рыбу завернуть и т.д. А веб-страницы уже создаются сервером автоматически, когда их запросит пользователь. Одним из плюсов этой технологии является возможность подгружать веб-страницы по мере необходимости - прокручиваешь страницу вниз, появляется новая информация; не прокручиваешь - не появляется, экономит трафик и не надо ждать, пока всё загрузится.
SQL - язык структурированных запросов.
Вроде бы всё хорошо уже, зачем ещё какой-то язык? Когда человек создаёт сайт из кучи файлов, раскиданных по папкам, он хранит в голове информацию о том, где что лежит. В крайнем случае, может по этим папкам порыться и найти то, что нужно. Сервер не может (пока) залезть в голову человека за этой информацией, а самостоятельно решать, из чего лепить сайт, не имеет права.
Поэтому на сервере создаются таблицы, в которых расписано, где какой файл лежит и что он содержит. Эти таблицы вместе с файлами, которые в них описаны, называются базами данных. И вот для получения из баз данных информации и файлов применяются эти самые структурированные запросы. Которые пишутся на специальном языке SQL, который стал фактически стандартом в этой области (ну хоть где-то достигнута унификация).