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

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

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

Теория ООП

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

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

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

Только сегодня — скидка 75%!

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

2,400 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Инкапсуляция мечты 00:09:02 130 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 5 мин. [Показать отчёт]
Научился: Понятие инкапсуляции 
Сложности: -- 
Комментарии: Инкапсуляция - это понятие, являющееся одним из принципов ООП. Суть понятия заключается в том, что все свойства, поля и т.д. хранятся вместе, в одном объекте(капсуле) и прямое обращение к полям является невозможным. Все воздействия на поля происходят через объект. Обращение к объекту происходит непосредственно через интерфейс программы.  
2 Урок рисования 00:08:10 114 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 8 мин. [Показать отчёт]
Научился: Освоил новые инструменты. 
Сложности: -- 
Комментарии: Всё классно! 
3 Первый класс 00:09:53 106 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: Поупражнялся в работе с классами. 
Сложности: -- 
Комментарии: Всё супер! 
4 Второй класс 00:09:13 102 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: -- 
Сложности: -- 
Комментарии: Формат коротких видеоуроков - просто супер! 
5 Круглый класс 00:08:10 99 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: -- 
Сложности: -- 
Комментарии: Всё отлично! 
6 Структура пикселя 00:10:55 89 чел. ★ 5 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: Попробовал на практике применить структуры. 
Сложности: -- 
Комментарии: ++ 
7 Структура vs Класс 00:25:05 83 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 20 мин. [Показать отчёт]
Научился: Замечательный урок! Понимание сути работы структуры и класса!!!  
Сложности: -- 
Комментарии: Супер урок!!! Очень давно пытался понять, как работает класс, но не находил разумного объяснения. Тут всё чётко по-полочкам разложено! Спасибо огромное, Евгений Витольдович! 
8 Пиксели для классов 00:14:44 81 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 23 мин. [Показать отчёт]
Научился: Попрактиковался в наследовании классов. 
Сложности: Исправлять свои опечатки 
Комментарии: ++ 
9 Расстояние между пикселями 00:12:12 80 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: Искать более удобные решения поставленных задач 
Сложности: -- 
Комментарии: ++ 
10 Цветные карандаши 00:14:54 78 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 20 мин. [Показать отчёт]
Научился: -- 
Сложности: -- 
Комментарии: ++ 
11 Рисуем Снеговика 00:14:40 77 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 10 мин. [Показать отчёт]
Научился: -- 
Сложности: -- 
Комментарии: ++ 
12 Второй Снеговик 00:09:46 77 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 25 мин. [Показать отчёт]
Научился: ++ 
Сложности: ++ 
Комментарии: 1) Как вариант, для перемещения по-горизонтали можно добавить горизонтальный "ползунок" снизу нашей рабочей формы. А к нему привязать переменную delta(или определённый коэффициент, на который можно умножать координаты точек), чтоб при перемещении ползунка, снеговик смещался влево/вправо.(Для перемещения по-вертикали делаем тоже самое). 2) Аналогично п.1: с помощью коэффициента - множителя координат точек, по которым строится снеговик. 3) Аналогично п.п. 1,2. P.S. А ещё можно создать класс снеговика и уже работать с ним! Так гораздо удобнее, как мне кажется!!! 
13 Богатое наследство 00:12:53 76 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: Использовать наследование на практике 
Сложности: -- 
Комментарии: Наследование - это возможность наследовать(использовать) переменные(поля) родительского класса, тем самым упрощать написание кода. 
14 Фигуральный базовый класс 00:10:56 75 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 40 мин. [Показать отчёт]
Научился: Потренировался в работе с наследованием. 
Сложности: Ответить на вопрос п.4 
Комментарии: Единственное, что мне пришло в голову после двадцатиминутного мозгового штурма - это реализация через switch-case. 
15 Рисователь снеговиков 00:11:51 75 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: Узнал про функцию .GetType и вспомнил про применение оператора typeof(). 
Сложности: -- 
Комментарии: Shape.Position понадобится нам для корректного обозначения расположения наших фигур относительно друг друга при перемещении.  
16 Переезд метода Draw 00:11:54 74 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 15 мин. [Показать отчёт]
Научился: ++ 
Сложности: -- 
Комментарии: Всё отлично! Надеюсь, наш код станет ещё более "чистым". 
17 Переезд graph в базовый класс 00:13:10 74 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 20 мин. [Показать отчёт]
Научился: ++ 
Сложности: Немного запутался в полях. 
Комментарии: Как всегда, всё на высоте! 
18 Мощь полиморфизма 00:09:01 72 чел. ★ 5 Done
  Отчёт отправил: 2939. Глеб Решено за 20 мин. [Показать отчёт]
Научился: Абстрактным классам! 
Сложности: Разобраться с абстрактностью и виртуальностью. 
Комментарии: +++ 
19 Спрайт для Снеговика 00:12:28 72 чел. ★ 5 Done
  Отчёт отправил: 2939. Глеб Решено за 20 мин. [Показать отчёт]
Научился: Познакомился со списками. 
Сложности: Ничего сложного. 
Комментарии: Очень здорово, что мы упрощаем программу шаг за шагом. Тем самым рассматриваем несколько вариантов её реализации - с "костылями" и без. 
20 Перемещение круга 00:11:42 71 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 25 мин. [Показать отчёт]
Научился: Разобрался в логике перемещения объектов в нашей программе. 
Сложности: Понять принцип перемещения кружка, как высчитываются новые координаты. 
Комментарии: Всё здорово! Идём дальше! 
21 Перемещение других фигур 00:08:37 71 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 25 мин. [Показать отчёт]
Научился: Потренировался в перемещении фигур. 
Сложности: Подгадать новые координаты фигур. 
Комментарии: Чем дальше, тем интереснее! 
22 Перемещение Снеговиков 00:10:48 70 чел. ★ 4.9 Done
  Отчёт отправил: 2939. Глеб Решено за 17 мин. [Показать отчёт]
Научился: Научился оптимизировать и упрощать код. 
Сложности: Самое сложное - разобраться с координатами. 
Комментарии: Всё здорово. Очень нравится курс! Уроки по ООП дают ответы на многие мои вопросы! 
23 ПОЛУФИНАЛЬНЫЙ УРОК. 63 чел. ★ 4.9 $
24 Интерфейс. Зачем он нужен. 00:09:33 60 чел. ★ 4.9 $
25 Интерфейс. Правила игры. 00:12:23 60 чел. ★ 5 $
26 Интерфейс. Алгоритм игры. 00:07:48 59 чел. ★ 4.9 $
27 Интерфейс. Создаём кружок. 00:08:36 58 чел. ★ 4.9 $
28 Интерфейс. Площадка для игры. 00:11:58 56 чел. ★ 5 $
29 Интерфейс. Кружок на площадке. 00:11:49 55 чел. ★ 5 $
30 Интерфейс. Запускаем кружки на площадку! 00:11:49 55 чел. ★ 5 $
31 Интерфейс. Кружок хочет играть. 00:09:42 55 чел. ★ 4.9 $
32 Интерфейс. Кружок готов к игре! 00:20:47 54 чел. ★ 5 $
33 Интерфейс. Кружочки гоняются друг за другом. 00:11:53 54 чел. ★ 5 $
34 Интерфейс. Изменяем правила игры. 00:10:22 53 чел. ★ 5 $
35 Интерфейс. Создаём новую игру. 00:12:31 52 чел. ★ 5 $
36 Интерфейс. ФИНАЛЬНЫЙ УРОК. 00:13:05 47 чел. ★ 5 $
37 Интерфейс. VIP. Квадратики тоже хотят играть. 00:16:23 48 чел. ★ 5 $
38 Интерфейс. VIP. Пересечение прямоугольников. 00:09:47 46 чел. ★ 5 $
39 Интерфейс. VIP. Тяжёлая дружба кругов и квадратов. 00:22:25 40 чел. ★ 5 $
  Итого:   39 видеоуроков общей продолжительностью 7 час. 40 мин. 40 чел. ★ 4.94  
  Финалисты:   lomik,   Роман,   Максим Базуев,   Neverwinter 2,   Владимир,   Никита,   Олюшка,   Валера Луцевич,   Anton Sozykin,   Permitin Alexey,   Артём,   Максим Лапшинов,   Frank,   Archi,   Александр Львович,   Ильшат,   Олег Михайлович,   Дмитрий,   Новопашин Владимир,   Евгений,   Сергей Соколов,   Александр Б.,   Максим Саратов,   Алексей В.,   Александр,   Rita,   Станислав,   Алексей Хонин,   Ludmila,   Yefim,   Сергей Зулкарнаев,   Сергей Аникин,   Константин,   Tekashnik,   Артем Посунько,   Андрей Козлов,   kalobyte,   Sergio,   Алексей Малышев,   Александр .

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




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

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

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

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