Всё проще чем может показаться на первый взгляд. Подумайте, например, как поваренная книга превращается в еду? Есть рецепт (программа), есть повар (исполнитель), еще есть продукты и кухонная утварь (вычислительные ресурсы, файлы с данными, различные электронные устройства для модификации данных и т.д.). Как повар делает всего этого некое блюдо по рецепту понятно даже ребёнку.
Конечно любая аналогия ущербна: повар — исполнитель творческий, а компьютер — очень формальный, он следует "рецепту" буквально и чрезвычайно точно, и вместе с этим он никогда не делает ничего кроме рецепта. Т.е. обратите внимание, (!) вопреки постановке вопроса символы (символы программы) не превращаются «в сайты» и прочие результаты работы. Программа — это только "рецепт", по которому, например, введённые вами логин и пароль превращаются в запись в таблице — то есть в вашу учётную запись. Или, как точки высвеченные на светочувствительной матрице фотоаппарата (в цифровом фотоаппарате тоже работают программы) превращаются в графический файл на флешке... Не хочу уходить в бесконечные примеры, но всё «волшебство» заключается с одной стороны в исполнителе программы, а с другой стороны, в том, кто эту программу написал так, что она абсолютна понятна исполнителю, и в результате работы последнего получается не то что хочет исполнитель, а то что задумал программист. (В этом мире исполнитель собственной волей не обладает. Всё скучно.)
На практике всё немного усложняется тем, что программы чаще (не всегда) пишутся не на том языке, который понятен исполнителю. Но есть автоматизированный переводчик (компилятор), который осуществляет перевод программ из красивого текста, где слова выстроены ровными лесенками, в набор цифр. Ну представьте себе, если бы сочинялись рецепты на русском, а повара были бы, например, французами. Т.е. программисту чаще всего не нужно знать условного "французского" (инструкций микропроцессора), чтобы тем не менее программировать его работу. Чаще всего программист использует «языки высокого уровня», где формулировки команд приближены к решаемым прикладным задачам.
Чем же отличаются разные языки программирования? Зачем их нужно много? Опять прибегну к той же аналогии. По поваренной книге не сшить платья, а по лекалам и выкройкам не сварить каши (в прямом смысле этого слова). В поваренной книге в принципе не может быть таких слов и символов, чтобы руководствуясь ею сшить платье. Причём обратите внимание, что и повар и швея могут оказаться одним и тем же человеком. Аналогично на одном компьютере вы можете играть в игру, которая была написана на одном языке, и считать что-то на калькуляторе, который написан на другом языке.
То есть разные языки нужны чтобы на одном и том же исполнителе запрограммировать решение задач разного класса. Однако бывает и так, что специфический исполнитель управляется каким-то особым специфическим языком. В этом случае язык определяется возможностями исполнителя, а не кругом решаемых задач.
Если на пальцах, то компьютер это иностранец понимающий свой язык, программа его язык, а программист переводчик с человеческого на компьютерный
HTML - язык разметки страниц
Хочу внести поправочку... То что вы видите на сайте, это на самом деле, вероятнее всего никто не компилировал, так как весь дизайн пишется на НЕ КОМПИЛИРУЕМЫХ языках. Просто сервер даёт браузеру код, а он в свою очередь просто визуализирует написанное программистом(фронтенд разработчиком). А компилируется код для программ, приложений игр...