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

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

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

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

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

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

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

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

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

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

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

Хочу купить!

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

Цена: 2500 p.


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

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

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 17 мин. [Показать отчёт]
Научился: Научился планировать функции для webbot 
Сложности: Ничего такого сложного - просто перепроверял в игре, что не упустил главное. 
Комментарии: Заметил, что не было функций создания новых этажей - но я тоже бы это выделил в отдельную функцию как и лабиринты - это не слишком рутинная операция. P.S. Можно снять ограничение на скриншоты в 2 мегабайта, а то у меня 2,07 мгб и из-за этого пришлось дополнительно обрабатывать файлы 
3 Подготовка формы 00:21:15
22 чел. ★ 4.8 Done
  Создадим первую форму и начнем её заполнять необходимыми элементами.

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 11 мин. [Показать отчёт]
Научился: Научился пользоваться объектом Webbrowser 
Сложности: Сделать 6 задание - не буду подсказывать новичкам - но я не тем событием воспользовался для адресной строки. 
Комментарии: Где можно достать иконку, которую автор курса использовал в этом уроке? 
4 Проверяем авторизацию 00:19:49
20 чел. ★ 4.9 Done
  Добавим проверку авторизации. Допишем, если авторизации нет, то переходить на страницу авторизации

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

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

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 13 мин. [Показать отчёт]
Научился: Научился собирать выручку в игре и выкладывать товар 
Сложности: Да ничего особенного - вроде все понятно. 
Комментарии: Как то не комильфо на кнопочку кликать. Нужно некую задержку сделать в цикле, чтобы с задержкой выкладывать товар и собирать выручку и чтобы в одном цикле, а не выходить return. Может я излишне придираюсь и бегу вперед паровоза - скажу одно - очень понятно сделано и я в восторге. Недостающие функции: http://nebo.mobi/floors/0/3 - Закупить товар http://nebo.mobi/lift - задания на лифт http://nebo.mobi/quests - мои задания http://nebo.mobi/humans - работа с жителями 
7 Робот ходит за покупками 00:28:27
18 чел. ★ 4.9 Done
  1. Разбираем закупку
2. Пишем метод перехода на Закупить
3. Дописываем условие для "Закупить товар"
4. Объединяем три метода в один
Задание: При смене метода изменять название кнопки

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 11 мин. [Показать отчёт]
Научился: Научился поднимать лифт и выполнять задания с помощью единой функции. 
Сложности: Все было просто - хотел придраться, но не могу - все толково объяснено. 
Комментарии: Что-то вот думаю - зачем все эти лишние кнопочки, которые дублируют кнопку сделать. С моей точки зрения они лишние. Насчет последнего задания мне кажется нужно создать некую переменную - которая будет с браузера считывать сколько заданий выполнено за день (там эта цифра есть) - а дальше смотрим - когда приходит на выполнение данная переменная mode и количество выполеннных заданий больше 7, то ставим в цикле continue. 
9 Сегодня выполняем 00:26:56
18 чел. ★ 4.8 Done
  1. Ставим проверку на то, сколько заданий выполнено
2. Пишем метод определения выполненных заданий
Вопрос: как сделать перечисление методов, чтобы избавиться от строки?

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 4 час. 14 мин. [Показать отчёт]
Научился: Научился устанавливать предел выполенных заданий с помощью функции NeedQuests. 
Сложности: Ничего. 
Комментарии: Избавиться от строковой переменной можно с помощью переменной enum в которой мы указываем состояния робота. 
10 Работа - работа, перейди на Федота, а с Федота... 00:21:31
18 чел. ★ 4.8 Done
  1. Пишем отдельный метод Rabota
2. Добавляем таймер
3. Проверяем работу Робота
Вопрос: как определить что страница уже загрузилась?

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 54 мин. [Показать отчёт]
Научился: Научился автоматизировать робот и работать с компонентом timer. 
Сложности: Урок сделан толково - ничего не было сложным. 
Комментарии: Чтобы определить , что страница загрузилась, нужно искать закрытие тега </html> 
11 Лабиринт Минотавра 00:32:54
18 чел. ★ 4.8 Done
  На уроке мы напишем метод открывания случайной двери
Вопрос: какие нужны проверки для корректной работы метода?

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 57 мин. [Показать отчёт]
Научился: Научился определять номер текущей двери и нужны ли ключи. 
Сложности: Да вот думаю, что же было самым сложным. Я бы не называл это самым сложным - просто пришлось немного подумать- когда искал количество ключей. 
Комментарии: С моей точки зрения нужно более комплексную функцию писать для оставшихся ключей. Во всяком случае у меня нет волшебной записи "Что ключей не хватает". Хотя из скрина видно, что дверь 2, а ключей осталось 4. 4+2=6 - это меньше 10. 
13 Уборка помещений 00:51:26
17 чел. ★ 4.8 Done
  1. Пишем метод подсчета ключей
2. Создаем новый класс BrowserClass
3. Переносим все методы внутрь
Вопрос: где должна располагаться переменная перечисления mode?

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 59 мин. [Показать отчёт]
Научился: Научился приводить код в порядок и убирать однотипные функции в отдельный класс. 
Сложности: Не нашел такого. 
Комментарии: Ура! Навели порядок в коде. С моей точки зрения переменная mode должна быть в форме. Ведь именно в форме она меняет значение.  
14 Цикличность бытия 00:32:34
17 чел. ★ 4.8 Done
  1. Пишем метод NextStep()
2. Пишем метод проверки, нужен ли цикл
Вопрос: в какое время нужно программно останавливать работу таймера?

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 2 час. 11 мин. [Показать отчёт]
Научился: Научился гонять задания робота по циклу 
Сложности: Просто как 5 копеек. 
Комментарии: Я бы остановил цикл скажем после 2-3 минут холостых ожиданий- потом через полчасика снова включил. P.S. Робот воспитывается. Пока требуется участие человека - я бы его назвал автоматом Калашникова или если быть политкорректным автомат Шмойлова. Скоро вырастет настоящим мужчиной. 
15 Сколько времени? 00:22:32
16 чел. ★ 5 Done
  1. Добавляем настройки запуска робота
2. Добавляем информацию о времени запуска
Вопрос: Как и в какое место нужно установить обновление страницы в браузере, чтобы получить свежие данные по необходимости повтора цикла?

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 12 мин. [Показать отчёт]
Научился: Научился создавать рандомный таймер и выводить его показатели в элемент Label на форму. 
Сложности: Нет такого. Кстати вот что заметил, даже если Кирилл делает какое-то действие и по его мнению не все пользователи поймут - он еще раз разжует этот момент - с моей точки зрения это ценно. 
Комментарии: Я бы вообще прочитал бы данные на главной страницы, где есть задания - там есть закупки, выкладки , сбор выручки и прочее. У них можно заметить есть количество часов, минут или минут и секунд. Так вот по минимальному значению из этих я бы запускал таймер - чтобы не гонять его лишний раз вхолостую. В какое место - на форме в событие таймера. 
16 Настройки меняют настроение 00:33:45
16 чел. ★ 5 Done
  Добавить настройки по выполнению методов, на их основе перепишем метод получения следующего шага
Вопрос: напишите варианты хранения настроек программы (минимум один вариант)

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 31 мин. [Показать отчёт]
Научился: Научился по вижуалстудивски сохранять настройки приложения. 
Сложности: Был не внимательный при авторизации - оказывается в оба поля изначально подставлял логин - выяснилось уже когда начал использовать настройки. 
Комментарии: Я вот не пойму как реализовать метод лабиринта - по идее он же отдельный метод. Нужно некую галочку в настройки вывести, чтобы его там "дёргать". 
18 Жители. Выбираем гостиницу 00:23:13
15 чел. ★ 5 Done
  Ищем Гостиницу и попробуем в нее заходить.
Задание: провести анализ жителей Гостиницы. Определить какие жители нужны, а каких необходимо выгонять

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 08 мин. [Показать отчёт]
Научился: Научился работать с жителями. Принимать-уволнять, заселять и выселять. 
Сложности: Не надо было жителей выселять из гостиницы - теперь приходится искать на бирже труда работников за баксы. 
Комментарии: Я заметил такую вещи. Когда работает лифт ,то в это время какие-то работники принимаются на работу. Вообщем я уволил всех людей с кислым и мрачными рожами - ибо в моем городе должны работать счастливые люди. Ну как выяснилось не всегда удается счастливых людей устроить на все места часто бывают нужны люди с кислым лицом (среднее) - мрачных я погнал поганой метлой. 
19 Жители. Кто следующий? 00:29:45
16 чел. ★ 5 Done
  Рассмотрим жителей, начнем разбирать жителей из Гостиницы и методом перебора будем выбирать тех жителей, с которыми мы будем работать
Задание: написать метод выселения жителя

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

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 47 мин. [Показать отчёт]
Научился: Научился устраивать человека на работу. 
Сложности: Все было просто. 
Комментарии: Элементы разместил. Кстати эта программа очень полезная. У меня сейчас есть проблема - я иной раз через городские группы в контакты , где более 10000 пользователей продаю всякие не нужные вещи - проще говоря барахло, иной раз просто так отдаю. Выглядит так - я захожу в эту группу и создаю пост , либо есть кнопочка предложить новость. Дальше создаю сообщение - туда вставляю текст и прикрепляю фотки (на фотки люди охотнее реагируют). Так вот таких групп у меня больше 10 и меня достало каждый раз делать одно и тоже. Кроме того - мне надо несколько раз в сутки подавать объявление.  Так что я нашел решение своему горю. Кстати видимо и для авиты тоже сработает. 
21 Жители. Кто не работает - то не ест! 00:20:17
16 чел. ★ 5 Done
  Пишем метод Увольнения сотрудника
Проверяем всю логику программы, подводим итоги.

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 07 мин. [Показать отчёт]
Научился: Научился уволнять не эффективных сотрудников и принимать более эффективных. 
Сложности: Не к чему придраться. 
Комментарии: У меня еще возникла одна идея - есть ресурс puzzle-english.com - мне очень нравится, но удобнее заниматься со скаченными на мой компьютер видео. Вот еще один робот сделаю, после робота объявлений. 
22 ФИНАЛЬНЫЙ УРОК 00:23:23
13 чел. ★ 5 Done
  Задание.
Записать видеообзор любой своей программы.

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 3 час. 00 мин. [Показать отчёт]
Научился: Научился записывать видео для youtuba - супер - первые раз делаю. Сумбурно получилось. https://youtu.be/UrORzp0Rmoo - вот ссылка на  отзыв. 
Сложности: У меня микрфон барахралил - все время тихо говорил. Вот самое сложное было найти через группы в контакте микрофон у незнакомых людей за вкусняшку. 
Комментарии: Это было круто. Спасибо авторам за курс. 
Видеообзор: https://youtu.be/UrORzp0Rmoo
23 VIP. Формирование цикла 00:21:06
10 чел. ★ 5 Done
  Формируем супер-цикл

Отчёт отправил: 7119. Новопашин Владимир Выполнено за 1 час. 28 мин. [Показать отчёт]
Научился: Научился создавать самостоятельные циклы для работы программы.  
Сложности: Выделить время в конце вечера на этот урок. 
Комментарии: У меня в этой игре возникла насущная потребность чистки "лишних" людей. Выглядит это так - во время работы лифта ко мне иногда подселяются в гостиницу или устраиваются на работу юниты для которых нужна чистка (без (+) и ниже 9). Нужно будет мне на мою формочку такую кнопку вывести. Еще я не понял, как сохранять настройки в системе?  
  Итого:   23 видеоурока 9 час. 25 мин.
10 чел. ★ 4.9  
  Финалисты:   Новопашин Владимир,   Tekashnik,   Alcatraz,   Дмитрий 199,   Максим Лапшинов,   Ludmila,   Антон,   Роман,   Константин,   Слава .

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





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

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

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

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


Научился: Записывать видеообзор
Трудности: Записывать видеообзор
Полезный курс, спасибо за него Кириллу Шмойлову. Думаю что он пригодится в программировании, для устранения всякой рутины) Рекомендован к прохождению.


Трудности: Записывать видеообзор, ощущение будто на сцене стоишь.
Дико извиняюсь за сухой обзор, очень волновался и меня постоянно отвлекали. Огромная благодарность Кириллу Шмойлову за его труды и за этот обучающий курс, многому на нем научился. Далее планирую пройти курс "Сетевые технологии". Ссылка на видео ниже. https://youtu.be/mN2Dxdh0mVs