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

Формула программиста
основатель — Волосатов Евгений Витольдович

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

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

10 миниуроков.
2 часа 18 минут.
Доступ на 15 дней.

2,000 руб.


Для подписки на пакет необходимо авторизоваться.

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:14:56 32 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Вопрос: какие ещё статические поля нужно добавить в класс Питона? Ответ: Поле, массив для его представления. 
2 Террариум 00:13:24 31 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: --- 
3 Зайчики 00:13:40 31 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: > какие не статичные поля нужны питону? Координаты тела и его длина, цвет, скорость и направление движения 
4 Питонатор 00:15:34 31 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 15 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: --- 
5 Поворот головы 00:20:51 31 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: --- 
Сложности: --- 
Комментарии: Питон не отображался в самом начале из-за проблемы в методе ShowMe: PutScreen(cHead, color, aHead[(int)arrow]); PutScreen(cNone, color, aNone); т.е. он рисуется, а потом в том же самом месте затирается, если поменять строчки местами, то сразу все становится на свои места :) 
6 Поток питонов 00:17:02 30 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: Научился запускать код в отдельном потоке и базовой работе с этим потоком. 
Сложности: --- 
Комментарии: --- 
7 Бурная жизнь 00:14:56 30 чел. ★ 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 29 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 20 мин. [Показать отчёт]
Научился: Узнал о Monitor и о способе задания приоритета потока. 
Сложности: --- 
Комментарии: При выводе легенды все же стоит использовать форматированный вывод, например: Console.Write("#{0,-2}\t{1,3}", Thread.CurrentThread.ManagedThreadId, body.Count); Самое главное здесь - выровнять длины змей по правому краю, т.к. если змея имеет длину 10, а потом уменьшается до 9, то этот нолик от десятки сам не исчезнет... 
9 Замри! 00:17:49 28 чел. ★ 4.8 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 30 мин. [Показать отчёт]
Научился: Научился обрабатывать запросы на прерывание процесса и (при необходимости) противодействовать им. 
Сложности: --- 
Комментарии: --- 
10 Смысл жизни 00:09:16 27 чел. ★ 5 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 25 мин. [Показать отчёт]
Научился: Научился использовать внешние прерывания потока с какой-то пользой, завершение потока наполнять смыслом, так сказать. 
Сложности: --- 
Комментарии: --- 
11 ФИНАЛЬНЫЙ УРОК 27 чел. ★ 4.7 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 10 мин. [Показать отчёт]
Научился: По отношению к курсу в целом. Курс достаточно интересный, позволяет изучить азы работы с потоками: их созданию и прерыванию, заданию приоритетов и обработке запросов на прерывание. 
Сложности: Пожалуй, особо сложного ничего не было лично для меня, единственное что смущает - это сам код змей, он достаточно запутан и вникнуть в него лучше особо не пытаться, задачу курса - усвоить азы работы с потоками - это решить не мешает. 
Комментарии: Ожидал от курса более глубокого рассмотрения работы с потоками, хотя, возможно, для кого-то и этот объем будет достаточно сложен для понимания. К сожалению, в это время года у меня традиционно очень мало времени, поэтому переписать код возможности сейчас нет, но он нуждается в большой работе, возможно даже в полном переписывании. Если запал к июлю-августу не пропадет и не появится другого "неотложного" увлечения или идеи, то попытаюсь переписать код этих змей. 
12 VIP. Игры со словами 01:06:32 11 чел. ★ 4.9 Done
  Отчёт отправил: 9263. Андрей Н. Решено за 2 час. 00 мин. [Показать отчёт]
Научился: Научился играть со словами! 
Сложности: --- 
Комментарии: Очень интересный видеоурок! Все-таки для поиска анаграмм выгоднее найти все массивы использования букв один раз и потом работать только с ними, это даст ускорение примерно в 1,5 раза А еще, я сначала не сравнивал длину слов, поиск анаграмм занимал почти минуту, после добавления проверки равенства длин время работы сократилось до 10 с! 
  Итого:   12 видеоуроков общей продолжительностью 3 час. 38 мин. 11 чел. ★ 4.92  
  Финалисты:   Максим Лапшинов,   Андрей Н.,   Новопашин Владимир,   Сергей Соколов,   Артём,   Елена,   Станислав,   Алексей|BrisK|Кривицкий,   Yefim,   Сергей,   Tekashnik .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Повторил то, что знал о потоках и предназначении static, узнал о приоритетах потоков и Monitor
Этот курс, как и другие в этой серии (других я не проходил), получился просто замечательный, особенно в плане визуализации. Но, в отличии от других, в этот раз это больше замечательная заготовка (для обучения и демонстрации работы с потоками). Сейчас попытаюсь объяснить. Я заметил, что все курсы из линейки "Професишарп" связаны: после того, как в первом мы во всех подробностях рассмотрели IEnumerator, с лёгкостью использовали его во втором, для создания класса работающего с графами, который, я надеюсь, очень пригодится нам здесь для того, чтобы змейка, например, шла к ближайшему зайцу. Как бы то ни было, в этом курсе заметно, что он третий подряд. За одну неделю одному человеку практически невозможно подготовить такую обширную тему, как потоки, тем более с такой потрясающей визуализацией. Теперь о самом курсе. Если вы ничего не знаете о потоках, лучше сначала пройдите урок "Нити на кубиках" (videosharp.info/video/soft2/nr=62), так как курс называется "Професишарп" и подразумевается, что что-то мы таки знаем =) Что же мы делали на этом курсе? Как я уже сказал большую его часть заняла визуализация, но она полностью стоила того, чтобы потратить на неё столько времени, но, естественно, это не всё. Также мы довольно детально рассмотрели подводные камни, которые встречаются, когда вы хотите, чтобы один объект работал в нескольких потоках, такие как: использование ключевого слова static и механизмы для синхронизации доступа к объектам lock и Monitor. Кроме этого, мы узнали, как задавать потоку определённый приоритет, что это даёт, как прерывать потоки извне, как обрабатывать это прерывание в самом потоке и как один поток может ожидать завершения другого (но, я считаю, что на последнее было выделено мало времени). Как видите, получился с одной стороны не длинный, и с другой стороны довольно насыщенный курс, и хотя довольно много всего было рассмотрено, почти всё это основы, так сказать база, без которой возможно рассматривать потоки на более глубоком уровне; вот почему, я считаю, что то, что есть на данных момент - это замечательный шаблон, взяв который который за основу можно ещё очень много сделать. С другой стороны, я и сам не знаю, что находится на этом "более глубоком" уровне, да и есть ли он вообще, так что вполне могу ошибаться на счёт всего этого. Но, в любом случае, с нетерпением жду продолжения =)
Научился: Потренировался в писании отчетов))
Трудности: Осмыслить итоги курса
Курс понравился простотой и наглядностью изложения, как хороший образец программирования . Недостатком я считаю недостаточное углубление в собственно потоки. Хотел бы пройти курс, где рассматривались алгоритмы на графах.