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 Strategy - Intro 00:04:31
1 тест
31 чел. ★ 4.9 Done
  Мы начинаем работу с Шаблоном проектирования
Strategy (стратегия), который выбирает
наилучший способ достижения результата.

Это значительно упрощает процесс создания программ.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 14 мин. [Показать отчёт]
Научился: решил взять курс с похожим шаблоном проектирования на шаблон Состояние Стратегия похожа, но менее гибкА в отличие от Состояния Первая иллюстрация в помощь - картина Васнецова (нашего вятскАга живописца) Как выберешь дорогу, так и чеши Вариант обработки данных выбирается на основе класса контекста, после чего выполняется без шараханий в стороны - вот принцип Стратегии 
2 Strategy - Operation - Context 00:08:22
26 чел. ★ 5 Done
  На этом уроке мы начинаем создание программы
при помощи шаблона проектирования Strategy (Стратегия).
Для начала мы опишем интерфейс нашей программы,
так как с этого начинается описание общего
знаменателя всех "Стратегий", которые будут применяться.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 14 мин. [Показать отчёт]
Научился: соорудили «рыбу»: Context.java - «светофор» Strategy.java - что умеет программа после того, как светофор разрешит движение OperationPlus.java, OperationMinus.java, OperationMulti.java - классы непосредственных действий Шаблон Стратегия годен когда возникает распутье - надо выполнить задачу, НО есть не один способ это сделать Похоже на ветвление if-else или на switch-case В зависимости от целесообразности выбираем нужный вариант действий К примеру, выбор логистики в зависимости от направления или времени года с целью поиска наиболее дешевого пути или наиболее краткого по времени Вариантов масса 
3 Strategy - Operation - Program 00:06:28
1 тест
26 чел. ★ 5 Done
  На этом уроке мы опишем основной класс программы,
который продемонстрирует работу нашего
шаблона проектирования Strategy (Стратегия).
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 32 мин. [Показать отчёт]
Научился: в результате определения стратегии вычисления в программе отрабатывает один из вызываемых классов Подозреваю, что ветвление ифэлз и кейссвич работают на аналогичной платформе кода Нравится многооконность интерфейса Эклипса - видно всё сразу и оттого понятнее, что происходит в программе Пример работы Стратегии - любое ветвление, будь то хоть выбор меню в столовой - выбрал борщ - получай борщ ) 
4 Strategy - Join - ArrayList 00:04:51
26 чел. ★ 5 Done
  На этом уроке мы начнём создание программы
для слияния строк из ArrayList().
Так как обычная конкатенация строк происходит
быстрее с маленьким количеством одновременно
склеиваемых строк, то мы воспользуемся
шаблоном проектирования Strategy (Стратегия)
для выбора наибыстрейшего способа склеивания.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 19 мин. [Показать отчёт]
Научился: home + home + TAB+ARROW-DOWN - хоткей для резкого размножения строки Спасибо за хинт ) Заготовку соорудил - результат на иллюстрациях 
5 Strategy - Join - Context 00:04:14
1 тест
26 чел. ★ 5 Done
  На этом уроке мы реализуем класс Context(),
который будет выбирать наилучшую стратегию
для выполнения склеивания строк.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 15 мин. [Показать отчёт]
Научился: как я и предполагал, Стратегия похожа в реализации на ветвление ифЭлз - это и сделали на уроке В случае размера ArrayListа меньше пяти - выбираем один метод, иначе - метод другой с буферизацией Класс компактен, легкочитаем, незнакомые программисты не произносят вотафаки - значит писан чистый код 
6 Strategy - Join - String/Buffer 00:06:42
26 чел. ★ 5 Done
  На этом уроке мы создадим интерфейс Strategy(),
в котором будет всего один метод join().
Так же реализуем классы стратегий
StrategyString и StrategyBuffer().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 23 мин. [Показать отчёт]
Научился: StringBuffer работает с объектами оптом, стринговый += конкатенирует объекты в розницу Когда объектов мало - разница незаметна, при больших массивах данных буферизиованная обработка предпочтительнее 
7 Strategy - Join - Log/Timer 00:07:21
1 тест
25 чел. ★ 5 Done
  На этом уроке мы продемонстрируем как можно
в одном классе использовать несколько шаблонов.
Для этого мы перенесём синглтоны
Log() и Timer() из прошлых уроков.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 47 мин. [Показать отчёт]
Научился: на больших объемах добавления в массив ArrayList с помощью buffer.append целесообразно выполнять отдельные аппенды для отдельных элементов При нагромождении конкатенированных аргументов в один оператор buffer.append работоспособность кода сохраняется, но редуцируется его производительность, что наглядно было показано при помощи таймера, замерявшего скорость с конкатенированием аргументов и с разнесением их же по отдельным операторам buffer.append При соблюдении правила унарности аргумента производительность кода вырастала Резюме: проще аргумент buffer.append == быстрее программа добавления элементов в ArrayList 
8 Strategy - Person - Schema 00:08:51
23 чел. ★ 5 Done
  На этом уроке мы начинаем создание программы
в котором шаблон проектирования
Strategy (Стратегия) мы применим дважды.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 42 мин. [Показать отчёт]
Научился: карточка клиента будет выбирать в каком формате быть сохранённой - текстовик ( по умолчанию или принудительно), иксемел или джейсон Вторая стратегия будет развилкой для определения пути вывода карточки клиента - на печать или сохранение в файл Установил себе забытый на время саблайм - поставил подсветку синтаксиса джава - результат в иллюстрации к отчету 
9 Strategy - Person - Program 00:08:03
1 тест
22 чел. ★ 5 Done
  На этом уроке мы реализуем нашу программу
по ТЗ, которое мы создали на прошлом уроке.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 19 мин. [Показать отчёт]
Научился: наведя указатель мыши на подчеркнутый красным участок кода можно получить подсказку о сути ошибки и способах устранения оной Не все варианты решения на сто процентов целесообразны - машина неспособна предугадать все варианты хода мысли программиста, потому пользоваться помошью Эклипс надо аккуратно Если ошибка продолжает подчеркиваться - пробуем выполнить сохранение в изменяемом классе - один из вариантов, она исчезнет после сохранения вносимых изменений 
10 Strategy - Person - Format - Context 00:10:48
22 чел. ★ 5 Done
  На этом уроке мы реализуем класс ContextFormat().
Его задача в выборе необходимого формата вывода данных.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 36 мин. [Показать отчёт]
Научился: выбор стратегии реализован на ветвлении иф-элз Ошибки в видео подчеркиваются только после запуска программы, еще вариант - выполнить сохранение в каждом классе отдельно - проверил, так у меня работает 
11 Strategy - Person - Format - Strategy 00:09:47
22 чел. ★ 5 Done
  На этом уроке мы реализуем метод format()
в классах FormatTXT(), FormatXML() и FormatJSON().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 1 час. 6 мин. [Показать отчёт]
Научился: метод lastIndexOf («txt») разыскивает то, что расположено в круглых скобках у того экземпляра, к которому применяем этот метод В моём примере в круглых скобках расположено слово тээкстэ в кавычках Искать будет слово БЕЗ КАВЫЧЕК Искать будет ПОСЛЕДНЕЕ совпадение, то есть вернёт индекс крайнего слева направо или ничего не вернет, если нет совпадения 
Сложности: В финале урока пришлось подебажить ). Выводился результат лишь в текстовом формате - ошибки искал дебагом, не нашел, кроме того, что в дуформате не идёт дальше тхт, в другие ифы не хочет идти. Вспомнил, что в предыдущем уроке вместо апострофов использовал кавычки, заменил. Не помогло. Затем лишь вспомнил, что для парсинга требуется наличие точки, а я лепил сразу просто имя формата. Взлетело. 
12 Strategy - Person - Save - Context 00:06:37
1 тест
21 чел. ★ 5 Done
  На этом уроке мы реализуем класс ContextSave().
В котором опишем выбор сохранения данных,
вывод: на экран SavePrint() или в файл SaveFile().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 23 мин. [Показать отчёт]
Научился: снова накосячил, в классе контекстСейв набрал оператор условия неверно и искал, чего ж это не выводятся данные персональныя... if (filename == null || filename.equals (""))  набрал сначала неверно вот так -> if (filename == null || filename == "") Исправив на иквалз всё взетело 
13 Strategy - Person - Save - Strategy 00:07:18
21 чел. ★ 5 Done
  На этом уроке мы завершаем написание нашей программы
с двойной демонстрации шаблона стратегия (Strategy).
Для этого мы реализуем оставшийся класс SaveFile().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 19 мин. [Показать отчёт]
Научился: при записи файла на диск НЕ ЗАБЫВАЙТЕ закрывать программно записываемый файл оператором writer.close(); Иначе размер нулевой, как и эффект записи Второй вариант - помещать создание райтера в аргумент трай кеча в круглые скобки - в этом случае оператор закрытия неактуален 
14 ФИНАЛЬНЫЙ УРОК без видео
5 тестов
11 чел. ★ 5 Done
  Поздpaвляю!
Твoя зaдaча - прoверить cебя и пpойти тест, см. вкладку "Тест".

Напиши отзыв или видеообзор по этому видеокурсу.
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 57 мин. [Показать отчёт]
Научился: Стратегия смотрит на контекст и выбирает нужный класс из шеренги подобных - так рождается алгоритм работы программы по этому шаблону На курсе уже написаны три программы, от самой простой, математической, до интерактивной ожидающей решения пользователя по маске именования файла «восемь-три». На экваторе курса делали склеивание эррэйЛиста через буфер и без него, было занятно. Курс несложный, если внимательно смотреть за происходящим, то более чем понятный. Возникавшие ошибки были сопряжены с невнимательностью и слабым знанием предметной области, благо предыдущие уроки были доступны - находил свои ошибки без длительных поисков. Хотя пару раз попотеть в листании пришлось ) ЗЫ На верхней иллюстрации богатырь смотрит на камень На камне написано то, что на нижней иллюстрации ))) 
Сложности: Взяться и сделать ) 
Видеообзор: siY-jsem60g
15 VIP - Strategy - Person - UML 00:03:14
1 тест
21 чел. ★ 5 Done
  На этом уроке мы рассмотрим программу для генерации диаграмм
кода на основе исходников готовой программы.

Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 30 мин. [Показать отчёт]
Научился: class visualizer скачивается без проблем, даже поколдовав с системными настройками безопасности удаётся запустить из архива clsvis.jar Приложение запускается и выводится диаграмма по умолчанию с легендой и расшифровками Доступны менюхи для создания нового проекта и для открытия имеющихся Файловая система компьютера тоже доступна и по каталогам скачем смело Для запуска файлов с нашим проектом с байт-кодом, те что имеют расширение точка класс, надо выбрать в выпадающем меню вариант открываемых файлов all files Открытие сопровождается сообщением об ошибке (вторая иллюстрация) Мак прекрасен своим долгоиграющим аккумулятором, но эти заморочки отличия от работы в маздае местами утомляют  
16 VIP - Strategy - Person - Enum 00:06:52
21 чел. ★ 5 Done
  На этом уроке мы порефакторим нашу программу,
а именно класс ContextFormat().
Отчёт отправил: 17947. Dmitry Sinitsin Выполнено за 21 мин. [Показать отчёт]
Научился: использование энумератора сродни указанию маски для обработки данных - после рефакторинга с его использованием, метод выбора вводимого пользователем ограничен элементами, перечисленными через запятую в классе Тайп - ничего иного не будет пропущено через эту мясорyбку ) 
  Итого:   16 видеоуроков 1 час. 43 мин.
12 тестов
11 чел. ★ 5  
  Финалисты:   Иван Воронин,   Сергей Соколов,   Станислав,   Povilas Abramovicius,   Новопашин Владимир,   Tekashnik,   Фомичева Наталья,   Виктор,   Александр,   Dmitry Sinitsin,   Anatoli .

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





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

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

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

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


Научился: На этом курсе я изучил шаблон проектирования стратегия. Это отличный шаблон который очень удобно применять в тех случаях когда нам необходимо использовать различные алгоритмы в зависимости от каких-то условий.
=)


Научился: Лишний раз отшлифовал сценическое мастерство.
Трудности: Отправил отчет по итератору, хотел сделал отчет по стратегии.