Курсы на программиста

Формула программиста
основатель — Волосатов Евгений Витольдович
1-2-3 мая - Создай online игру!

Бурные потоки

На этом вебинаре мы напишем игру - змейку.
Только играть в неё будем не мы, а наши потоки.
Самыми разными способами. С самыми разными выкрутасами.
Да, там будет много змеек, которые будут гоняться друг за другом.
Передавать друг-другу полезную информацию, проигрывать,
рождаться, и может быть даже размножаться :)

12 миниуроков.
3 часа 38 минут.
Доступ на 15 дней.

Хочу купить!

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

Цена: 800 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:14:56 39 чел. ★ 4.9 Done
  На этом уроке мы сделаем небольшое теоретическое введение в потоки
и начнём создавать консольное приложение с самодостаточным классом
для Питона.
Вопрос: какие ещё статические поля нужно добавить в класс Питона?
Отчёт отправил: 1947. Denis Выполнено за 15 мин. [Показать отчёт]
Научился: вспомнил как избавляться от static 
Сложности: ничего 
Комментарии: Как и на вебинаре, предложил следующие статические поля: Координаты головы, направление, цвет. Я еще, правда, предложил длину хвоста, меня убедили, что это лишнее =)  
2 Террариум 00:13:24 38 чел. ★ 5 Done
  На этом уроке мы подготовим экран для наших питонов.
Сделаем по краям стенки, чтобы они не уползли.
Напишем функцию для сохранения и отображения символов.
* Создайте метод AddHare() для добавления зайчика.
Отчёт отправил: 1947. Denis Выполнено за 20 мин. [Показать отчёт]
Научился: работать с экраном консоли 
Сложности: ничего 
Комментарии: Доп. задание сразу выполнить не удалось =) Выполним на следующем задании 
3 Зайчики 00:13:40 38 чел. ★ 5 Done
  На этом уроке мы напишем статический метод для добавления зайчика на поле.
Для этого нам потребуется несколько вспомогательных методов,
которые окажутся полезными и в других частях нашей программы.
В конце урока мы выведем на экран сотню зайчиков :)
Ответить на вопрос: какие не статичные поля нужны питону?
Отчёт отправил: 1947. Denis Выполнено за 20 мин. [Показать отчёт]
Научился: добавлять пушистых ззайчиков =) 
Сложности: ничего 
Комментарии: из нестатических полей, нужны координаты головы, и координаты смещения головы на следующем ходу. 
4 Питонатор 00:15:34 38 чел. ★ 5 Done
  На этом уроке мы опишем нужные поля для нашего питона
и создадим статическую функцию для создания его экземпляра.
Также нам понадобится конструктор, который мы сделаем приватным.
Отчёт отправил: 1947. Denis Выполнено за 20 мин. [Показать отчёт]
Научился: создавать конструктор питончика 
Сложности: ничего 
Комментарии: Ждем, ждем начала работы потоков 
5 Поворот головы 00:20:51 37 чел. ★ 4.9 Done
  На этом уроке мы сделаем отображение питона,
поворот его головы и передвижение по экрану.
* Оживить питонов самостоятельно.
Отчёт отправил: 1947. Denis Выполнено за 20 мин. [Показать отчёт]
Научился: описанию сложения структур operator + 
Сложности: ничего 
Комментарии: Сложение структур - Очень интересная штука, даже не подозревал о существовании такого =) Теперь при каждом удобном случае буду такое использовать! 
6 Поток питонов 00:17:02 35 чел. ★ 4.9 Done
  На этом уроке мы наконец-таки займёмся потоками.
Запустим наших питонов сначала в одном потоке,
а потом в отдельных - нам понадобится метод Run().
Создадим критическую секцию через lock.
Протестируем режим Foreground/Background режимы.
Отчёт отправил: 1947. Denis Выполнено за 15 мин. [Показать отчёт]
Научился: создавать критическую секцию 
Сложности: понять, как работает критическая секция 
Комментарии: Все таки, до конца не совсем понятно, как именно работает команда lock. Мы создаем в потоке какой-то объект, который служит флагом для нашего потока. Почему нужен именно объект, непонятно. Надеюсь понимание придет позже. Пока двигаемся дальше. 
7 Бурная жизнь 00:14:56 35 чел. ★ 5 Done
  На этом уроке мы допишем класс питон и получим эстетическое удовольствие
от созерцания нашего террариума с нашими Питонами и Зайцами.
* Придумать свою фишку и реализовать, написать, что сделал.
Отчёт отправил: 1947. Denis Выполнено за 30 мин. [Показать отчёт]
Научился: Работе с потоками 
Сложности: реализовать точку в хвосте 
Комментарии: Повторять за Евгением Витольдовичем сложности не вызывает. А вот то, что делаешь сам - всегда вызывает какие-никакие трудности =) В данном случае, по совету Евгения Витольдовича, реализовал вывод точки на конце Питончика. 
8 Приоритет 00:14:20 34 чел. ★ 4.9 Done
  На этом уроке мы поиграемся с приоритетом потоков,
воспользуемся монитором для создания критической
секции, выведем на экран легенду потоков с id.
Отчёт отправил: 1947. Denis Выполнено за 20 мин. [Показать отчёт]
Научился: узнал о Monitor 
Сложности: ничего 
Комментарии: Когда длина питона становится больше 10, а потом падаем меньше 10, последний 0 от десятки остается на экране консоли. Нужно будет подумать, как от этого избавиться. 
9 Замри! 00:17:49 33 чел. ★ 4.8 Done
  На этом уроке мы поговорим о статусах потока:
Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped.
Создадим функционал для остановки потоков по нажатию клавиш.
И научимся сопротивляться этим остановкам.
Отчёт отправил: 1947. Denis Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: ловить ошибки потоков 
Сложности: переделать весь проект на WinForm 
Комментарии: Я не большой любитель консоли, поэтому решил переделать на вин формы. Визуализация сильно лучше не стала, пока просто перенес все на форму и переписал отображение. Пришлось использовать BeginInvoke, ибо при коллизиях в процедуре отрисовки писало, что объект занят другим потоком. 
10 Смысл жизни 00:09:16 32 чел. ★ 4.9 Done
  На этом уроке мы сделаем красивое завершение потока.
Также добавим крестики на экран для "логичного" завершения жизни питона.
Смысл жизни - в самой жизни, каждый питон это понял, а ты?..
Отчёт отправил: 1947. Denis Выполнено за 30 мин. [Показать отчёт]
Научился: смыслу жизни питонов 
Сложности: понять, почему после рестарта сразу появляются мертвые лишние питоны 
Комментарии: Добавил колючки на карту, и если питон погибает, на его месте появляется крест. Хочу еще доделать, так что финальный отзыв надеюсь успею до 5 мая доделать. Может даже видео обзор сниму. 
11 ФИНАЛЬНЫЙ УРОК 32 чел. ★ 4.7 Done
  Поздравляю с окончанием миникурса "Бурные потоки".

Напиши, пожалуйста, отзыв об этом курсе.
Что тебе понравилось, что было сложным, что новым,
что можно было бы сделать лучше.

Ты молодец!

Какой курс ты будешь проходить следующим?
Отчёт отправил: 1947. Denis Выполнено за 30 мин. [Показать отчёт]
Научился: писать отзыв о курсе 
Сложности: придумать текст 
Комментарии: Сегодня я бы хотел вам рассказать про пока еще небольшой курс "Бурные потоки". Бурные потоки это базовый курс по изучение потоков, или, как их еще называют, Нитей. Во время его прохождения мы научимся писать многопоточные приложения, создавать критические секции, чтобы потоки не мешали друг другу, попробуем себя в роли менеджера потоков, научимся прерывать их работу, управлять их приоритетом, и, как следствие процессорным временем. Чтобы нам было не скучно изучать такую важную, и в то же время достаточно сложную для понимания тему, мы напишем простенький визуализатор, чтобы все наши труды можно было не только пощупать изнутри, но и увидеть снаружи. Визуально отобразить работу потоков нам поможет такая простая и незамысловатая игра, как змейка. Только у нас она будет не одна, а целых несколько. И соревноваться они будут в поедании зайчиков, которые будут случайным образом появляться на нашей виртуальной заячей полянке. Но зайчики у нас будут не простые, а с IQ чуть ниже среднего, поэтому периодически они будут выкладывать на полянку вместо себя ловушки для наших питончиков. Наш добрый питончик, попав на такую ловушку очень огорчится и самоуничтожится, оставив после себя лишь небольшой памятник в качестве напоминания о своей нелегкой жизни. Вот такая вот у нас грустная история, в который все потоки когда-нибудь заканчиваются. А если вы пройдете еще и мини курс "Коллекция графа", то сможете научить своих питончиков двигаться не как попало, а к ближайшему зайчику, а также избегать хитрых заячих ловушек. Кто знает, возможно именно вы научите зайчиков убегать от питончиков, и создадите своей режим этой замечательной игры. Основные навыки и знания для работы с несколькими потоками мы получим буквально за 2 с половиной часа данного мини курса, конечно не считая время на самостоятельные занятия. И поверьте, когда вы окунетесь в этот дивный новый многопоточный мир , останавливаться вам явно не захочется! Ведь вам откроется такой простор для творчества! Не хотите блокировать работу формы, пока программа долго читает большой объем данных? Используйте потоки. Хотите распараллелить работу сложных вычислений? Добро пожаловать к потокам. Конечно, за 2 с половиной часа не получится изучить все ньюансы потоков, на это понадобится гораздо больше времени, и гораздо больше самостоятельной работы. Но мы будем надеяться, что Евгений Витольдович внемлет нашим мольбам, и продолжит этот мини курс, чтобы рассмотреть как можно больше материала и сразу применить его на практике. Ну чтож, будем ждать. А пока, если вы еще не зарегистрированы, добро пожаловать на проект videosharp.info, остальным - удачи в прохождении курсов, и в написании своих программ. Не забывайте, просто проходить уроки это добольно скучно, нужно пробовать добавлять что-то свое. Ведь программирование это не только линейные алгоритмы, и рутинные действия, это Творчество, а программисты - своего рода художники. До встречи на просторах программирования! 
12 VIP. Игры со словами 01:06:32 16 чел. ★ 4.8 $
  Если есть файл из 27000 слов, то с его помощью можно сделать очень много интересного.
На уроке мы ищем палиндромы, детские слова и анаграммы.
Хорошее подспорье для игры Эрудит.
  Итого:   12 видеоуроков общей продолжительностью 3 час. 38 мин. 16 чел. ★ 4.9  
  Финалисты:   Максим Лапшинов,   Андрей Н.,   Новопашин Владимир,   Сергей Соколов,   Артём,   Елена,   Станислав,   Алексей|BrisK|Кривицкий,   Yefim,   Сергей,   Tekashnik,   Алексей Малышев,   Александр,   Sergio,   Денис,   chokayes .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Созданию и управлению потоками, обработке исключений при работе потоков
Трудности: Для понимания сложным было понятие критической секции и использование lock, monior
В качестве введения в потоки этот курс вполне неплох. Вместо чтения скучных книжек мы создаем забавный симулятор питончиков, при этом практикуемся в программировании, и осваиваем потоки.
Научился: В этом курсе я узнал о потоках, а также поработал с ними на практике. Также, я подчеркнул некоторые моменты в реализации алгоритма змейки (к примеру, когда я давным давно его реализовывал, то хранил каждую часть тела как некую структуру, в которой хранятся ее координаты, ... После чего полностью перерисовывал змейку. Тут же я понял, что этот же результат можно получить гораздо проще). В общем же курс просто великолепен, для тех кто хочет познакомиться с потоками и понять смысл в общих чертах.
Трудности: Сложностей не было