В данный момент знаю HTML/CSS на хорошем уровне, решил изучить программирование и в качестве цели изучения взять создание мессенджера. Скажите пожалуйста, хороший ли я выбрал вариант: C# как основной язык, ASP.NET MVC для сервера и Xamarin для мобильных версий. Может быть, я что-то упустил или возможен лучший вариант?
Лучший вариант - в качестве цели изучения взять создание полезного продукта.
Самый полезный продукт - за который вы получили деньги. Уже.
Все остальное - имеет все шансы не стать полезным.
По теме мессенджеров, да, возможно, протокол TCP не обязателен, можно использовать просто HTTP с long polling, но лучше для каждой ОС изучать native.