Многие люди изучают алгоритмы, потому что понимание хороших эффективных алгоритмов и структур данных необходимо, чтобы быть профессиональным программистом.
Если вы знаете, как эффективно использовать алгоритмы и структуры данных, то с большей вероятностью пройдете собеседование на техническую должность.
Почти все компании предпочитают нанимать разработчиков, хорошо разбирающихся в алгоритмах и структурах данных. Помните об этом! Не откладывайте изучение фундаментальных концепций.
Знание алгоритмов помогает найти эффективное решение задачи.
Задача разработчика — использовать наиболее эффективное решение. Для этого нужно учитывать скорость работы программы, объём потребляемой памяти, экономическую эффективность (насколько стоимость решения оправдана конечным результатом), простоту реализации, масштабируемость.
Всё программирование завязано на структурах данных и алгоритмах. Первые нужны для хранения данных, а вторые — для решения задач с помощью этих данных. Если вы плохо знаете алгоритмы, вы не сможете определить, можно ли оптимизировать свой код. А от разработчика ожидают именно этого!
Примеры кода в данном курсе написаны на
C#, однако 99% материала будет ясно любому
Java-программисту, поскольку синтаксис языков очень схож.
Чему вы научитесь
На данный момент курс покрывает следующие темы (подробнее по урокам смотрите программу курса):
- Введение в алгоритмы и структуры данных: структура данных, абстрактный тип данных, разница между этими понятиями. Что такое алгоритм и почему всё это для нас важно?
- Введение в анализ алгоритмов: сколько времени займёт исполнение программы,
построение log-log графика, аппроксимации, порядок роста сложности (Big-O нотация), потребление памяти
- Массивы: массивы в C#, массивы в памяти, сложность операций на массивах
- Алгоритмы сортировки: пузырьковая, сортировка выборкой, вставками, рекурсия, Шелл-сортировка, сортировка слиянием, быстрая, стабильность алгоритмов сортировки
- Списки: List встроенный в BCL, узлы (ноды), связный список (односвязный, двусвязный),
LinkedList встроенный в BCL
- Стек: теория и практика, стеки на массиве, на связном списке, встроенный в BCL
- Очереди: теория и практика, очереди на массиве, кольцевой буфер,
на связном списке, встроенная в BCL
- Алгоритмы поиска: линейный, бинарный
- Символьные таблицы: введение, API, таблицы на последовательном поиске,
таблицы на бинарном поиске
- Хеш-таблицы: введение, хеширование, GetHashCode, подходы к разрешению коллизий: раздельные цепочки и линейное пробирование, тип Dictionary встроенный в BCL, типы представляющие множества встроенные в BCL
- Деревья: двоичное дерево поиска и его реализация (больше будет добавлено в будущем)
- Пирамиды: введение, пирамиды и массивы, пирамидальная сортировка
- Различные алгоритмы: этот раздел будет расширяться, а пока включает алгоритм «решето Эратосфена»
Это достаточно полное руководство по алгоритмам и структурам данных.
Курс практический с домашними заданиями и разбором решений.Для кого этот курс- C#-разработчики, которые хотят изучить алгоритмы и структуры данных на их любимом языке
- C# и Java-разработчики, желающие повысить свой профессиональный уровень востребованными знаниями и опытом эффективного применения алгоритмов и структур данных
- Начинающие разработчики, которые готовятся к поиску работы и прохождению собеседований
Требования для прохождения курса- Знание C# или Java на базовом уровне
- Из инструментов достаточно Visual Studio Community Edition (это бесплатная полнофункциональная расширяемая среда IDE для создания современных приложений Android, iOS и Windows, а также веб-приложений и облачных служб)
Прежде чем углубляться в изучение Алгоритмов и структур данных, рекомендуем получить базовые знания по основам и языкам программирования C# и Java в наших курсах:
Программирование на C# – от новичка до специалистаПрограммирование на Java с нуляВСЕ КУРСЫ - Языки программированияПрограмма обучения включает видео уроки по изучению основ программирования - основных базовых Алгоритмов и структур данных для начинающих C# и Java разработчиков. Благодаря практическим заданиям и примерам, Вы сможете закрепить полученные знания по использованию алгоритмов и структур данных на практике.
Мы собрали отзывы учеников, прошедших онлайн курс. Оставьте свой отзыв после прохождения Курса Алгоритмы и структуры данных от А до Я!
О преподавателе курса
- Инженер-программист с опытом более 15 лет
- Сертифицированный специалист по WPF и WCF
- Организатор и координатор .NET митапов MskDotNet
"Я благодарен за то, что люблю своё дело.
Профессионально занимался проектированием и реализацией ПО больше 10 лет, преимущественно на платформе .NET. Люблю работать над созданием богатых и мощных приложений с использованием современных технологий. Сертифицированный специалист по WPF и WCF. Один из координаторов московских .NET митапов MskDotNet.
О стиле преподавания: самое главное, что характеризует мои курсы - выжимка самого необходимого. Краткость - сестра таланта, и я верю в то, что в современную эпоху информационной перегруженности - необходимо сосредотачиваться на самом главном и отсеивать "лишнее" до тех пор, пока это "лишнее" действительно не понадобится.
Пожелание студентам: Fake it Till You Make it! Это означает: притворяйся, пока не получится. Хотите стать senior developer? Имитируйте его деятельность, старайтесь делать всё то же, что делает senior developer, и так или иначе - вы им станете. Поэтому - учиться, учиться и ещё раз учиться. Нет унынию. Fake it Till You Make it!"
Отличный курс!!!