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

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

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

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

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

Хочу купить!

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

Цена: 800 p.


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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:14:56 39 чел. ★ 4.9 Done
  На этом уроке мы сделаем небольшое теоретическое введение в потоки
и начнём создавать консольное приложение с самодостаточным классом
для Питона.
Вопрос: какие ещё статические поля нужно добавить в класс Питона?
Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Вопрос: какие ещё статические поля нужно добавить в класс Питона? Ответ: Поле, массив для его представления. 
2 Террариум 00:13:24 38 чел. ★ 5 Done
  На этом уроке мы подготовим экран для наших питонов.
Сделаем по краям стенки, чтобы они не уползли.
Напишем функцию для сохранения и отображения символов.
* Создайте метод AddHare() для добавления зайчика.
Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: --- 
3 Зайчики 00:13:40 38 чел. ★ 5 Done
  На этом уроке мы напишем статический метод для добавления зайчика на поле.
Для этого нам потребуется несколько вспомогательных методов,
которые окажутся полезными и в других частях нашей программы.
В конце урока мы выведем на экран сотню зайчиков :)
Ответить на вопрос: какие не статичные поля нужны питону?
Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: > какие не статичные поля нужны питону? Координаты тела и его длина, цвет, скорость и направление движения 
4 Питонатор 00:15:34 38 чел. ★ 5 Done
  На этом уроке мы опишем нужные поля для нашего питона
и создадим статическую функцию для создания его экземпляра.
Также нам понадобится конструктор, который мы сделаем приватным.
Отчёт отправил: 9263. Андрей Н. Выполнено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: --- 
5 Поворот головы 00:20:51 37 чел. ★ 4.9 Done
  На этом уроке мы сделаем отображение питона,
поворот его головы и передвижение по экрану.
* Оживить питонов самостоятельно.
Отчёт отправил: 9263. Андрей Н. Выполнено за 25 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Питон не отображался в самом начале из-за проблемы в методе ShowMe: PutScreen(cHead, color, aHead[(int)arrow]); PutScreen(cNone, color, aNone); т.е. он рисуется, а потом в том же самом месте затирается, если поменять строчки местами, то сразу все становится на свои места :) 
6 Поток питонов 00:17:02 35 чел. ★ 4.9 Done
  На этом уроке мы наконец-таки займёмся потоками.
Запустим наших питонов сначала в одном потоке,
а потом в отдельных - нам понадобится метод Run().
Создадим критическую секцию через lock.
Протестируем режим Foreground/Background режимы.
Отчёт отправил: 9263. Андрей Н. Выполнено за 25 мин. [Показать отчёт]
Научился: Научился запускать код в отдельном потоке и базовой работе с этим потоком. 
Сложности: --- 
Комментарии: --- 
7 Бурная жизнь 00:14:56 35 чел. ★ 5 Done
  На этом уроке мы допишем класс питон и получим эстетическое удовольствие
от созерцания нашего террариума с нашими Питонами и Зайцами.
* Придумать свою фишку и реализовать, написать, что сделал.
Отчёт отправил: 9263. Андрей Н. Выполнено за 35 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Очень сложный нетривиальный неочевидный алгоритм перемещения змей получается, но в принципе суть курса не в этом, а в изучении работы с потоками, поэтому не страшно. > Пpидyмaть cвою фишкy и реализовaть, написaть, что сделал. Добавил у змей поле для скорости speed, с помощью него у разных змей реализуется разная задержка в теле Run(): Thread.Sleep((10 - speed) * 25 + 50), где speed может быть от 0 до 9 
8 Приоритет 00:14:20 34 чел. ★ 4.9 Done
  На этом уроке мы поиграемся с приоритетом потоков,
воспользуемся монитором для создания критической
секции, выведем на экран легенду потоков с id.
Отчёт отправил: 9263. Андрей Н. Выполнено за 20 мин. [Показать отчёт]
Научился: Узнал о Monitor и о способе задания приоритета потока. 
Сложности: --- 
Комментарии: При выводе легенды все же стоит использовать форматированный вывод, например: Console.Write("#{0,-2}\t{1,3}", Thread.CurrentThread.ManagedThreadId, body.Count); Самое главное здесь - выровнять длины змей по правому краю, т.к. если змея имеет длину 10, а потом уменьшается до 9, то этот нолик от десятки сам не исчезнет... 
9 Замри! 00:17:49 33 чел. ★ 4.8 Done
  На этом уроке мы поговорим о статусах потока:
Unstarted, Running, Wait/Sleep/Join, Abort Requested, Stopped.
Создадим функционал для остановки потоков по нажатию клавиш.
И научимся сопротивляться этим остановкам.
Отчёт отправил: 9263. Андрей Н. Выполнено за 30 мин. [Показать отчёт]
Научился: Научился обрабатывать запросы на прерывание процесса и (при необходимости) противодействовать им. 
Сложности: --- 
Комментарии: --- 
10 Смысл жизни 00:09:16 32 чел. ★ 4.9 Done
  На этом уроке мы сделаем красивое завершение потока.
Также добавим крестики на экран для "логичного" завершения жизни питона.
Смысл жизни - в самой жизни, каждый питон это понял, а ты?..
Отчёт отправил: 9263. Андрей Н. Выполнено за 25 мин. [Показать отчёт]
Научился: Научился использовать внешние прерывания потока с какой-то пользой, завершение потока наполнять смыслом, так сказать. 
Сложности: --- 
Комментарии: --- 
11 ФИНАЛЬНЫЙ УРОК 32 чел. ★ 4.7 Done
  Поздравляю с окончанием миникурса "Бурные потоки".

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

Ты молодец!

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

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Данный курс простой и быстрый в прохождении, но это не значит что он плохой. Эти десять уроков очень информативны для человека который не сталкивался раньше с многопоточностью. На этом курсе изучается такое понятие как потоки. Базовые знания как обращаться с ними. Дается основа для углубленного изучения потоков. Очень рекомендую тем кто не знаком с потоками. А кто с ними сталкивался и работал, здесь не найдет для себя чего-то нового.
Научился: Управлять потоками.
Трудности: Функция отрисовки тела питона.
Хороший курс, хорошая идея, хорошая визуализация происходящего на экране, но маловато потоков. Я думаю его можно дополнить перенеся террариум в WF и разобраться там со всеми особенностями потоков.