Посоветуйте книги по алгоритмам для C#

Всем привет.

Ребята подскажите, хорошие книги по алгоритмам и структурам данных для начинающих в C#. Желательно на русском языке, с англ пока не очень))

Спасибо.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Загугли товарища Сэджвика. Две книги есть у него — с примерами на С++ и на Джаве. Обе есть в переводе. Пишет он на редкость хорошо, излагает сложные материи буквально на пальцах.
А то что не те языки — так тебе будет только в плюс переложить примеры с одного объектного языка на другой. Лучше в голове отпечатаются.
PS На «Кодерка» не обращай внимания, это местный форумной неадекват.

Спасибо, я просто для начала хочу немного в голове структурировать эту тему, не углубляется прям до конца, потому что я так и язык забуду))) это уже когда будет там уровень мидла наверное, и задачи сложнее, тогда больше этому удилять время)

Спасибо, я просто для начала хочу немного в голове структурировать эту тему,

Ты почитай сначала, прежде чем такие выводы делать.
В любом случае — язык вторичен, главное, чтобы в голове все укладывалась в правильном порядке. Сэджвик один из немногих который умеет это делать.

я так и язык забуду

Что ты забудешь? Везде одинаковые форы, ифы, функции и присваивания. На уровне разворота строки и пузырьковой сортировки ты вобще не увидишь разницы

Спасибо большое за советы!) будем читать)

Эти адекваты тебе насоветуют. :) Просидишь вечным июнем в рогах и копытах за «спасибо» до пенсии. Зато без английского.

С другой стороны, не будешь адекватам конкуренцию на рынке создавать — и то хлеб. А то у них самих, английский в стиле «моя твоя не понимай», того и глядишь попросят...

Так я ж не говорю забить на англ)) просто учить не все сразу) я думаю это правильное мнение)
Ну как говорят, сколько людей столько и мнений.

Не хочешь всё сразу — учи английский, в начале.

Аксиома тут такая: c aнглийским (без алгоритмов) у тебя есть шансы устроиться кодерком в что-либо стоящее (где смогут платить). Без английского шансов нет, хоть алгоритмами обчитайся...

программирование > английский > алгоритмы

с джунов английский не требуют, как и алгоритмы

Вот эти слова мне больше нравятся) спасибо Вадим!)

Как раз джунам и задают такие вопросы про поиск в глубину на бумажке итд

В чому взагалі проблема? Кнут і Кормен є у перекладі. Для шарпу нема окремих алгоритмів, вони можуть бути у окремих галузях знань, а база всюди одна.

Я уже знаю что нет отдельных алгоритмов для шарпа, я просто спросил какие книги и авторы рассказыать максимально просто и понятно для человека который входит в ИТ.

Якщо принципово російською і з прикладами на C# то:
itvdn.com/...​d-data-structures-renewed
Але курс платний і не дуже об’ємний.

Я знаю эти курсы, но пока не готов за них заплатить)

Матеріали до курсу можна скачати безкоштовно.

На сторінці курсу (див. вище) є посилання «Скачать материалы»

Ось курс по алгоритмах англійською мовою.

C# и всякие там алгоритмы без английского — это время, выброшенное на ветер.
Лучше уж, это время с болъшей пользой потратить — посторожить чего или там поразгружать...

Не согласен)
Я думаю, что на позицию джуна, можно с минимальным пробовать англ. конечно это в плюс не пойдёт на собеседовании, но, если с желанием и горящими глазами, то будет успех! И понятное дело, что учить и учить.

Или на собеседованиях требуют что б англ был «як пісня лине, як ластівочка щебета»??)!

И понятное дело, что учить и учить.

А как учить? Eсли у вас, вместо самого элементарного (чтение технической литературы на английском) — «Желательно на русском языке, с англ пока не очень».

С таким учением — в «рога и копыта», джуном забесплатно. И так, насовсем. В общем, сторожить — всяко денежнее будет....

Я прекрасно понимаю, что вся лучшая литература и сайты на англ языке, где можно найти всю информацию по решению многих вопросов. Но, выучить и понять можно на русском.
А первая работа уже дело случая.
Главное желание, и терпение!
Терпением и труд — все перетрут!

Отож. Потому, не ограничивайте себя языком ордынских дикарей. А пользуйтесть возможностью убивать сразу 3-х зайцев — осваивать C#, алгоритмы, да ещё и английский.

«хороший» совет заниматься всем подряд одновременно

Если заниматься не так, а расставлять приоритеты — тогда забить на C# и алгоритмы и прокачивать английский.

С другой стороны, алгоритмы на c# и на английском — называется «заниматься всем подряд одновременно» лишь у тех, кто со слабым мозгом. Что таким делать в ИТ?

Если заниматься не так, а расставлять приоритеты — тогда забить на C# и алгоритмы и прокачивать английский.

и пойти учителем английского в школу в конце :)

С другой стороны, алгоритмы на c# и на английском — называется «заниматься всем подряд одновременно» лишь у тех, кто со слабым мозгом. Что таким делать в ИТ?

это 3 разные задачи, а образованные люди знают что человек не способен одновременно выполнять эффективно даже две задачи, в которых необходима сосредоточенность, обучение практически невозможно в таком случае — кратковременная память вайпается и практически ничего не перейдет в долговременную

и пойти учителем английского в школу в конце :)

Всё толку больше будет, чем недо-кодерком без английского, работающим за «спасибо» в рогах и копытах.

образованные люди знают что человек не способен одновременно выполнять эффективно даже две задачи

Освоение алгоритмов, c практикой на c# и всё это на английском — это не 3, а 1 задача.

А потом, если мозг такой недоразвитый, что не справится с 3 разными (т.е. реально разными) задачами — что делать в ИТ? Там такой некрепкий мозг окончательно выжмут за первые же полгода — после чего, будет чел ходить по улицам с мягким мозгом и улыбаться...

Освоение алгоритмов, c практикой на c# и всё это на английском — это не 3, а 1 задача.

сразу видно что кто-то только английский учил =)

это 3 разные задачи, а образованные люди знают

Чувак «эти 3 разные задачи» и есть та самая работа на которую чувак якобы собирается подписаться.

да, все нужно, но последовательно, а не параллельно, а если знаний во всех 3х задачах нет, то выглядит вообще малореально параллельно ими заниматься

Начни со Свинки Пеппы...

Да.

но последовательно

Эти слова мне больше нравятся)
Я почти так и делаю)
Язык немного освоил, готовлюсь в собеседованию, поэтому и алгоритмы хочу хоть немного разобрать, а англ каждый день слушаю аудио/видео. Просто на курсы пока не получается ходить, но обязательно пойду.

Если хочешь действительно выучить и запомнить на долго, то надо практика хорошая
Практикуй сразу на leetcode.com и www.hackerrank.com/dashboard
Там тебе и видосик и текст простенький собьяснением нужной структуры и алгоритма и задача сразу с тестами чтобы не присунул что попало и все это легко делается на C#.
А если просто почитать книгу то скукота смертная эти алгоритмы особенно если они написаны на хрен знает каком псевдо языке, у меня этих книг вагон и мальнькая тележка, а вот зацепило только когда начал задачки делать.

Спасибо за ссылки! Еще есть www.codewars.com , только там нет объяснений структур и алгоритмов, но интересно потом смотреть на лучшие (оптимальные) решения других юзеров

Запрос звучит несколько странно. Абсолютное большинство хороших книг по алгоритмам и структурам данных содержат в себе псевдокод, да даже если написано на чем-то другом, отличие одного языка от другого будет в мелочах, которые изучаются за два дня.

В общем возникает вопрос — зачем? Если на галеру, то джуну хватит статей на хабре по структурам данных/простейшим сортировкам и то, алгоритмы разве что для прохождения собеса. Если под стажировку в мелкософт, то нет особого смысла задалбывать структуры данных, если с английским не очень. Если для какого-то абстрактного самообразования, то опять таки без английского это будет бесполезно.

Говоря о хороших книгах — по структурам можно выборочно почитать первый том Кнута, не вдаваясь в глубокие дебри плюс по структурам данных по-моему дает представление книга по подготовке к экзамену 70-483 (если я ничего не путаю), курсы от Стенфорда на курсере, у них есть субтитры, для некоторых на видео и русские.

В привязке к C# можно еще покурить сорсы структур данных с мсдна. Вот например, реализация стека referencesource.microsoft.com/...​stem/collections/stack.cs

В плане алгоритмов сортировок, если тяжело понять, как это работает, можно посмотреть визуальные реализации, как здесь visualgo.net/bn/sorting?slide=1

для собеседования надо, как джуну, что б если что немного хотябы понимать что спрашивают)
Я понимаю в дебри лезть, то я и C# забуду)) все будет приходить с практикой и опытом)
Спасибо за ответ!

Я бы рекомендовал сначала как следует выучить основы языка, во избежание лишнего велосипедостроения (вроде для шарпа Троелсен рулит). А потом уже начать разбираться с алгоритмами и структурами данных (можешь послушать курс на Prometheus, из не-англоязычных он довольно хороший; параллельно заглядывай в книгу Кормена за деталями) — и имплементить эти вещи самостоятельно по описаниям и псевдокоду.
По-моему, для первичного ознакомления с данными темами такой подход будет куда полезнее, чем разбирать готовые чужие реализации.

Спасибо! Реально хорошая мысль) но как я понимаю, на собеседование могут что то спросить про это, хотя бы для понимания того, понимаю ли я что это...!?)

Попробуйте вот этот курс: edx.prometheus.org.ua/...​thms101/2015_Spring/about. Я проходил давно, но мне понравилось больше, чем на Coursera. Могу даже сбросить Вам решения на C#, но лучше сделать все самому...

Буду пробовать сам!)
Спасибо) я хочу научится и понять!

Алгоритмы не то, что бы были сильно зависимы от языка. Минимум от парадигмы. ПО структурам данных норм Шилдт.

Подписаться на комментарии