Подскажите пожалуйста, где можно найти что-то подобное задачнику по С# (книги, онлайн-ресурсы и т.д). Сейчас читаю Рихтерa CLR via C#, но понятное дело что одной теории мало и без практики всё забудется буквально через пару дней. Прошу не засорять очевидными ответами по типу: "Ну придумай себе задачу и решай", "Ну поищи какие-то задания на фрилансе". Мне нужны примитивные задания, которыми можно просто закрепить пройденную тему, но не просто писать код, повторяя за автором, а поломать чучуть мозги. Лучшим вариантом было бы увидеть как та или иная конструкция используется в реальном коде реальной программы, так как когда ты видишь это все в примере с Foo и Employee, как-то в голове особо не укладывается, когда именно такое пригодится и пригодится ли вообще
В добавок хотел бы узнать у разработчиков:
Насколько Trainee глубоко надо знать сам .NET (не надо упоминать реляционные базы, js, css/html, я и так понимаю что это надо учить) ? Часто ли используются те же перегрузки операторов, операций преобразования типов, LINQ и так далее?
Надеюсь на вашу помощь и адекватность ответов :)
- 81,538
- 23
-
Сведения из книги CLR via C# выходит за рамки базовых знаний C# поскольку рассматривает язык гораздо глубже и следовательно выше Trainee, для которого нужны знания примерно из раздела для новичков подборки SO. Вот LINQ используется везде и повсеместно. Хороших ресурсов "все в одном" честно не видел, только гугл по запросам "задачи для c#". Есть еще сборники задач на типа Уэзерелл "Этюды для программиста" или сборник задач Златопольского, но я бы не назвал их хорошими. – Alex Krass Sep 22 '20 at 19:39
2 Answers
Это как курица и яйцо - вы не закрепите никакие знания без использования их на практике, ну а просто практика без теории тоже мало чем будет полезна.
Лучший совет, что тут можно дать - это сделать практический проект. Без него все теоретические изыскания - напрасная трата времени. Вы только на практике сможете понять, как использовать ту или иную конструкцию.
Само по себе развитие как программиста несет итеративный характер. Вы пишете полную чушь в первом проекте, анализизуете результат, делаете выводы, пишете чуть меньший бред в следующем проекте.
Что каается языка как такового - это не играет большой роли, знаете вы синтаксис на зубок или нет - кому нужно вас вопросами все равно завалит. Обращайте больше внимание на общие для всех языков принципы - такие как архитектура, паттерны, SOLID, алгоритмы и структуры данных.
В современных реалиях не имеет значения, знает джуниор о поколениях GC или конечном автомате async/await - вам все равно это придется учить на практике. Но если вы DAL от BAL не отличаете или не знаете, зачем вообще нужна асинхронность или чем линейный поиск от хеш таблицы отличается, то у вас пробелы в основе основ.
- 32,857
Начинать путь всегда тяжело особенно потому, что не знаешь куда идти.
По поводу материалов для обучения:
- Можно попробовать посмотреть на сайты указанные в этой статье там должны быть примитивные задачи с тестами предлагаемого вами решения.
- Алгоритмы на C++. Роберт Седжвик стоит хотя бы прочитать эту книгу (желательно серьезно проработать) Не смотря на то, что код на с++ это не должно быть помехой для формирования понимая.
- Совершенный код Макконнелл - обязателен к прочтению. Эта книга прямо формирует программистское мышление.
По поводу использования технологий:
Linq используется практически постоянно. Очень важный инструмент.
Желательно освоить какую-нибудь ORM например Entity Framework.
Стоит попробовать сделать простенький проект на MVC или API для получения данных из базы.
Очень советую посмотреть сайт https://metanit.com/sharp/ и постараться проработать как можно больше статей отсюда.
Можно попробовать поискать проект на гитхабе, который вам интересн и который написанный на языке, который вы изучаете и читать и разбираться в чужом коде.
Ну и конечно же этот сайт, на котором вы сейчас это читаете. Решая вопросы, которые задают здесь другие пользователи вы сильно прокачиваетесь. Даже просто подписавшись на метку языка который изучаете и раз в день прочитывая ответы на вопросы вы будете узнавать много нового.
Удачи в обучении!
- 1,274
- 2
- 10
- 24
-
1У Седжвика есть книга "Алгоритмы на java", которая будет поближе чуть чуть к C#, чем C++. Там по ней ещё и курс на курсере есть из 2 частей. – tym32167 Sep 22 '20 at 19:47