Изучение c# на примерах

Формула программиста
основатель — Волосатов Евгений Витольдович
Вебинар «Что тебе поможет стать крутым программистом?» начнётся через 14 час. 37 мин.
У вас нет доступа для просмотра этой записи.

Получить доступ

Теория ООП

Практический курс по теории Объектно-ориентированного программирования.
С нуля создаётся проект по рисованию различных геометрических фигур,
которые потом объединяются в спрайты, взаимодействуют друг с другом.

Во время создания проекта постоянно применяется рефакторинг кода,
при этом демонстрируются приёмы Объектно-ориентированного программирования.

Во второй части курса мы проработаем понятие Интерфейса.

Объём: 39 коротких видеоуроков
Время: 7 часов 40 минут.
Доступ на 30 дней.

3000 руб.


Для подписки на пакет необходимо авторизоваться.

Список уроков | фото | видео

# Название видеоурока Решило Рейтинг Доступ
1 Инкапсуляция мечты 00:09:02 107 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 9 мин. [Показать отчёт]
Научился: Повторил 
Сложности: нет 
Комментарии: Инкапсуляция - сокрытие. Со всеми вытекающими. Скрываем провода и микросхемы под корпусом, наружу выставляем лишь кнопку Power и разъем для клавиатуры. 
2 Урок рисования 00:08:10 102 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 8 мин. [Показать отчёт]
Научился: Потвторил 
Сложности: нет 
Комментарии: нет 
3 Первый класс 00:09:53 95 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 11 мин. [Показать отчёт]
Научился: Повторил 
Сложности: не было 
Комментарии: нет 
4 Второй класс 00:09:13 91 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 15 мин. [Показать отчёт]
Научился: Повторил 
Сложности: не было 
Комментарии: нет 
5 Круглый класс 00:08:10 88 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 10 мин. [Показать отчёт]
Научился: Повторил 
Сложности: не было 
Комментарии: нет 
6 Структура пикселя 00:10:55 77 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 12 мин. [Показать отчёт]
Научился: Повторил структуру 
Сложности: не было 
Комментарии: нет 
7 Структура vs Класс 00:25:05 70 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 25 мин. [Показать отчёт]
Научился: Что структура передается как копия. Если нужная как ссылка пишем ref. 
Сложности: не было 
Комментарии: ок 
8 Пиксели для классов 00:14:44 67 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 15 мин. [Показать отчёт]
Научился: Повторил вызов конструктора через this 
Сложности: не было 
Комментарии: нет 
9 Расстояние между пикселями 00:12:12 67 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 16 мин. [Показать отчёт]
Научился: Convert.ToInt32() - нужная вещь. И я тут недавно как раз пытался вспомнить школьный курс - расстояние между двумя точками на плоскости ))))). 
Сложности: ничего 
Комментарии: нет 
10 Цветные карандаши 00:14:54 65 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 21 мин. [Показать отчёт]
Научился: Повторил 
Сложности: не было 
Комментарии: сейчас нет 
11 Рисуем Снеговика 00:14:40 64 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 25 мин. [Показать отчёт]
Научился: Рисовать снеговиков 
Сложности: не было 
Комментарии: нет 
12 Второй Снеговик 00:09:46 64 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 15 мин. [Показать отчёт]
Научился: Ответы. 1. Насколько возможно перемещать снеговиков по экрану. Разумеется возможно. И разумеется крайне тяжело. На данный момент мы получили работающий, но трудноподдерживаемый код. 2. Для начала надо создать класс снеговика. Еще лучше абстрактный суперкласс для снеговиков. 3. Как реализовать. Каждый класс должен реализовывать общий интерфейс Imove, реализация которого будет разной у каждого класса. Зато вызов одинаковый для всех. Что дает - можем создать параметризованный список (или массив) типа Imove и в цикле вызывать для всех метод движения. И вообще при вызове движения для фигуры не задумываться, какая конкретно это фигура. Вообще конечно это же можно было бы добиться и через абстрактный суперкласс и абстрактный метод move() в суперклассе. Но тут есть много вытекающей теории. Не стану углубляться. 4. для масштабирования точно такая же схема - свой метод. 4. Как на практике реализуется. Ну тут варианты. Я бы передавал в вышеупомянутый метод дельту смещения метод бы доавлял это значение к иску (или игреку) и вызывал отрисовку. 
Сложности: не было 
Комментарии: зам нет 
13 Богатое наследство 00:12:53 63 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 15 мин. [Показать отчёт]
Научился: повторил 
Сложности: сложно не было 
Комментарии: зам нет 
14 Фигуральный базовый класс 00:10:56 62 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 14 мин. [Показать отчёт]
Научился: Жить без полиморфизма 
Сложности: жить без полиморфизма 
Комментарии: Ну раз нельзя использовать полиморфизм, следовательно нужно сначала установить класс объекта: shape.GetType().ToString() , а затем в case вызывать соответствующую функцию. 
15 Рисователь снеговиков 00:11:51 61 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 25 мин. [Показать отчёт]
Научился: вспомнил все эти typeof, is, as и их отличия. Любопытно получилось использовать is. Получались интересные эффекты в разном сочетании. 
Сложности: не было 
Комментарии: Что значит "использовать switch нельзя"? Кто мешает привести тип к строке и сделать так: switch (shape.GetType().ToString()) { case "Geometry.Line": Draw((Line)shape); break; case "Geometry.Box": Draw((Box)shape); break; case "Geometry.Circle": Draw((Circle)shape); break; case "Geometry.ColorLine": Draw((ColorLine)shape); break; case "Geometry.ColorBox": Draw((ColorBox)shape); break; case "Geometry.ColorCircle": Draw((ColorCircle)shape); break; } Всё работает. 
16 Переезд метода Draw 00:11:54 60 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 14 мин. [Показать отчёт]
Научился: повторил 
Сложности: не было 
Комментарии: зам нет 
17 Переезд graph в базовый класс 00:13:10 60 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 24 мин. [Показать отчёт]
Научился: повторил 
Сложности: сложно не было 
Комментарии: зам нет 
18 Мощь полиморфизма 00:09:01 58 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 10 мин. [Показать отчёт]
Научился: повторил 
Сложности: сложно не было 
Комментарии: зам нет 
19 Спрайт для Снеговика 00:12:28 58 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 16 мин. [Показать отчёт]
Научился: Первая приятная неожиданность, что Sprite тоже будет типа Shape. Это отличный ход! Теперь это кажется очевидным. Но вот подишь ты, я этого не предвидел.  
Сложности: сложно не было 
Комментарии: зам нет 
20 Перемещение круга 00:11:42 58 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 14 мин. [Показать отчёт]
Научился: повторил 
Сложности: не было 
Комментарии: зам нет 
21 Перемещение других фигур 00:08:37 58 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 10 мин. [Показать отчёт]
Научился: повторил 
Сложности: не было 
Комментарии: зам нет 
22 Перемещение Снеговиков 00:10:48 57 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 15 мин. [Показать отчёт]
Научился: повторил 
Сложности: не было 
Комментарии: зам нет 
23 ПОЛУФИНАЛЬНЫЙ УРОК. 51 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 10 мин. [Показать отчёт]
Научился: Хороший курс, несмотря на то что в теории я все уже знал, приятно еще раз разложить все по полочкам. И очень приятная практическая тема/стиль изучения был выбран Евгением Витольдовичем. Вот бы еще такой курс по шаблонам проектирования. К примеру, есть хорошая книга А.Шевчука "Design Patterns via C#. Приемы объектно-ориентированного программирования" (думаю, желающие легко найдут способ ознакомиться с данной книгой) в числе прочего на примере одной несложной игры лабиринт разбираются разные паттерны. Думаю, хороший получился бы курс. 
Сложности: Сложно не было 
Комментарии: изложил выше 
24 Интерфейс. Зачем он нужен. 00:09:33 48 чел. ★ 4.9 Done
  Отчёт отправил: 4342. Алекс Решено за 10 мин. [Показать отчёт]
Научился: Интерфейс - контракт на обязательную реализацию в классе набора функций. 
Сложности: ----- 
Комментарии: ---- 
25 Интерфейс. Правила игры. 00:12:23 47 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 14 мин. [Показать отчёт]
Научился: повторил 
Сложности: ---- 
Комментарии: ---- 
26 Интерфейс. Алгоритм игры. 00:07:48 47 чел. ★ 5 Done
  Отчёт отправил: 4342. Алекс Решено за 7 мин. [Показать отчёт]
Научился: повторил 
Сложности: не было 
Комментарии: зам нет 
27 Интерфейс. Создаём кружок. 00:08:36 46 чел. ★ 5 $
28 Интерфейс. Площадка для игры. 00:11:58 45 чел. ★ 5 $
29 Интерфейс. Кружок на площадке. 00:11:49 45 чел. ★ 5 $
30 Интерфейс. Запускаем кружки на площадку! 00:11:49 45 чел. ★ 5 $
31 Интерфейс. Кружок хочет играть. 00:09:42 45 чел. ★ 5 $
32 Интерфейс. Кружок готов к игре! 00:20:47 44 чел. ★ 5 $
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53 44 чел. ★ 5 $
34 Интерфейс. Изменяем правила игры. 00:10:22 43 чел. ★ 5 $
35 Интерфейс. Создаём новую игру. 00:12:31 42 чел. ★ 5 $
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05 39 чел. ★ 5 $
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23 40 чел. ★ 5 $
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47 38 чел. ★ 5 $
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25 32 чел. ★ 5 $
  Итого:   39 видеоуроков общей продолжительностью 7 час. 40 мин. 32 чел. ★ 4.96  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Оля,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Ильшат,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita,   Станислав,   Алексей Хонин,   Ludmila,   Yefim,   Сергей Зулкарнаев,   Сергей Аникин .

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Изменять правила(Логику) игры
Курс понравился тем, что уроки идут постепенно, поначалу усложняясь, а затем идёт упрощение объёма кода.Всё хорошо объясняется и разъясняется, очень хорошо прокачивается аналитическая часть ума, к концу курса чувствуешь подъём, а главное желание двигаться и обучаться дальше.Следующий курс, который я буду проходить Курс Графоциклы!
Научился: Создали новую игру на старом интерфейсе.
Трудности: Сложностей не возникло, но все новое.
Курс ООП очень понравился, познакомился с новыми понятиями "Инкапсуляция", "Наследование", "Полиморфизм". Научился создавать спрайты, а также создавать множество игр на одном интерфейсе. Планирую активно использовать полученные навыки на практике, в частности, при создании своей игры.