Чему мы вас научим в этом курсе?
В этом курсе мы пройдём основные алгоритмы и структуры данных. Примеры кода написаны на C#, однако 99% материала будет ясно любому Java-программисту, поскольку синтаксис языков очень схож, а примеры кода алгоритмов и структур данных так вообще будут почти полностью совпадать и в C# и в Java. В курсе есть лишь несколько лекций посвящённых исключительно библиотекам C#.
Зачем изучать алгоритмы и структуры данных?
Алгоритмы и структуры данных составляют основы программирования.
Слабость понимания алгоритмов и структур данных сильно понижает ваши шансы пройти собеседование в хорошую компанию.
Почти все компании предпочитают нанимать разработчиков, хорошо разбирающихся в алгоритмах и структурах данных. Запомните это. Не откладывайте изучение фундаментальных концепций.
Вы можете меня спросить «почему я должен взять именно ваш курс»? И вот мой ответ:
На данный момент курс покрывает следующие темы:
Кому подойдёт этот материал?
Скачать курс:
		
			
								- Реализация основных структур данных: список, стек, очередь и понимание того как они устроены
 - Корректное использование структур данных встроенных в BCL
 - Подготовка к собеседованиям, на которых вас будут мучить алгоритмами
 - Деревья, хеш-таблицы и др. структуры данных
 - Различные алгоритмы
 
- Знание C# или Java на базовом уровне
 - Из инструментов достаточно Visual Studio Community Edition
 
В этом курсе мы пройдём основные алгоритмы и структуры данных. Примеры кода написаны на C#, однако 99% материала будет ясно любому Java-программисту, поскольку синтаксис языков очень схож, а примеры кода алгоритмов и структур данных так вообще будут почти полностью совпадать и в C# и в Java. В курсе есть лишь несколько лекций посвящённых исключительно библиотекам C#.
Зачем изучать алгоритмы и структуры данных?
Алгоритмы и структуры данных составляют основы программирования.
- Понимание алгоритмов и структур данных – одно из самых важных
требований для устройства на работу в хорошие компании. 
Слабость понимания алгоритмов и структур данных сильно понижает ваши шансы пройти собеседование в хорошую компанию.
Почти все компании предпочитают нанимать разработчиков, хорошо разбирающихся в алгоритмах и структурах данных. Запомните это. Не откладывайте изучение фундаментальных концепций.
- Более мощное «железо» – не всегда хорошее/доступное решение проблем связанных с производительностью. Иногда, возникает необходимость разрабатывать программы для очень низко производительных устройств. Использование какого-либо железа зачастую так же зависит от бюджета заказчика, поэтому далеко не всегда выбор железа диктуется разработчиком.
 - Понимание того, что происходит «под капотом» весьма желательно. Хотя бы на один уровень в глубину. Действительно, если вы не понимаете как устроен список, иногда вы будете принимать не оптимальные или вообще неверные решения.
 
Вы можете меня спросить «почему я должен взять именно ваш курс»? И вот мой ответ:
- этот курс покрывает множество тем
 - я старался сделать этот курс не слишком сухим
 - курс посвящён не только алгоритмам и структурам данных, но также освящает внутреннее устройство структур данных и алгоритмов встроенных в основную библиотеку классов .NET (библиотека классов в .NET Core в плане структур данных и алгоритмов устроена точно так же)
 - курс практический с домашними заданиями и решениями
 - курс поможет вам пройти технические собеседования
 - курс сделан профессиональным разработчиком с большим реальным опытом
 - и множество др. причин  
	 
На данный момент курс покрывает следующие темы:
- Введение в алгоритмы и структуры данных: структура данных, абстрактный тип данных,
разница между этими понятиями. Что такое алгоритм и почему всё это для нас важно?
 - Введение в анализ алгоритмов: сколько времени займёт исполнение программы,
построение log-log графика, аппроксимации, порядок роста сложности (Big-O нотация), потребление памяти
 - Массивы: массивы в C#, массивы в памяти, сложность операций на массивах
 - Алгоритмы сортировки: пузырьковая, выборкой, вставками, рекурсия, Шелл-сортировка, слиянием, быстрая, стабильность алгоритмов сортировки
 - Списки: List встроенный в BCL, узлы (ноды), связный список (односвязный, двусвязный), LinkedList встроенный в BCL
 - Стек: теория и практика, на массиве, на связном списке, встроенный в BCL
 - Очереди: теория и практика, на массиве, кольцевой буфер, на связном списке, встроенная в BCL
 - Алгоритмы поиска: линейный, бинарный
 - Символьные таблицы: введение, API, таблицы на последовательном поиске, таблица на бинарном поиске
 - Хеш-таблицы: введение, хеширование, GetHashCode, подходы к разрешению коллизий: раздельные цепочки и линейное пробирование, тип Dictionary встроенный в BCL, типы представляющие множества встроенные в BCL
 - Деревья: двоичное дерево поиска и его реализация (больше будет добавлено в будущем)
 - Пирамиды: введение, пирамиды и массивы, пирамидальная сортировка
 - Различные алгоритмы: эта секция будет расширяться, а пока покрывает алгоритм «решето Эратосфена»
 
Кому подойдёт этот материал?
- C#-разработчики, которые хотят изучить алгоритмы и структуры данных на их любимом языке
 - Начинающие разработчики, которые готовятся к поиску работы
 
Скачать курс:
				Скрытое содержимое могут видеть только пользователи групп(ы): PREMIUM