Консольные приложения, очевидно, являются отправной точкой: пользовательский интерфейс - это огромный лес, и нет смысла пытаться пройти через него, пока вы не разовьете способность находить тропы в пустыне. Кроме того, вы не научитесь делать консольные приложения, которые не применимы ко всему, что вы делаете в C #.
Следующий шаг после этого - научиться создавать пользовательские интерфейсы. Я бы поспорил с теми, кто предлагает вам взять WinForms: да, есть много информации о том, как его использовать, и есть много инструментов, и в самом простом его довольно легко понять. Но есть две проблемы с WinForms.
Во-первых, многое из того, что делает WinForms настолько простым, на самом деле является крайне плохой практикой программирования. Смешивание бизнес-логики и логики представления в одном классе является нормой в программировании WinForms, и для преодоления этой привычки требуется немало усилий, особенно потому, что привязка данных - ключевой инструмент для отделения модели данных от представления - довольно незначительна в WinForms, хотя это центральное место в архитектуре WPF. С WPF можно многому научиться - еще много , но в итоге вы пишете гораздо лучшие программы.
Во-вторых, WinForms приближается к концу своей жизни. Вы не увидите, чтобы Microsoft потратила больше ресурсов на его улучшение. Они сделали. Вряд ли это означает, что он не будет полезен в будущем - так оно и есть - но его общее проникновение в экосистему разработки программного обеспечения сейчас настолько велико, насколько это когда-либо будет.
Другая причина использования WPF заключается в том, что большая часть того, что вы узнали о работе с WPF, применима и к Silverlight, который открывает дверь, которая навсегда закрыта для WinForms.
Что касается ASP.NET, то это то, что вы не хотите изучать, пока вам не понадобится.