Мова викладання в курсі – російська. Незабаром буде доступна українська версія цього курсу.
Відеозаписи лекцій без зворотного зв’язку та участі викладача. Ви отримаєте доступ до матеріалів одразу після оплати.
Станьте найкращим програмістом, поліпшивши свої навички та пройдіть співбесіду. Для C# і Java розробників
Чого ви навчитеся
Реалізація основних структур даних: список, стек, черга і розуміння того, як вони влаштовані
Коректне використання структур даних, вбудованих у 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#-розробники, які хочуть вивчити алгоритми та структури даних їхньою улюбленою мовою
– Розробники-початківці, які готуються до пошуку роботи
Відгуки
Відгуків немає, поки що.