Георгий_, поясню, что я имел в виду. Тренировка на алгоритмических задачках безусловна важна, но есть несколько нюансов:
1. В 99% случаях Вы будете работать с процедурным кодом (хотя конечно зависит от задачи). Это означает, что скорее всего, у вас будет от силы 2-3 класса (и то вряд ли), которые реализуют какие-либо процедуры (зачастую, вычисления). В реальном приложении этих классов у вас будет десятки и сотни, соответственно, на первый план выходит умение выделять ответственность и определять взаимодействие между классами. Задачки вас этому не научат.
2. При работе с различными классами и их взаимодействием станет более понятным значение того или иного элемента языка (интерфейсы, абстрактные классы, делегаты, асинхронность и т.д.). Тяжело представить, как все это может использоваться на том же codewars (если я ошибаюсь - поправьте).
3. Алгоритмические задачи не дадут Вам опыта работы с реальным приложением,
его окружением, взаимодействием с базой данных и так далее. Создавая конкретное приложение, вы будете решать конкретные практические задачи.
Иными словами, работая с алгоритмическими задачками, Вы будете копошиться (другого выражения не смог подобрать) в очень узком контексте. К тому же, если Вы собираетесь в дальнейшем искать работу, следует понимать, что программирование происходит не в вакууме, а на конкретном фреймворке с конкретным окружением. И для получения работы хорошо хотя бы ориентироваться в этом.
И наконец, в плане базовой подготовки советую бросить силы на изучение ООП и принципов SOLID (опять же, если вы заинтересованы в получении работы). Это даст Вам понимание того, как организовывать код, как вносить в него изменения и при не создавая переусложненные конструкции. Рекомендую начать с книги Роберта Мартина "Принципы, паттерны и методики гибкой разработки на языке C#", она легко достается из сети.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.