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

Формула программиста
основатель — Волосатов Евгений Витольдович
Видео про Архитектуру Шахматного клиент-сервера.
У вас нет доступа для просмотра этой записи.

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

Теория ООП

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

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

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

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

Хочу купить!

Купить в рассрочку за мегахеши

Цена: 1,200 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Инкапсуляция мечты 00:09:02 151 чел. ★ 4.8 Done
  Отчёт отправил: 6885. lomik Решено за 10 мин. [Показать отчёт]
Научился: . 
Сложности: Сформулировать понятие инкапсуляции 
Комментарии: Инкапсуляция это создание границы вокруг объекта, необходимое для отделения внешнего поведения от внутреннего. Аналогия: телефон.Пользователь взаимодействует с кнопочками и не задумывается как они работают. 
2 Урок рисования 00:08:10 130 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Рисовать 
Сложности: Ничего 
Комментарии: Спасибо! 
3 Первый класс 00:09:53 121 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Работе с классами 
Сложности: Уловить логику происходящего 
Комментарии: Спасибо! 
4 Второй класс 00:09:13 116 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: ничего 
Комментарии: Спасибо! 
5 Круглый класс 00:08:10 113 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Из эллипса делать круг  
Сложности: Всё просто 
Комментарии: Спасибо! 
6 Структура пикселя 00:10:55 103 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Работать со структурой 
Сложности: Вникнуть в происходящее 
Комментарии: Спасибо! 
7 Структура vs Класс 00:25:05 96 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Различать структуру и класс 
Сложности: Вникнуть 
Комментарии: Спасибо 
8 Пиксели для классов 00:14:44 94 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 30 мин. [Показать отчёт]
Научился: Вызывать из одного конструктора другой 
Сложности: Не запутаться 
Комментарии: Спасибо 
9 Расстояние между пикселями 00:12:12 93 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Использовать метод в структуре 
Сложности: Не запутаться 
Комментарии: Спасибо 
10 Цветные карандаши 00:14:54 91 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 25 мин. [Показать отчёт]
Научился: Копировать класс и расширять его функционал 
Сложности: Не запутаться 
Комментарии: Спасибо 
11 Рисуем Снеговика 00:14:40 90 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: рисовать по координатам  
Сложности: Ничего 
Комментарии: Спасибо 
12 Второй Снеговик 00:09:46 90 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 25 мин. [Показать отчёт]
Научился: . 
Сложности: Ничего 
Комментарии: Отрывки мыслей : Создать класс для снеговика Перед координатами в классе снеговик прописать переменные отвечающие за их изменение Создать методы вычисляющие эти переменные 
13 Богатое наследство 00:12:53 89 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Чистить код 
Сложности: Всё просто 
Комментарии: Наследование своими словами -это добавление чего либо , к основе .При этом основа остаётся неизменной ,а создаётся ещё один класс Как пример : Трактор как базовая единица Если к такому же трактору прицепить бочку , то получится трактор для полива. 
14 Фигуральный базовый класс 00:10:56 88 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Упрощать код 
Сложности: Ответить на вопрос 
Комментарии: 5. Возможно перебирать индексы циклом for 
15 Рисователь снеговиков 00:11:51 88 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Оптимизировать код 
Сложности: Уловить ход мысли 
Комментарии: Shape.position точка относительно которой будут изменяться другие координаты 
16 Переезд метода Draw 00:11:54 87 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: Не запутаться 
Комментарии: Спасибо! 
17 Переезд graph в базовый класс 00:13:10 86 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Закрепил наследование 
Сложности: ничего 
Комментарии: Спасибо 
18 Мощь полиморфизма 00:09:01 83 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Работе с абстракцией 
Сложности: Понять 
Комментарии: Спасибо 
19 Спрайт для Снеговика 00:12:28 83 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Немного узнал про коллекции и уяснил чем отличается интерфейс от абстрактного класса  
Сложности: Вникнуть 
Комментарии: Спасибо 
20 Перемещение круга 00:11:42 82 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: перемещать фигуры 
Сложности: Всё просто 
Комментарии: Спасибо 
21 Перемещение других фигур 00:08:37 82 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 25 мин. [Показать отчёт]
Научился: Перемещать фигуры 
Сложности: Ничего 
Комментарии: Спасибо! 
22 Перемещение Снеговиков 00:10:48 81 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Перемещать снеговиков) 
Сложности: Быть внимательным 
Комментарии: Спасибо 
23 ПОЛУФИНАЛЬНЫЙ УРОК. 74 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 5 мин. [Показать отчёт]
Сложности: Курс довольно подробно , последовательно и наглядно рассказывается , так что их не должно быть 
Комментарии: Хороший курс , очень неплохо объясняется ООП и его преимущества . Советую пройти всем новичкам , а так же "быдлокодерам" , что бы быть ещё ближе к программистам ) Ломакин Виктор. 
24 Интерфейс. Зачем он нужен. 00:09:33 71 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Создавать интерфейс 
Сложности: Всё просто 
Комментарии: Интерфейс(контракт)-список методов 
25 Интерфейс. Правила игры. 00:12:23 71 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Автоматически генерировать методы 
Сложности: Сформулировать алгоритм.  
Комментарии: Спасибо 
26 Интерфейс. Алгоритм игры. 00:07:48 71 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Повторил изученное 
Сложности: Всё просто 
Комментарии: Необходимо для полноценной игры: 1 Визуализировать игроков 2 Создать рандом 3 Возможно таймер 4 методы перемещения 
27 Интерфейс. Создаём кружок. 00:08:36 70 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: Все просто 
Комментарии: Динамически рисовать круги 
28 Интерфейс. Площадка для игры. 00:11:58 69 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 15 мин. [Показать отчёт]
Научился: Static полям 
Сложности: Все просто 
Комментарии: Класс Арена - аналог игрового поля 
29 Интерфейс. Кружок на площадке. 00:11:49 67 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Укрепил знания 
Сложности: Все просто 
Комментарии: Спасибо! 
30 Интерфейс. Запускаем кружки на площадку! 00:11:49 67 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Создавать будущих "игроков" 
Сложности: Все просто 
Комментарии: Спасибо! 
31 Интерфейс. Кружок хочет играть. 00:09:42 67 чел. ★ 4.9 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Реализовывать интерфейс 
Сложности: Все просто! 
Комментарии: Спасибо! 
32 Интерфейс. Кружок готов к игре! 00:20:47 66 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 30 мин. [Показать отчёт]
Научился: if (obj.GetType() != typeof(Circle)) 
Сложности: Все просто 
Комментарии: Оживить круги и лидера 
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53 66 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Закрепил пройденное  
Сложности: Все просто 
Комментарии: Исправление недочета: вариант 1 - Подключить к таймеру,чтоб после передачи эстафеты отсчитывалось время вариант 2 - Запоминать предыдущего лидера и игнорировать его(стать лидером он не сможет) 
34 Интерфейс. Изменяем правила игры. 00:10:22 65 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Закрепляю пройденное 
Сложности: Все просто 
Комментарии: Думаю можно попробовать переделать под игру Агарио http://agar.io 
35 Интерфейс. Создаём новую игру. 00:12:31 64 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Повторил 
Сложности: Всё просто 
Комментарии: SetNewVirus - создать счётчик по количеству игроков-1 с условием на входе"если красный цвет"то декрементировать .Когда счётчик обнулится инвертировать цвета всех игроков. второй способ сравнивать списки. FindNewVirus -если коснулся красный круг , то менять цвет другого круга на красный 
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05 60 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Легким движением руки кардинально менять смысл программы 
Сложности: Все просто 
Комментарии: Довольно наглядно объясняется что такое интерфейс.Понять назначение данной конструкции без практики трудно. 
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23 61 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 40 мин. [Показать отчёт]
Научился: Реализовывать интерфейс в классе Box 
Сложности: Все просто 
Комментарии: Спасибо! 
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47 58 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 20 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: Все просто! 
Комментарии: Спасибо 
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25 49 чел. ★ 5 Done
  Отчёт отправил: 6885. lomik Решено за 30 мин. [Показать отчёт]
Научился: Понял суть Интерфейсов 
Сложности: Все просто 
Комментарии: Спасибо! 
  Итого:   39 видеоуроков общей продолжительностью 7 час. 40 мин. 49 чел. ★ 4.95  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Олюшка,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Ильшат,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita,   Станислав,   Алексей Хонин,   Ludmila,   Yefim,   Сергей Зулкарнаев,   Сергей Аникин,   Константин,   Tekashnik,   Артем Посунько,   Андрей Козлов,   kalobyte,   Sergio,   Алексей Малышев,   Александр,   Сергей Стефаненко,   Николай Денисов,   Анатолий,   Денис,   Алексей|BrisK|Кривицкий,   Скозложоп,   chokayes,   Иван Воронин,   Андрей Шевченко .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Создали новую игру на старом интерфейсе.
Трудности: Сложностей не возникло, но все новое.
Курс ООП очень понравился, познакомился с новыми понятиями "Инкапсуляция", "Наследование", "Полиморфизм". Научился создавать спрайты, а также создавать множество игр на одном интерфейсе. Планирую активно использовать полученные навыки на практике, в частности, при создании своей игры.
Научился: Метод Contains у класса List<>, удобная штука.
Трудности: Не было, все понятно, хорошо показано, как изменить правила в игре.
Перед началом второй части курса теории ООП я ожидал, что мы продолжим работать со снеговиками, научим их каким-нибудь действиями (помню Оля писала мне в комментариях, что "они у нас еще потанцуют, а мы отлично потренируемся"). Кроме того, в шапке курса было указано, "При создании программы мы будем использовать некоторые шаблоны проектирования, такие как "Одиночка", "Фабрика", "Строитель", "Наблюдатель" и другие. Когда я это увидел, еще до того, как пройти первую часть курса, то загорелся желанием пройти курс ООП. В первой части курса паттернов не было, поэтому ожидал их увидеть во второй части. Но и во второй части их не было. Да, были моменты с методами Arena.NewCircle(), но упор в курсе был сделан не на паттерны, а на интерфейсы. Однако это ни в коей мере не говорит о том, что курс мне не подошел. Я присутствовал на вебинаре, на котором производилась запись курса, это восхитительная атмосфера, всем советую ходить на вебинары!) Тематика второй части курса меня сразу захватила, Евгений Витольдович придумал интересный пример для объяснения этой важной концепции в объектно-ориентированном программировании. При этом, в первых уроках упор был сделан на абстракцию, логику программу, а отображением результатов на форме мы занимались во второй половине курса, и, что примечательно, программа сразу со старта заработала корректно, это достойно уважения!) Кроме того, практически после каждого урока были дополнительные вопросы на проработку материала. Нам было необходимо написать словесные алгоритмы или попробовать самим реализовать действия из следующих уроков. Это сильно мотивирует и проверяет на сколько качественно усваивается материал. В целом, я считаю, что неплохо прокачался за эти два курса ООП. Кому стоит рекомендовать данный курс? В своем полуфинальном отчете я писал, что курс теория ООП хорошо подойдет для программистов, которые достаточно уверенно знают C#, но не уверенно понимают понятия ООП. Мои коллеги по проекту не разделяют этого мнения (я читал их отзывы с полуфинального урока) и считают, что курс мастхев для новичков. На вкус и цвет конечно, но я своего мнения не меняю. Лучше сначала хорошо проработать задачи из консоли, бесплатные курсы, понять, что ты не боишься языка программирования и можешь написать программу любой разумной сложности, и потом понять для себя, чего не хватает и к чему лежит интерес) Получился достаточно длинный отчет, спасибо тем, кто прочитал его до конца) Спасибо Евгений Витольдович, мне было приятно пройти курс теория ООП, появились новые идеи, открылись пробелы по некоторым вопросам, будем изучать дальше!)