1) По
C#
2) Изучи принципы SOLID/KISS/DRY/MVC и популярные паттерны, посмотри статьи/видео на том же хабре или ютубе.
3) Далее прочитай книги, вроде чистого кода от Мартина, чтобы заиметь привычку не создавать функции по сотне строк и не называть их транслитом.
4) В тоже время делай пет проекты разных жанров, нарабатывай практику, пусть они плохенькими поначалу, с каждым новым проектом будешь понимать, что раньше надо было сделать по другому. Чем больше кода будет попадать в новые проекты - тем лучше (это значит, что он становится менее связанным и способен переиспользоваться).