Как эффективно подтянуть теорию и навыки c#?
На курсы забить - специалисту будет там делать не чего, все проходил от работы(для сертификатов). Рихтера - читать, это большой плюс к пониманию работы платформы, если что-то не понятно - не парится и не думать о себе плохо, ничего страшного по мере освоения платформы придет.
Лучше всего осваивать - писать код - желательно боевой, лучше всего на работе, Вы же находили вакансии по которым проходите, не занижайте себе планку - Вы работающий программист, наверняка и на 1с приходилось решать сложные и интересные задачи, вы уже умнеете писать код, не стоит зацикливаться на пробелах, если это действительно пробелы - разберетесь, поправят, погуглите. Не поверите сколько приходит народа на хорошие вакансии с очень сомнительным скилом и проходят.  И наоборот многие и хорошие разработчики, умеющие писать, считают что они что-то где-то не знают, что у них есть пробелы и тп. не приходят на собеседования, не меняют работу, которая не нравится. пробелы будут главное умение разобраться и применить.
Если все-таки сомневаетесь - посмотрите требования вакансий - возьмите оттуда основные технологии и напишите, любую из своих задач на них, не полностью все - а одну интересную задачу - но с начала и до конца и обязательно чтоб она работала, не просто наброски, а рабочий вариант - как для сдачи в бой, если что-то не понятно читайте помимо Рихтера, что нибудь в роде - "Бла-бля в действии", "Эфективный бла-бла", "Бла-бла для профессионалов" и + поиск в интернете, решая конкретную задачу и круг поиска уже и проще.
Почитайте CLR via C# Джеффри Рихтера, например. Как раз для "не новичка".