Этапы создания:
- Выбираем тематику сайта
- Решаем, какие модули для этого сайта нужны
- Принимаем решение: писать самому или использовать CMS
- В зависимости от принятого решения: верстаем шаблоны страниц для CMS или для самостоятельного заполнения
- Пишем (выбираем) функциональные блоки для сайта: авторизацию, комментирование и т.д., естественно, с созданием БД
- Пишем админ-панель
- Собираем сайт
- Выкладываем на хостинг и заполняем содержимым
Выбор языка программирования зависит от вас. Логично предположить, что обязательно знание CSS и HTML. А вот с логикой сайта, рекомендую PHP и JS. Perl, Python, Java и тому подобными языками не рекомендую, пока, заморачиваться.
Если ты пишешь проект для себя, то попробуй написать сам. Хотя бы для понимания принципов работы каждого блока сайта. Но учитывай, что при этом затрачивается много времени.
Для ответа на второй вопрос скажу следующее: при создании блоков сайта (прим. регистрация) ты получаешь данные, введенные пользователем, обрабатываешь, если надо - шифруешь, и сохраняешь в базу данных. Если надо отобразить, соответственно, извлекаешь и показываешь пользователю.