1. Практика. Делать какие-то проекты для себя (или знакомых), не абстрактные, которые реально можно использовать, типа менеджера заметок (на замену дурацкому EverNote), боты для мессенджеров (например, автоответчик), программа для сортировки фотографий, или для фотоэффектов, легкий и удобный звуковой редактор, простейшие игры (если на мобилку, то даже продавать можно). Это я прямо не задумываясь написал, первое, что в голову пришло. Мы живем в мире жаждущем автоматизации. Есть миллионы вещей, которые делать неудобно, и соответствующая программа сделает жизнь чуточку лучше. Главное этим загореться. Когда есть вдохновляющая идея - вы будете писать код (иногда ночами), искать в инете как сделать ту или иную фичу, прокачиваться в целом с архитектурой приложений, алгоритмами, структурами данных. Главное, чтобы с этой практикой понемногу рос ваш уровень (т.е. надо читать, смотреть, спрашивать), чтобы код улучшался. А то есть люди, которые годами пишут ужасный код, и ничему не учатся. Учите стек технологий (если C# - то уметь работать с asp.net, WPF, Entity Framework и пр.), фреймворки, самые основные паттерны и принципы (SOLID). Но и задачки забрасывать не стоит, конечно.
2. Как уже отметили - язык (англ.). Поверьте, это открывает огромное количество дверей. Даже средний уровень (способность более-менее свободно общаться) даст вам возможность работать удаленно, с доходом намного выше того, что вы сможете найти в России. Или поработать в других странах. В общем, весь мир открывается (могу в личных сообщениях подробнее рассказать о своем опыте). Тем более, что язык быстро не учится. Смотрите сериалы или фильмы на англ. с субтитрами, читайте статьи.