Роман Сакутин
102K subscribers
1.33K photos
140 videos
18 files
726 links
Основатель студии разработки игр Агава и школы ЯЮниор. Настоящий программист с опытом 10+ лет.

Служба поддержки школы - @ijuniorSupportBot

Я - @rsakutin

РКН - https://www.gosuslugi.ru/snet/67d8231025b58f3d79091b83
Download Telegram
Какие задачки давали мне мои менторы

Давайте без смазки

Меня дрочили трем вещам: алгоритмы, проектирование и низкоуровневые приколы

Запомнилось по алгоритмам:
- На уровне есть синий и зелёный кубик. На уровне в случайном порядке расположены преграды-стены. Нужно чтобы синий кубик добрался по полу не сталкиваясь со стенами до зеленого кубика за минимальное время.
- Выдача сдачи. У вас есть набор номиналов монет (1, 5, 7, 10, 15); У вас есть сдача, которую нужно выдать (120); Вам нужно найти минимальное количество монет для выдачи сдачи;
- В стекло стреляют из дробовика, случайным образом дробь распределилась по поверхности, стекло оказалось хитрым и дробь разбила стекло на такие кусочки для каждой точки которой дробинка оказалась ближайшей.

В GameDev у нас два союзника: теория графов и вычислительная геометрия.

Запомнилось по проектированию:
- Есть набор заклинаний с разными условиями применения. Может ли игрок применить заклинание определяет сервер, на сервере игра не запущена, там отдельная программа у которой есть ограниченный набор данных об игровом мире. Геймдизайнер должен иметь возможность через JSON задавать условия применения.
- В игре сталкиваются две армии, воины разбиваются на отдельные дерущиеся друг с другом группы. Для каждого воина есть свои условия присоединения к такой группе, для отладки выведите списком кто с кем дерётся.
- Человек ведёт список задач, каждая задача может иметь дату начала, дату конца и кто ее поставил. Отобразите задачи на диаграмме ганта, списком а также систему нотификации о приближающемся сроке сдачи человеку и нотификацию о сдаче тому кто её поставил. Нотификация может проходить через email и СМС в зависимости от выбора тому кому приходит.

Проектирование вообще одна из самых запутанных вещей. Бедные паттерны переврали как только можно, с SOLID чуть полегче а вот до GRASP слава богу не дотянулись пока и 6 видов Coupling трактуют все более-менее в одном ключе.

Тут большое спасибо всем моим наставникам которые доходчиво объясняли почему такая реализация паттерна Visitor - это дерьмо, и чётко показывали как система запуталась и стала неоднозначной. Ну и конечно коллеги из ветки контрактного программирования привили любовь к четким формальным контрактам и статическому анализу что и сформировало мой стиль.

Если самому решать задачи на алгоритмы наставник поможет найти правильный алгоритм и объяснит как он работает на помидорках и ящичках. А чёткие условия входа и выхода позволяют на том же CodeForce автоматически проверять правильность решения.

Проектирование же - это скорей философский клуб где мудрые мужчины показывают к чему приводит то или иное решение и автоматизации здесь минимум. От этого к слову страдает большинство онлайн-курсов, там используются алгоритмические задачи и совсем забывают про проектирование и качество кода так, как всем впадлу учить менторов и проводить с ними разборы задач чтобы менторы были готовы к работе на таком уровне.

Я как в 21 год книжку по C# написал где соединил алгоритмические и проектировочные задачи так и закрепил на своих курсах эту синергию, чтобы пацаны были готовы к реальной работе.

До того как я сел за книгу я где-то года два проводил индивидуальные занятия, если накидаете лайков опишу эволюционные ступени программиста, какие этапы и сломы в сознание он проходит.

Про низкоуровневые вещи расскажу как-нибудь потом.
👍300
Взлет и падение третьего рейха

У меня есть друг и мой коллега - Саша. У Саши красный диплом исторического факультета и когда мы собираемся грустно пить водку до 5 утра Саша у нас вместо патефона.

Сейчас я читаю книгу Ширера на 1200 страниц, чтобы больше не сыпаться на теме нацисткой Германии и поддерживать разговор.

А вы говорите пьянство не развивает. Думаете чего я так подкасты веду, годы тренировок.

Но это ребячество, пить - вредно. Я сейчас не в употребление и надеюсь навсегда. Уже спадает отечность а мозг больше про что-то великое и светлое.

Через две недели полечу к ОМ на Бали где хорошенько потренируюсь на кэмпе и поработаю пляжным бездельником.
👍159
На заре…

Приходите к нам учится, у нас самые крутые выпускные! Через пару месяцев повторим для всех наших учеников… Но в каком городе друзья?)
👍134
Как я строил свои персональные занятия?

Когда мне было годков 18, то одна из моих девчонок сказала, что беременна. Я мужчина ответственный и пошёл зашибать деньги. И набрал себе человек 10 на индивидуальные занятия по программированию в добавок к основной работе.

Через пару недель оказалось, что всё это было неправдой, и девушка просто “манипулировала”, а ребёнка не существовало. А вот люди с оплаченными занятиями существовали! После этого я ещё два года обучал людей. Суммарно я провёл где-то тысячу занятий.

Каждый ученик проходил довольно шаблонные переломы в сознании. Я ставил цель на занятия короткими перебежками (2-3 занятия) совершать надлом в человеке через практику. На час урока я отводил 15 минут на лекцию, чтобы обозначить проблему, задачу и подвести теорию, а остальное время мы практиковались. Я считаю, что если во время урока ученик не пишет сам код, то это не урок, а бестолковщина.

Ко мне ходили мужики, которые «ну чисто попиздеть». С самого начала и до конца урока они просто любили рассказывать, как у них прошёл день, как с женой поругались. Ну и немного о мечтах стать программистом. Они думали, что сейчас я что-то такое скажу хитрое, и они всё поймут.

Вот такое я не любил.

НАВЫК НАВЫК НАВЫК.

Нет ни секрета, ни серебряной пули, ни гуру, ни какого бы то ни было откровения. Вы умеете то, что практикуете. Если человек не понимает массив, то я могу хоть 100 часов как обезьяна показывать ему на полочках и книжечках разные аналогии. ТОЛКУ БУДЕТ НОЛЬ.

А если я обозначу проблему, которую они решают, и дам пару примитивных задач, которых без них не решить. И мы вместе решим это через массивы. А потом дам задачи на самостоятельное решение под присмотром, то это даст результат. И буквально за час.

И вот программирование - это большое облако таких навыков, каждый из которых нужно развивать. НЕ ПОНИМАТЬ. А РАЗВИВАТЬ НАВЫК.

Вы можете сколько угодно говорить, что понимаете ООП. Я вам не поверю, пока не сможете эффективно решать задачи. Вы ничего не понимаете. Вы создаёте у себя иллюзию в голове и наслаждаетесь ей.

Не ваше ощущение “понимания” тут главное, а умение решать конкретные задачи.

Когда мне лично надоело это всё делать, я собрал свои задачи, которые помогали людям усваивать материал, и создал лучший курс по C# и Unity. В котором сначала сам проверял домашние работы, а потом обучил лучшую команду менторов в России, которые создают навыки ученикам, а не просто сотрясают воздух.

У нас всегда главные были практика и менторы, поэтому весь материал мы выкладываем бесплатно на YouTube. Потому что наших людей, наши принципы и подход нельзя ни украсть, ни спиратить.
👍156
Завтра новая рабочая неделя!

Обожаю свою работу, и как же мне не терпится, чтобы выходные закончились.

Вы любите то чем занимаетесь?

Если нет, то почему все еще этим занимаетесь?
👍161
Победил в своей игре

Вчера играли на стриме с Ильином, Мининым и Назаровым. Вырвал победу у Ильина на последнем вопросе. Я оказался опасный с двух сторон и коварный посередине, а ещё госпожа фортуна была на моей стороне. Но считаю что выиграл Александр, и мне просто повезло.

Призовой фонд в 40 000 рублей Антон предложил пропить на Бали но я в завязке и половину суммы отдал Декабристу за организацию а вторую половину пожертвовал в фонд помощи больным детишкам.
👍135
Соскучился

Пока писал вам текста как начинал преподавать и какие принципы выработал за то время наслаждался чувством ностальгии вспоминая как читал лекции и проверял домашки.

Хочу вернуться не надолго, как вам идея позаниматься 3 дня базой C# в интенсивном формате? Почитаю живые лекции и порешаю с вами домашки. Если придёте поставьте лайкосик
👍427
Как мы заработали 12 000 000 Р. на браузерных играх

С утреца вам динамита в ленту. Написал разбор за счёт чего мы сгенерировали столько денег на простых играх и на пальцах показал как новички могут делать также.

Аккуратней, там разрушится много ваших мифов и заблуждений, назад дороги не будет. 😉

Читать
👍113
Интересный фактс

У ХаудиХо видео «Учил C# неделю и вот что понял» вышло через два года после видео «С# за один час От Профессионала». Мне кажется он живет в фильме Довод

Накидаете лайков завтра сделаю статью с разбором 5 типичных ошибок в коде у таких «учителей»
👍546
Поднимаем знамёна, снова рвёмся в бой

Спасибо за лайки-балалайки, статью почти сделал, доделаю и опубликую завтра. Сейчас готовлюсь к выступлению.

Сегодня в 8 часов буду детально разбирать наши доходные проекты и дам пошаговый план обучения C# и Unity для новичков.
👍155
Я на подкастах угукаю потому что я сова ебучая

Видели кстати новый с Соколовым? Сегодня вышел, про пирамиды
👍136
Как YouTube блогеры поломают вашу карьеру в IT

Как обещал написал статью с разбором типовых ошибок в коде у популярных блогеров и "учителей"

Статья жесткая, токсичная и вообще кибербулинг. Если нервы у вас слабые и вы не привыкли честно смотреть на себя скипайте пост.

Читать статью

Код: 2456
👍130