Обучение программированию c# онлайн

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

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

Интернетный бот

Система авто-управления сайтом

Это более 20 уроков по написанию программы,
Выполняющей за тебя рутинные операции.
Мы пройдемся по всем этапам разработки.
Решим какие операции не приносят радости,
И их просто необходимо автоматизировать!
Мы проведем тебя по всему пути создания бота.
С нами ты обязательно дойдешь до финиша!
И получишь бесценные знания, опыт.
У тебя в руках будет мощный инструмент для работы с HTML.

Что ты получишь, пройдя курс:

+ Понимание HTML документа
+ Знания, для прохождения авторизации
+ Навык автоматизировать однотипные действия
+ Опыт, позволяющий тебе работать с динамическими ссылками
+ Универсальный инструмент для работы с контентом сайта.

Внимание! Заметьте, существует много инструментов и фреймворков для работы с HTML документом, но сторонние библиотеки не участвуют в разработке проекта, используются только встроенные возможности языка программирования C#.

После окончания курса у тебя будет полноценный,
Рабочий бот, выполняющий за тебя все операции.

Преимущества курса
+ Практические задания
+ Показаны различные возможности
+ Без сторонних библиотек
+ Курс не утяжелен теорией
+ Чёткий пошаговый алгоритм: повтори и получи
+ Универсальный подход к написанию (применяй в любых своих разработках)
+ Автоматизируй свою работу!

Хочу купить!

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

Цена: 2500 p.


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

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Видеообзор Игры 00:06:05
39 чел. ★ 4.6 Done
  Описание игры Небоскребы, для которой
мы будем создавать систему автоматического управления сайтом,
или проще - веббота на языке C#.

Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт]
Научился: Нашел сайт с игрой. Зарегистрировался. Поиграл - немного изучил правили и интерфейс программы. 
Сложности: Самым сложным было зарегистрироваться. 
Комментарии: Замечаний нет. Будущий бот мне нравится. Честно говоря — не ожидал! Весь в предвкушении! :-) 
2 Планирование функций 00:12:35
22 чел. ★ 4.9 Done
  Напишем список функций, проанализируем какой необходим алгоритм для будущего Робота
Нарисуем блок-схему.
Вопрос: Какие ещё функции нужно добавить в список?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 56 мин. [Показать отчёт]
Научился: Научился создавать список функций и рисовать блок-схему будущего проекта. В список нужно добавить фукцию "Собрать чаевые" 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
3 Подготовка формы 00:21:15
22 чел. ★ 4.8 Done
  Создадим первую форму и начнем её заполнять необходимыми элементами.

Задание: Написать метод изменения страницы браузера из адресной строки

Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 19 мин. [Показать отчёт]
Научился: Научился добавлять в форму элементы WebBrowser, TabCantrol, поля для логина и пароля. Научился создавать метод изменения адресной строки из браузера и создавать метод изменения страницы браузера из адресной строки. 
Сложности: Написать метод изменения страницы браузера из адресной строки. 
Комментарии: Замечаний нет. 
4 Проверяем авторизацию 00:19:49
20 чел. ★ 4.9 Done
  Добавим проверку авторизации. Допишем, если авторизации нет, то переходить на страницу авторизации

Задание: Добавить кнопку Авторизация. Написать метод проверки авторизации

Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт]
Научился: Научился проверять авторизацию через написание соответствующего метода и кнопки. Добавлять переход на страницу авторизации, если ее нет. Добавил кнопку Авторизация, а вот с методом к ней не совсем понятно. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
5 Авторизация 00:14:08
18 чел. ★ 4.9 Done
  1. Создаем метод проверки авторизации возвращающий логическое значение (True / False)
2. Пишем авторизацию с заполнением полей
Задание: Приложить скрин со скрытым паролем.

Отчёт отправил: 9612. Олег Михайлович Выполнено за 40 мин. [Показать отчёт]
Научился: Научился создавать метод проверки авторизации и научился методу авторизации с заполнением полей и автоматическим нажатием нужной кнопки. Научился скрывать пароль визуально. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. Огромное спасибо — все очень наглядно и доступно. 
6 Робот приступает к действиям 00:21:04
18 чел. ★ 4.8 Done
  1. Разбираем действия "Собрать выручку"
2. Переходим на Собирание выручки
3. Получаем первую ссылку на сбор выручки
4. Кликаем по ссылке(переходим по ней)
5. Тоже самое проделываем с "Выложить товар"
Задание: Написать список ссылок, для перехода на другие функции

Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт]
Научился: Научился создавать методы для сбора выручки и для выкладки товара. Домашнее Задание: Закупить товар:http://nebo.mobi/floors/0/2 Поднять лифт:http://nebo.mobi/lift  
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. Все очень доступно и понятно. СПАСИБО! 
7 Робот ходит за покупками 00:28:27
18 чел. ★ 4.9 Done
  1. Разбираем закупку
2. Пишем метод перехода на Закупить
3. Дописываем условие для "Закупить товар"
4. Объединяем три метода в один
Задание: При смене метода изменять название кнопки

Отчёт отправил: 9612. Олег Михайлович Выполнено за 28 мин. [Показать отчёт]
Научился: Научился создавать метод Закупка товара, объединять три метода в один и изменять надпись на кнопке в соответствии с режимом.  
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
8 Лифтёра вызывали? 00:20:42
18 чел. ★ 4.9 Done
  1. Пишем метод поднятия на лифте
2. Пишем метод выполнения заданий
Вопрос: что нужно добавить и где, чтобы выполнялись не более 7 заданий?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 35 мин. [Показать отчёт]
Научился: Научился создавать методы поднятия на лифте и выполнения заданий. Проверку на 7 заданий в день нужно добавлять в методе buttonQuest_Click 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
9 Сегодня выполняем 00:26:56
18 чел. ★ 4.8 Done
  1. Ставим проверку на то, сколько заданий выполнено
2. Пишем метод определения выполненных заданий
Вопрос: как сделать перечисление методов, чтобы избавиться от строки?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 48 мин. [Показать отчёт]
Научился: Научился выполнять проверку на количество выполненных заданий и писать метод определения выполненных заданий.  
Сложности: Вроде бы метод написан правильно: private bool NeedQuest()         {             int quest = 0;             int quest_all = 7;             if (webBrowser1.Url.AbsoluteUri == "http://nebo.mobi/quests")             {                 HtmlElementCollection collection = webBrowser1.Document.GetElementsByTagName("div");                 foreach(HtmlElement el in collection)                 {                     if (el.OuterText == null) continue;                     if (el.OuterText.Length > 24 && el.InnerText.Substring(0, 25) == "Сегодня выполнено заданий")                         quest = int.Parse(el.InnerText.Substring(el.InnerText.IndexOf(':') + 1, 3));                 }             }             return quest < quest_all;         } Однако при проверке в окне textBoxHtml выдает один и тот же результат 2 раза (2 строки). Ошибку найти не могу... 
Комментарии: Замечаний нет. 
10 Работа - работа, перейди на Федота, а с Федота... 00:21:31
18 чел. ★ 4.8 Done
  1. Пишем отдельный метод Rabota
2. Добавляем таймер
3. Проверяем работу Робота
Вопрос: как определить что страница уже загрузилась?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 38 мин. [Показать отчёт]
Научился: Научился  создавать метод Rabota,  добавлять таймер и проверять автоматическую работу робота. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
11 Лабиринт Минотавра 00:32:54
18 чел. ★ 4.8 Done
  На уроке мы напишем метод открывания случайной двери
Вопрос: какие нужны проверки для корректной работы метода?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 38 мин. [Показать отчёт]
Научился: Научился писать метод открывания дверей. 
Сложности: Сложностей нет. 
Комментарии: Проверку метода открывания дверей нужно проводить  по параметру "Осталось ключей: 0". Тогда из метода открывания дверей можно выходить. 
12 Лабиринт Минотавра и нить Ариадны 00:18:14
17 чел. ★ 4.8 Done
  Напишем метод определение текущей двери и метод определения текущего количества ключей.
Задание: добавить два текстовых поля и вывести информацию с количеством ключей и номеру текущей двери в соответствующие текстовые поля.

Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 34 мин. [Показать отчёт]
Научился: Научился создавать методы для определения текущей двери и метод определения количества ключей. Добавлены поля на форму для количества ключей и текущей двери и дописан код по выводу номера текущей двери в соответствующее поле. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
13 Уборка помещений 00:51:26
17 чел. ★ 4.8 Done
  1. Пишем метод подсчета ключей
2. Создаем новый класс BrowserClass
3. Переносим все методы внутрь
Вопрос: где должна располагаться переменная перечисления mode?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 26 мин. [Показать отчёт]
Научился: Научился созданию метода подсчета ключей, научился рефакторингу кода путем созданию нового класса BrowserClass.  
Сложности: Сложного вроде бы и ничего, но с увеличение количества кода возрастает и сложность. 
Комментарии: Домашнее задание: Переменная  перечисления одинаково активно используется и в BrowserClass, и в Form1.cs поэтому я не понимаю, в чем особый смысл переносить ее в класс BrowserClass. Мне кажется, что она может оставаться на прежнем месте. 
14 Цикличность бытия 00:32:34
17 чел. ★ 4.8 Done
  1. Пишем метод NextStep()
2. Пишем метод проверки, нужен ли цикл
Вопрос: в какое время нужно программно останавливать работу таймера?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 51 мин. [Показать отчёт]
Научился: Научился рефакторингу кода -- написанию метода NextStep(). 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. На мой взгляд, останавливать работу таймера программно нужно после выполнения метода Rabota(). 
15 Сколько времени? 00:22:32
16 чел. ★ 5 Done
  1. Добавляем настройки запуска робота
2. Добавляем информацию о времени запуска
Вопрос: Как и в какое место нужно установить обновление страницы в браузере, чтобы получить свежие данные по необходимости повтора цикла?

Отчёт отправил: 9612. Олег Михайлович Выполнено за 43 мин. [Показать отчёт]
Научился: Научился добавлять настройки для запуска робота, добавлять информацию о времени запуска. 
Сложности: Сложностей нет. 
Комментарии: Думаю, что обновление страницы в браузере, чтобы получить свежие данные о необходимости повтора цикла нужно добавить в методе Rabota(), в строку: if (mode == Mode.Ожидание) [вот тут] return; 
16 Настройки меняют настроение 00:33:45
16 чел. ★ 5 Done
  Добавить настройки по выполнению методов, на их основе перепишем метод получения следующего шага
Вопрос: напишите варианты хранения настроек программы (минимум один вариант)

Отчёт отправил: 9612. Олег Михайлович Выполнено за 48 мин. [Показать отчёт]
Научился: Научился добавлять настройки по выполнению методов,  дальнейшему рефакторингу кода программы и созданию метода перехода на страницу в зависимости от мода. 
Сложности: Сложностей нет. 
Комментарии: Варианты хранения настроек программы:  в файле, в реестре Windows. 
17 С настройками всё в порядке! 00:37:54
16 чел. ★ 5 Done
  Изучаем настройки VisualStudio, заполним значения и попробуем сохранять и получать данные из настроек.
А так же наконец-то добавим Авторизацию в наш цикл и сделаем чтобы всё это крутилось и работало!
Задание: сделать так, чтобы работало прохождение Лабиринта.

Отчёт отправил: 9612. Олег Михайлович Выполнено за 1 час. 46 мин. [Показать отчёт]
Научился: Научился добавлять значения в настройки, создавать методы заполнения и сохранения настроек. 
Сложности: Сложностей нет. Но допустил ошибку (пропустил один оператор return) и долго искал ошибку, но в итоге нашел и исправил. Теперь все работает как надо. 
Комментарии: Замечаний нет. 
18 Жители. Выбираем гостиницу 00:23:13
15 чел. ★ 5 $
  Ищем Гостиницу и попробуем в нее заходить.
Задание: провести анализ жителей Гостиницы. Определить какие жители нужны, а каких необходимо выгонять
19 Жители. Кто следующий? 00:29:45
16 чел. ★ 5 Done
  Рассмотрим жителей, начнем разбирать жителей из Гостиницы и методом перебора будем выбирать тех жителей, с которыми мы будем работать
Задание: написать метод выселения жителя

Отчёт отправил: 9612. Олег Михайлович Выполнено за 40 мин. [Показать отчёт]
Научился: Научился создавать метод выбора следующего жителя, выбирать жителей, которых нужно выгонять и жителей, которых нужно устраивать на работу. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
20 Жители. Кто хочет сегодня поработать? 00:25:52
16 чел. ★ 5 Done
  Напишем три метода: "выселения жителя", "Найти работу", "Устроить на работу".
Задание: красиво и удобно разместить на форме элементы

Отчёт отправил: 9612. Олег Михайлович Выполнено за 55 мин. [Показать отчёт]
Научился: Научился создавать методы выселения жителей, метод отбора жителей для устройства на работу и метод устройства жителей на работу. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. 
21 Жители. Кто не работает - то не ест! 00:20:17
16 чел. ★ 5 Done
  Пишем метод Увольнения сотрудника
Проверяем всю логику программы, подводим итоги.

Отчёт отправил: 9612. Олег Михайлович Выполнено за 45 мин. [Показать отчёт]
Научился: Научился создавать метод увольнения сотрудников. 
Сложности: Сложностей нет. 
Комментарии: Замечаний нет. Хочу выразить огромную благодарность за созданный курс. Мне, как начинающему кодеру на C# курс дал огромное количество подходов в кодировании, которые вычитать в учебниках никогда бы не удалось. Еще раз огромное спасибо, Кирилл. Хотелось бы попросить о создании подобного курса, но, по работе, например, с капчами. Было бы очень познавательно. 
22 ФИНАЛЬНЫЙ УРОК 00:23:23
13 чел. ★ 5 $
  Задание.
Записать видеообзор любой своей программы.
23 VIP. Формирование цикла 00:21:06
10 чел. ★ 5 $
  Формируем супер-цикл
  Итого:   23 видеоурока 9 час. 25 мин.
10 чел. ★ 4.9  
  Финалисты:   Новопашин Владимир,   Tekashnik,   Alcatraz,   Дмитрий 199,   Максим Лапшинов,   Ludmila,   Антон,   Роман,   Константин,   Слава .

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





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

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

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

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


Научился: Всего 39 попыток и готово! Получилось фигово, но большее я сегодня не способен.



Научился: Научился записывать видео для youtuba - супер - первые раз делаю. Сумбурно получилось. https://youtu.be/UrORzp0Rmoo - вот ссылка на отзыв.
Трудности: У меня микрфон барахралил - все время тихо говорил. Вот самое сложное было найти через группы в контакте микрофон у незнакомых людей за вкусняшку.
Это было круто. Спасибо авторам за курс.