C# обучение для чайников

Формула программиста

основатель — Волосатов Евгений Витольдович

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



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

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Observer - Теория 00:09:42
25 чел. ★ 4.8 Done
  Мы начинаем знакомство с очень популярным и востребованным
шаблоном проектирования - Наблюдатель / Observer.
По-другому он называется Подчинённые / Dependents.
Этот шаблон активно используется в событийно-ориентированных языках программирования.

На следующих уроках мы создадим несколько программ,
на примере которых лучше уясним суть этого шаблона проектирования.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Наблюдатель следит за состоянием каких либо объектов и как только состояние изменилось, оповещает всех, кто находится в списке оповещения именно по этому объекту. т.е. в нашем случае, если ты находишься в пределах слышимости звонка, то ты будешь добавлен в список и оповещён о звонке, но если ты ушёл за пределы слышимости звонка, то автоматом удаляешься из списка оповещения и не услышишь звонок, который прозвенит. Естественно, удаление, добавления в список это уже доп. функционал, который анализирует дальность до объекта того, кого можно оповестить, чтобы данная система работала как нужно =) 
2 Observer - School Bell - Student 00:07:24
1 тест
21 чел. ★ 5 Done
  Мы начинаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы реализуем интерфейс Observer(), класс OStudent() и
реализуем базовый функционал будущей программы.
Отчёт отправил: 10558. Иван Воронин Выполнено за 10 мин. [Показать отчёт]
Научился: Повторение пройденного 
Сложности: найти время 
Комментарии: Отличное начало, вот я и добрался до курса, для которого делал звуковые файлы =) Сам шаблон должен быть интересным, напоминает мне события в C#. 
3 Observer - School Bell - Sound Bell 00:08:46
20 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы реализуем класс OBell(),
который будет имитировать школьный звонок.

Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Реализовал загрузки звукового файла (кэширование) и вызов проигрывания отдельными методами. Добавил в класс OBell() метод isPlaying(), для реализации бесконечного цикла с выходом после окончания проигрывания звонка, поэтому ожидание нажатия клавиши уже не нужно см. скриншот. 
4 Observer - School Bell - Porter 00:11:16
1 тест
20 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы приступаем к реализации интерфейса Observable()
и его класс Porter() implements Observable.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: прекратить эксперименты =) 
Комментарии: Увлёкся оптимизацией вызова звонка и доработками класса OBell() 
5 Observer - School Bell - java.util.Observer 00:09:31
20 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы переделаем нашу программу с использованием
системной библиотеки для реализации Observer/Observable().
Отчёт отправил: 10558. Иван Воронин Выполнено за 45 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Добавить синглтон таймера, модернизировал его так, чтобы он возвращал пройденное время. Как видно из скриншота, каждый раз на звонок потрачено в районе секунды. Решил добавить таймер, так как звонило всего 1 раз, первый раз слишком быстро проскакивало и не успевало начать воспроизведение, видимо изза потраченного времени на кэширование звукового файла. Добавив таймер, промониторив проблему решил её и теперь каждый раз звонок проигрывается как надо, думаю для звонка можно тоже использовать синглтон, так как одного экземпляра более чем достаточно. 
6 Observer - School Bell - java.util.Observable 00:09:48
1 тест
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы воспользуемся системным классом Observable().
Отчёт отправил: 10558. Иван Воронин Выполнено за 20 мин. [Показать отчёт]
Научился: java.util.Observable; 
Сложности: найти время 
Комментарии: Отличная оптимизация кода, класс Porter() прям растаял на глазах =) Очень полезный шаблон проектирования, буду использовать обязательно. 
7 Observer - School Bell - Study and Break 00:09:59
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы завершаем создание программы "Школьный звонок".
Осталось рассмотреть дополнительную возможность передачи параметров.
Отчёт отправил: 10558. Иван Воронин Выполнено за 58 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Класс OBell сделал Синглтоном, так как давно уже вёл к этому, он при первой инициализации загружает(кэширует в ОЗУ) необходимые для работы звуковые файлы, и при каждом последующем обращении к нему он воспроизводит файлы уже из памяти. а не загружая их каждый раз с диска. Отличный пример использования шаблона проектирования, использовать буду обязательно. 
8 Observer - Sensor - Visaginas 00:09:51
1 тест
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы создадим программу информирования о погоде.
Для этого мы создадим класс Sensor(), который будет узнавать текущую температуру
и информировать об этом тех, кому это нужно и при необходимых значениях температуры.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Закрепил Observable() 
Сложности: найти время 
Комментарии: Хорошее начало, можно вместо реального датчика, добавить парсер температуры с сайта. Но это так, если реально данная тема необходима и будет работать 24/7, так как в рамках урока разброс температуры будет минимальным. 
9 Observer - Sensor - Person 00:08:17
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На прошлом уроке мы создали класс Sensor(), который рассылает
информацию о температуре всем, кому это необходимо.
На этом уроке мы создадим классы Console() и Person()
как получателей информации о температуре.
Отчёт отправил: 10558. Иван Воронин Выполнено за 30 мин. [Показать отчёт]
Научился: Закрепил работу с системными Observer/Observable() 
Сложности: найти время 
Комментарии: Отличный урок, радует, что не добавляют дубликаты одного и того же объекта. 
10 Observer - Sensor - Cat File 00:06:30
1 тест
18 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы создадим класс Cat(), который будет
создавать файл "cat.txt" при 18 градусах и удалять его при 0 градусов.
Отчёт отправил: 10558. Иван Воронин Выполнено за 25 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: найти время 
Комментарии: Прикольно придумали с котом и плюс доп. вариант для закрепления идеи шаблона. Вопросов нет, идём дальше. 
11 Observer - Sensor - Banner 00:09:36
16 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы вспомним картинку, с которой начиналась наша серия уроков.
Чтобы реализовать что-то похожее, мы воспользуемся классом FacadeMotivator(),
которые реализовали во время прохождения Шаблона Проектирования: "Facade".
Отчёт отправил: 10558. Иван Воронин Выполнено за 2 час. 00 мин. [Показать отчёт]
Научился: Повторил пройденное 
Сложности: понять почему корректно по вертикали не центровало 
Комментарии: Урок отличный, но в перенесённом классе, который создавали для мотиватора/демотиватора были некоторые особенности из-за которых возникли проблемы не только у Игромистра с цветом, это я сразу понял, а вот с центровкой по вертикали пришлось повозиться, а потом решил проверить, как генерируется размер картинки, оказалось, что там учитывался размер блока под текст, но так как у нас картинки нет, а блок под текст уже не имеет смысла, то он и добавлял снизу лишнее пространство. В итоге модифицировал класс основательно, чтобы он был более универсальным. з.ы. Добавил поддержку центровки текста: top, center, bottom (по вертикали) Добавил поддержку многострочного текста, разделитель "\n", поддержку котором пришлось написать самому. Добавил вывод температуры в трёх единицах измерения: Цельсий, Фаренгейт и Кельвин. 
12 ФИНАЛЬНЫЙ УРОК без видео
3 теста
7 чел. ★ 5 Done
  Поздpaвляю!
Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест".

Напиши отзыв или видеообзор по этому видеокурсу.
Отчёт отправил: 10558. Иван Воронин Выполнено за 5 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Отличный шаблон проектирования, будет использовать однозначно, спасибо за курс. 
13 VIP - Observer - Sensor - Alert 00:10:27
15 чел. ★ 5 Done
  Мы продолжаем знакомство с шаблоном проектирования: "Observer".
На этом уроке мы добавим звуковую сигнализацию к нашему температурному табло.
Отчёт отправил: 10558. Иван Воронин Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Закрепил пройденное 
Сложности: найти время 
Комментарии: Перенёс класс OBell() и сделал их него синглтон OSound(). Так же перенёс синглтон Timer(), для отображения времени которое тратилось на вызов звука. Enum стадий звука уже был реализован ранее, поэтому его тоже перенёс и модифицировал под нужды текущей задачи. Мелкие правки и оптимизации кода. з.ы. Отличный урок, добавил звуки свиста чайника: ПОГРОМЧЕ и ПОТИШЕ. 
  Итого:   13 видеоуроков 1 час. 51 мин.
8 тестов
7 чел. ★ 4.99  
  Финалисты:   Сергей Соколов,   Иван Воронин,   Новопашин Владимир,   Tekashnik,   Александр,   Anatoli,   Tom .

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Научился: На этом курсе познакомился со структурой и реализацией паттерна Observer. Научился воспроизводить звук с помощью классов AudioInputStream и Clip.



Научился: Хороший курс, не большой и очень понятный! Как работает паттерн объясняется на двух примерах, что бы наверняка закрепить пройденный материал. Рекомендую пройти этот курс, а так же остальные курсы по паттернам проектирования.