Какая стратегия изучения C# наиболее оптимальна и продуктивна?
Начал изучение с основ, смотрю видео и немного читаю статьи.
Список тем довольно обширный, всякие делегаты, интерфейсы, события, потоки, сборки мусора.. в голове формируется каша..
Пытаюсь освоить каждый момент досконально, но на это уходить очень много времени, работу с делегатами только изучаю 2 недели и все это базовые примеры
Как лучше изучать C#, открыть какую то книгу и начать делать предложенный проект вместе с автором или сначала нужно все эти коллекции и делегаты изучить а потом перейти только к созданию полноценного проекта?
Нужно немного смотреть видео, немного читать статьи, И много писать код.
Попробуйте делать не полностью предложенный автором проект, а прочитать пример, понять его суть и сделать свой проект, похожий на автора. Могут встречаться трудности, зато если освоите на собственном примере - будет в разы эффективнее.
Я бы добавил: подсматривать в видео ответы, только в крайнем случае. Например когда на попытки решения ушло более 10 часов. Здесь под попытками имеется ввиду целеустремлённое решение проблемы. Если вы раз в неделю на 2 часа фокусировались на проблеме и пытались её решить, то смотреть ответ только через 5 недель - больше месяца. При этом подглядыванием не считается изучение справки по языку или технологии / библиотеке.
Вам надо найти интересную задачу и пытаться её реализовать.
Мой первый проект - программа-парсер, которая заходила на hh.ru под моим логином/паролем, парсила-разбирала информацию со страниц и сохраняла эти данные в excel-документ. Работая над этим приложением, я научился работать с webbrowser, внешними библиотеками, столкнулся с первыми архитектурными проблемами. Все делал самостоятельно и гугла мне было достаточно для того, чтобы найти ответы на вопросы.
Подумайте чем вам лично было бы полезно программирование и отталкивайтесь от этого.
Рекомендую смотреть реализацию чего-то с использование того что хотите освоить.
Лично я учился так. У меня была база программирования в целом (писал до С# на другом не типизированном, скриптовом языке) и я сразу придумал себе проектик не большой, и примерно понимал алгоритм работы, а вот как построить на C# не знал. Так пока я писал тот проект я научился работать со строками (парсить) использовать регулярки, привык к синтаксису C#, узнал как делать HTTP запросы, работа с потоками, имитацию нажатий клавиш. Естественно что это было больше ознакомительное приложение, и сделано лишь бы работало, но это дало хороший старт.