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

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

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

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

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

2,000 руб.


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

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

# Название видеоурока Решило Рейтинг Доступ
1 Вступление 00:14:56 32 чел. ★ 4.9 Done
  Отчёт отправил: 9567. Максим Решено за 10 мин. [Показать отчёт]
Научился: Узнал о существовании Monitor и Interlocked 
Сложности: Ничего 
Комментарии: Всё хорошо 
2 Террариум 00:13:24 31 чел. ★ 5 Done
  Отчёт отправил: 9567. Максим Решено за 10 мин. [Показать отчёт]
Научился: Понял, зачем нужно использовать static для класса, который выполняется в нескольких потоках 
Сложности: Ничего 
Комментарии: Всё хорошо 
3 Зайчики 00:13:40 31 чел. ★ 5 Done
  Отчёт отправил: 9567. Максим Решено за 10 мин. [Показать отчёт]
Научился: Функции нужно делать как можно меньше, почему фигурные скобки нужно писать только тога, когда нужно 
Сложности: Ничего 
Комментарии: Хм, а меня учили, что их всегда нужно писать, чтобы код лучше читался, да и можно забыть, что должен быть только один оператор, написать 2+, а потом думать, почему цикл не работает =) 
4 Питонатор 00:15:34 31 чел. ★ 5 Done
  Отчёт отправил: 9567. Максим Решено за 15 мин. [Показать отчёт]
Научился: Ещё раз понял, зачем нужен static в случае с несколькими потоками (теперь на примере переменных) =) 
Сложности: Ничего 
Комментарии: Так, теперь нужно начинать разбираться, как всё это работает, а то на вебинаре только переписать успевал =) ПС: классная идея с проверкой отчётов перед уроком. А ограничение на кол-во непроверенных осталось? 
5 Поворот головы 00:20:51 31 чел. ★ 4.9 Done
  Отчёт отправил: 9567. Максим Решено за 20 мин. [Показать отчёт]
Научился: Передавать enum как int 
Сложности: Я всё ещё не разобрался, как всё работает, так что, ничего =) 
Комментарии: Мы почти сделали свою змейку в консоли, круто =) 
6 Поток питонов 00:17:02 30 чел. ★ 4.9 Done
  Отчёт отправил: 9567. Максим Решено за 15 мин. [Показать отчёт]
Научился: Повторил, зачем нужен IsBackgroung, как использовать lock и Monitor 
Сложности: Ничего 
Комментарии: Вот и потоки =) 
7 Бурная жизнь 00:14:56 30 чел. ★ 5 Done
  Отчёт отправил: 9567. Максим Решено за 15 мин. [Показать отчёт]
Научился: Ничему 
Сложности: Ничего 
Комментарии: Как я и писал, нужно, чтобы она сама в себя не закручивалась и шла к ближайшему зайцу (мы же как раз графы прошли, вот и отлично практическое применение) =) 
8 Приоритет 00:14:20 29 чел. ★ 4.9 Done
  Отчёт отправил: 9567. Максим Решено за 15 мин. [Показать отчёт]
Научился: Узнал, как задавать приоритет потоку 
Сложности: Ничего 
Комментарии: Приоритеты классная вещь =) 
9 Замри! 00:17:49 28 чел. ★ 4.8 Done
  Отчёт отправил: 9567. Максим Решено за 15 мин. [Показать отчёт]
Научился: Закрепил голику использования lock, повторил Abort, узнал, какие состояния бывают у потока 
Сложности: Ничего 
Комментарии: Мне кажется, нужно было сделать больший акцент на том, что когда мы прерываем поток, то внутри него может возникнуть именно ОШИБКА (если мы его прерываем не во время ожидания). Просто у когда я у себя в одной программе так делал во время выполнения sql запроса (выполнялся он долго, так что в фоновом потоке), программа не ждала, пока он выполниться и просто вырубала весь поток, в связи с чем в нём возникала ошибка. А так всё хорошо =) 
10 Смысл жизни 00:09:16 27 чел. ★ 5 Done
  Отчёт отправил: 9567. Максим Решено за 20 мин. [Показать отчёт]
Научился: Убивать змей голыми руками 
Сложности: Ничего 
Комментарии: Не совсем понял, зачем нужна эта строчка: PutScreen(head, color, aNone); в основном цикле (предыдущая голова вроде и так очищается), так что перенёс её в самый конец жизни змеи (последний шаг убийства - стереть голову) и сделал, чтобы во время умирания она не могла вертеть головой. Так, последний (на текущий момент) урок в этом курсе. Нужно написать отзыв. И так, после вебинара прошла целая ночь, вроде всё в голове уже устаканилось, сейчас попробую объективно всё это оценить =) Этот курс, как и другие в этой серии (других я не проходил), получился просто замечательный, особенно в плане визуализации. Но, в отличии от других, в этот раз это больше замечательная заготовка (для обучения и демонстрации работы с потоками). Сейчас попытаюсь объяснить. Я заметил, что все курсы из линейки "Професишарп" связаны: после того, как в первом мы во всех подробностях рассмотрели IEnumerator, с лёгкостью использовали его во втором, для создания класса работающего с графами, который, я надеюсь, очень пригодится нам здесь для того, чтобы змейка, например, шла к ближайшему зайцу. Как бы то ни было, в этом курсе заметно, что он третий подряд. За одну неделю одному человеку практически невозможно подготовить такую обширную тему, как потоки, тем более с такой потрясающей визуализацией. Теперь о самом курсе. Если вы ничего не знаете о потоках, лучше сначала пройдите урок "Нити на кубиках" (videosharp.info/video/soft2/nr=62), так как курс называется "Професишарп" и подразумевается, что что-то мы таки знаем =) Что же мы делали на этом курсе? Как я уже сказал большую его часть заняла визуализация, но она полностью стоила того, чтобы потратить на неё столько времени, но, естественно, это не всё. Также мы довольно детально рассмотрели подводные камни, которые встречаются, когда вы хотите, чтобы один объект работал в нескольких потоках, такие как: использование ключевого слова static и механизмы для синхронизации доступа к объектам lock и Monitor. Кроме этого, мы узнали, как задавать потоку определённый приоритет, что это даёт, как прерывать потоки извне, как обрабатывать это прерывание в самом потоке и как один поток может ожидать завершения другого (но, я считаю, что на последнее было выделено мало времени). Как видите, получился с одной стороны не длинный, и с другой стороны довольно насыщенный курс, и хотя довольно много всего было рассмотрено, почти всё это основы, так сказать база, без которой возможно рассматривать потоки на более глубоком уровне; вот почему, я считаю, что то, что есть на данных момент - это замечательный шаблон, взяв который который за основу можно ещё очень много сделать. С другой стороны, я и сам не знаю, что находится на этом "более глубоком" уровне, да и есть ли он вообще, так что вполне могу ошибаться на счёт всего этого. Но, в любом случае, с нетерпением жду продолжения =) 
11 ФИНАЛЬНЫЙ УРОК 27 чел. ★ 4.7 Done
  Отчёт отправил: 9567. Максим Решено за 5 мин. [Показать отчёт]
Научился: Повторил то, что знал о потоках и предназначении static, узнал о приоритетах потоков и Monitor 
Сложности: Ничего 
Комментарии: Этот курс, как и другие в этой серии (других я не проходил), получился просто замечательный, особенно в плане визуализации. Но, в отличии от других, в этот раз это больше замечательная заготовка (для обучения и демонстрации работы с потоками). Сейчас попытаюсь объяснить. Я заметил, что все курсы из линейки "Професишарп" связаны: после того, как в первом мы во всех подробностях рассмотрели IEnumerator, с лёгкостью использовали его во втором, для создания класса работающего с графами, который, я надеюсь, очень пригодится нам здесь для того, чтобы змейка, например, шла к ближайшему зайцу. Как бы то ни было, в этом курсе заметно, что он третий подряд. За одну неделю одному человеку практически невозможно подготовить такую обширную тему, как потоки, тем более с такой потрясающей визуализацией. Теперь о самом курсе. Если вы ничего не знаете о потоках, лучше сначала пройдите урок "Нити на кубиках" (videosharp.info/video/soft2/nr=62), так как курс называется "Професишарп" и подразумевается, что что-то мы таки знаем =) Что же мы делали на этом курсе? Как я уже сказал большую его часть заняла визуализация, но она полностью стоила того, чтобы потратить на неё столько времени, но, естественно, это не всё. Также мы довольно детально рассмотрели подводные камни, которые встречаются, когда вы хотите, чтобы один объект работал в нескольких потоках, такие как: использование ключевого слова static и механизмы для синхронизации доступа к объектам lock и Monitor. Кроме этого, мы узнали, как задавать потоку определённый приоритет, что это даёт, как прерывать потоки извне, как обрабатывать это прерывание в самом потоке и как один поток может ожидать завершения другого (но, я считаю, что на последнее было выделено мало времени). Как видите, получился с одной стороны не длинный, и с другой стороны довольно насыщенный курс, и хотя довольно много всего было рассмотрено, почти всё это основы, так сказать база, без которой возможно рассматривать потоки на более глубоком уровне; вот почему, я считаю, что то, что есть на данных момент - это замечательный шаблон, взяв который который за основу можно ещё очень много сделать. С другой стороны, я и сам не знаю, что находится на этом "более глубоком" уровне, да и есть ли он вообще, так что вполне могу ошибаться на счёт всего этого. Но, в любом случае, с нетерпением жду продолжения =) 
12 VIP. Игры со словами 01:06:32 10 чел. ★ 4.9 $
  Итого:   12 видеоуроков общей продолжительностью 3 час. 38 мин. 10 чел. ★ 4.92  
  Финалисты:   Максим Лапшинов,   Андрей Н.,   Новопашин Владимир,   Сергей Соколов,   Артём,   Елена,   Станислав,   Алексей|BrisK|Кривицкий,   Yefim,   Сергей .

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Данный курс простой и быстрый в прохождении, но это не значит что он плохой. Эти десять уроков очень информативны для человека который не сталкивался раньше с многопоточностью. На этом курсе изучается такое понятие как потоки. Базовые знания как обращаться с ними. Дается основа для углубленного изучения потоков. Очень рекомендую тем кто не знаком с потоками. А кто с ними сталкивался и работал, здесь не найдет для себя чего-то нового.
Научился: Писaть отзыв о куpсe
Трудности: Подбирать слова, чтобы не повторяться.
Как всегда, курс оказался на должной высоте. Никакой воды. Все по делу. Тема потоков - довольно сложная. Но удачная иллюстрация (питоны-зайцы), плюс уникальная способность сложные вещи объяснять простым языком свели всю сложность на нет. Конечно такую тему как потоки охватить в полном объеме за отведенное время невозможно. Зато пробудился страшный аппетит к более глубокому изучению теории потоков. А это дорогого стоит. Почти после каждого урока я не просто копировал код, а старался добавлять свою импровизацию. По ходу дела узнал что-то новое по программированию и технике набора кода. Что касается добавления функциональности, то есть немало идей. Во-первых нечестно, что питоны движутся а зайцы нет. Можно реализовать интеллектуальных питонов. То есть - заставить их двигаться не случайно, а целенаправленно. Следующий курс буду проходить Сетевые технологии.