Какие задачки давали мне мои менторы
Давайте без смазки
Меня дрочили трем вещам: алгоритмы, проектирование и низкоуровневые приколы
Запомнилось по алгоритмам:
- На уровне есть синий и зелёный кубик. На уровне в случайном порядке расположены преграды-стены. Нужно чтобы синий кубик добрался по полу не сталкиваясь со стенами до зеленого кубика за минимальное время.
- Выдача сдачи. У вас есть набор номиналов монет (1, 5, 7, 10, 15); У вас есть сдача, которую нужно выдать (120); Вам нужно найти минимальное количество монет для выдачи сдачи;
- В стекло стреляют из дробовика, случайным образом дробь распределилась по поверхности, стекло оказалось хитрым и дробь разбила стекло на такие кусочки для каждой точки которой дробинка оказалась ближайшей.
В GameDev у нас два союзника: теория графов и вычислительная геометрия.
Запомнилось по проектированию:
- Есть набор заклинаний с разными условиями применения. Может ли игрок применить заклинание определяет сервер, на сервере игра не запущена, там отдельная программа у которой есть ограниченный набор данных об игровом мире. Геймдизайнер должен иметь возможность через JSON задавать условия применения.
- В игре сталкиваются две армии, воины разбиваются на отдельные дерущиеся друг с другом группы. Для каждого воина есть свои условия присоединения к такой группе, для отладки выведите списком кто с кем дерётся.
- Человек ведёт список задач, каждая задача может иметь дату начала, дату конца и кто ее поставил. Отобразите задачи на диаграмме ганта, списком а также систему нотификации о приближающемся сроке сдачи человеку и нотификацию о сдаче тому кто её поставил. Нотификация может проходить через email и СМС в зависимости от выбора тому кому приходит.
Проектирование вообще одна из самых запутанных вещей. Бедные паттерны переврали как только можно, с SOLID чуть полегче а вот до GRASP слава богу не дотянулись пока и 6 видов Coupling трактуют все более-менее в одном ключе.
Тут большое спасибо всем моим наставникам которые доходчиво объясняли почему такая реализация паттерна Visitor - это дерьмо, и чётко показывали как система запуталась и стала неоднозначной. Ну и конечно коллеги из ветки контрактного программирования привили любовь к четким формальным контрактам и статическому анализу что и сформировало мой стиль.
Если самому решать задачи на алгоритмы наставник поможет найти правильный алгоритм и объяснит как он работает на помидорках и ящичках. А чёткие условия входа и выхода позволяют на том же CodeForce автоматически проверять правильность решения.
Проектирование же - это скорей философский клуб где мудрые мужчины показывают к чему приводит то или иное решение и автоматизации здесь минимум. От этого к слову страдает большинство онлайн-курсов, там используются алгоритмические задачи и совсем забывают про проектирование и качество кода так, как всем впадлу учить менторов и проводить с ними разборы задач чтобы менторы были готовы к работе на таком уровне.
Я как в 21 год книжку по C# написал где соединил алгоритмические и проектировочные задачи так и закрепил на своих курсах эту синергию, чтобы пацаны были готовы к реальной работе.
До того как я сел за книгу я где-то года два проводил индивидуальные занятия, если накидаете лайков опишу эволюционные ступени программиста, какие этапы и сломы в сознание он проходит.
Про низкоуровневые вещи расскажу как-нибудь потом.
Давайте без смазки
Меня дрочили трем вещам: алгоритмы, проектирование и низкоуровневые приколы
Запомнилось по алгоритмам:
- На уровне есть синий и зелёный кубик. На уровне в случайном порядке расположены преграды-стены. Нужно чтобы синий кубик добрался по полу не сталкиваясь со стенами до зеленого кубика за минимальное время.
- Выдача сдачи. У вас есть набор номиналов монет (1, 5, 7, 10, 15); У вас есть сдача, которую нужно выдать (120); Вам нужно найти минимальное количество монет для выдачи сдачи;
- В стекло стреляют из дробовика, случайным образом дробь распределилась по поверхности, стекло оказалось хитрым и дробь разбила стекло на такие кусочки для каждой точки которой дробинка оказалась ближайшей.
В GameDev у нас два союзника: теория графов и вычислительная геометрия.
Запомнилось по проектированию:
- Есть набор заклинаний с разными условиями применения. Может ли игрок применить заклинание определяет сервер, на сервере игра не запущена, там отдельная программа у которой есть ограниченный набор данных об игровом мире. Геймдизайнер должен иметь возможность через JSON задавать условия применения.
- В игре сталкиваются две армии, воины разбиваются на отдельные дерущиеся друг с другом группы. Для каждого воина есть свои условия присоединения к такой группе, для отладки выведите списком кто с кем дерётся.
- Человек ведёт список задач, каждая задача может иметь дату начала, дату конца и кто ее поставил. Отобразите задачи на диаграмме ганта, списком а также систему нотификации о приближающемся сроке сдачи человеку и нотификацию о сдаче тому кто её поставил. Нотификация может проходить через email и СМС в зависимости от выбора тому кому приходит.
Проектирование вообще одна из самых запутанных вещей. Бедные паттерны переврали как только можно, с SOLID чуть полегче а вот до GRASP слава богу не дотянулись пока и 6 видов Coupling трактуют все более-менее в одном ключе.
Тут большое спасибо всем моим наставникам которые доходчиво объясняли почему такая реализация паттерна Visitor - это дерьмо, и чётко показывали как система запуталась и стала неоднозначной. Ну и конечно коллеги из ветки контрактного программирования привили любовь к четким формальным контрактам и статическому анализу что и сформировало мой стиль.
Если самому решать задачи на алгоритмы наставник поможет найти правильный алгоритм и объяснит как он работает на помидорках и ящичках. А чёткие условия входа и выхода позволяют на том же CodeForce автоматически проверять правильность решения.
Проектирование же - это скорей философский клуб где мудрые мужчины показывают к чему приводит то или иное решение и автоматизации здесь минимум. От этого к слову страдает большинство онлайн-курсов, там используются алгоритмические задачи и совсем забывают про проектирование и качество кода так, как всем впадлу учить менторов и проводить с ними разборы задач чтобы менторы были готовы к работе на таком уровне.
Я как в 21 год книжку по C# написал где соединил алгоритмические и проектировочные задачи так и закрепил на своих курсах эту синергию, чтобы пацаны были готовы к реальной работе.
До того как я сел за книгу я где-то года два проводил индивидуальные занятия, если накидаете лайков опишу эволюционные ступени программиста, какие этапы и сломы в сознание он проходит.
Про низкоуровневые вещи расскажу как-нибудь потом.
👍300
Взлет и падение третьего рейха
У меня есть друг и мой коллега - Саша. У Саши красный диплом исторического факультета и когда мы собираемся грустно пить водку до 5 утра Саша у нас вместо патефона.
Сейчас я читаю книгу Ширера на 1200 страниц, чтобы больше не сыпаться на теме нацисткой Германии и поддерживать разговор.
А вы говорите пьянство не развивает. Думаете чего я так подкасты веду, годы тренировок.
Но это ребячество, пить - вредно. Я сейчас не в употребление и надеюсь навсегда. Уже спадает отечность а мозг больше про что-то великое и светлое.
Через две недели полечу к ОМ на Бали где хорошенько потренируюсь на кэмпе и поработаю пляжным бездельником.
У меня есть друг и мой коллега - Саша. У Саши красный диплом исторического факультета и когда мы собираемся грустно пить водку до 5 утра Саша у нас вместо патефона.
Сейчас я читаю книгу Ширера на 1200 страниц, чтобы больше не сыпаться на теме нацисткой Германии и поддерживать разговор.
А вы говорите пьянство не развивает. Думаете чего я так подкасты веду, годы тренировок.
Но это ребячество, пить - вредно. Я сейчас не в употребление и надеюсь навсегда. Уже спадает отечность а мозг больше про что-то великое и светлое.
Через две недели полечу к ОМ на Бали где хорошенько потренируюсь на кэмпе и поработаю пляжным бездельником.
👍159
На заре…
Приходите к нам учится, у нас самые крутые выпускные! Через пару месяцев повторим для всех наших учеников… Но в каком городе друзья?)
Приходите к нам учится, у нас самые крутые выпускные! Через пару месяцев повторим для всех наших учеников… Но в каком городе друзья?)
👍134
Как я строил свои персональные занятия?
Когда мне было годков 18, то одна из моих девчонок сказала, что беременна. Я мужчина ответственный и пошёл зашибать деньги. И набрал себе человек 10 на индивидуальные занятия по программированию в добавок к основной работе.
Через пару недель оказалось, что всё это было неправдой, и девушка просто “манипулировала”, а ребёнка не существовало. А вот люди с оплаченными занятиями существовали! После этого я ещё два года обучал людей. Суммарно я провёл где-то тысячу занятий.
Каждый ученик проходил довольно шаблонные переломы в сознании. Я ставил цель на занятия короткими перебежками (2-3 занятия) совершать надлом в человеке через практику. На час урока я отводил 15 минут на лекцию, чтобы обозначить проблему, задачу и подвести теорию, а остальное время мы практиковались. Я считаю, что если во время урока ученик не пишет сам код, то это не урок, а бестолковщина.
Ко мне ходили мужики, которые «ну чисто попиздеть». С самого начала и до конца урока они просто любили рассказывать, как у них прошёл день, как с женой поругались. Ну и немного о мечтах стать программистом. Они думали, что сейчас я что-то такое скажу хитрое, и они всё поймут.
Вот такое я не любил.
НАВЫК НАВЫК НАВЫК.
Нет ни секрета, ни серебряной пули, ни гуру, ни какого бы то ни было откровения. Вы умеете то, что практикуете. Если человек не понимает массив, то я могу хоть 100 часов как обезьяна показывать ему на полочках и книжечках разные аналогии. ТОЛКУ БУДЕТ НОЛЬ.
А если я обозначу проблему, которую они решают, и дам пару примитивных задач, которых без них не решить. И мы вместе решим это через массивы. А потом дам задачи на самостоятельное решение под присмотром, то это даст результат. И буквально за час.
И вот программирование - это большое облако таких навыков, каждый из которых нужно развивать. НЕ ПОНИМАТЬ. А РАЗВИВАТЬ НАВЫК.
Вы можете сколько угодно говорить, что понимаете ООП. Я вам не поверю, пока не сможете эффективно решать задачи. Вы ничего не понимаете. Вы создаёте у себя иллюзию в голове и наслаждаетесь ей.
Не ваше ощущение “понимания” тут главное, а умение решать конкретные задачи.
Когда мне лично надоело это всё делать, я собрал свои задачи, которые помогали людям усваивать материал, и создал лучший курс по C# и Unity. В котором сначала сам проверял домашние работы, а потом обучил лучшую команду менторов в России, которые создают навыки ученикам, а не просто сотрясают воздух.
У нас всегда главные были практика и менторы, поэтому весь материал мы выкладываем бесплатно на YouTube. Потому что наших людей, наши принципы и подход нельзя ни украсть, ни спиратить.
Когда мне было годков 18, то одна из моих девчонок сказала, что беременна. Я мужчина ответственный и пошёл зашибать деньги. И набрал себе человек 10 на индивидуальные занятия по программированию в добавок к основной работе.
Через пару недель оказалось, что всё это было неправдой, и девушка просто “манипулировала”, а ребёнка не существовало. А вот люди с оплаченными занятиями существовали! После этого я ещё два года обучал людей. Суммарно я провёл где-то тысячу занятий.
Каждый ученик проходил довольно шаблонные переломы в сознании. Я ставил цель на занятия короткими перебежками (2-3 занятия) совершать надлом в человеке через практику. На час урока я отводил 15 минут на лекцию, чтобы обозначить проблему, задачу и подвести теорию, а остальное время мы практиковались. Я считаю, что если во время урока ученик не пишет сам код, то это не урок, а бестолковщина.
Ко мне ходили мужики, которые «ну чисто попиздеть». С самого начала и до конца урока они просто любили рассказывать, как у них прошёл день, как с женой поругались. Ну и немного о мечтах стать программистом. Они думали, что сейчас я что-то такое скажу хитрое, и они всё поймут.
Вот такое я не любил.
НАВЫК НАВЫК НАВЫК.
Нет ни секрета, ни серебряной пули, ни гуру, ни какого бы то ни было откровения. Вы умеете то, что практикуете. Если человек не понимает массив, то я могу хоть 100 часов как обезьяна показывать ему на полочках и книжечках разные аналогии. ТОЛКУ БУДЕТ НОЛЬ.
А если я обозначу проблему, которую они решают, и дам пару примитивных задач, которых без них не решить. И мы вместе решим это через массивы. А потом дам задачи на самостоятельное решение под присмотром, то это даст результат. И буквально за час.
И вот программирование - это большое облако таких навыков, каждый из которых нужно развивать. НЕ ПОНИМАТЬ. А РАЗВИВАТЬ НАВЫК.
Вы можете сколько угодно говорить, что понимаете ООП. Я вам не поверю, пока не сможете эффективно решать задачи. Вы ничего не понимаете. Вы создаёте у себя иллюзию в голове и наслаждаетесь ей.
Не ваше ощущение “понимания” тут главное, а умение решать конкретные задачи.
Когда мне лично надоело это всё делать, я собрал свои задачи, которые помогали людям усваивать материал, и создал лучший курс по C# и Unity. В котором сначала сам проверял домашние работы, а потом обучил лучшую команду менторов в России, которые создают навыки ученикам, а не просто сотрясают воздух.
У нас всегда главные были практика и менторы, поэтому весь материал мы выкладываем бесплатно на YouTube. Потому что наших людей, наши принципы и подход нельзя ни украсть, ни спиратить.
👍156
Завтра новая рабочая неделя!
Обожаю свою работу, и как же мне не терпится, чтобы выходные закончились.
Вы любите то чем занимаетесь?
Если нет, то почему все еще этим занимаетесь?
Обожаю свою работу, и как же мне не терпится, чтобы выходные закончились.
Вы любите то чем занимаетесь?
Если нет, то почему все еще этим занимаетесь?
👍161
Победил в своей игре
Вчера играли на стриме с Ильином, Мининым и Назаровым. Вырвал победу у Ильина на последнем вопросе. Я оказался опасный с двух сторон и коварный посередине, а ещё госпожа фортуна была на моей стороне. Но считаю что выиграл Александр, и мне просто повезло.
Призовой фонд в 40 000 рублей Антон предложил пропить на Бали но я в завязке и половину суммы отдал Декабристу за организацию а вторую половину пожертвовал в фонд помощи больным детишкам.
Вчера играли на стриме с Ильином, Мининым и Назаровым. Вырвал победу у Ильина на последнем вопросе. Я оказался опасный с двух сторон и коварный посередине, а ещё госпожа фортуна была на моей стороне. Но считаю что выиграл Александр, и мне просто повезло.
Призовой фонд в 40 000 рублей Антон предложил пропить на Бали но я в завязке и половину суммы отдал Декабристу за организацию а вторую половину пожертвовал в фонд помощи больным детишкам.
👍135
Соскучился
Пока писал вам текста как начинал преподавать и какие принципы выработал за то время наслаждался чувством ностальгии вспоминая как читал лекции и проверял домашки.
Хочу вернуться не надолго, как вам идея позаниматься 3 дня базой C# в интенсивном формате? Почитаю живые лекции и порешаю с вами домашки. Если придёте поставьте лайкосик
Пока писал вам текста как начинал преподавать и какие принципы выработал за то время наслаждался чувством ностальгии вспоминая как читал лекции и проверял домашки.
Хочу вернуться не надолго, как вам идея позаниматься 3 дня базой C# в интенсивном формате? Почитаю живые лекции и порешаю с вами домашки. Если придёте поставьте лайкосик
👍427
Как мы заработали 12 000 000 Р. на браузерных играх
С утреца вам динамита в ленту. Написал разбор за счёт чего мы сгенерировали столько денег на простых играх и на пальцах показал как новички могут делать также.
Аккуратней, там разрушится много ваших мифов и заблуждений, назад дороги не будет. 😉
Читать
С утреца вам динамита в ленту. Написал разбор за счёт чего мы сгенерировали столько денег на простых играх и на пальцах показал как новички могут делать также.
Аккуратней, там разрушится много ваших мифов и заблуждений, назад дороги не будет. 😉
Читать
👍113
Интересный фактс
У ХаудиХо видео «Учил C# неделю и вот что понял» вышло через два года после видео «С# за один час От Профессионала». Мне кажется он живет в фильме Довод
Накидаете лайков завтра сделаю статью с разбором 5 типичных ошибок в коде у таких «учителей»
У ХаудиХо видео «Учил C# неделю и вот что понял» вышло через два года после видео «С# за один час От Профессионала». Мне кажется он живет в фильме Довод
Накидаете лайков завтра сделаю статью с разбором 5 типичных ошибок в коде у таких «учителей»
👍546
Я на подкастах угукаю потому что я сова ебучая
Видели кстати новый с Соколовым? Сегодня вышел, про пирамиды
Видели кстати новый с Соколовым? Сегодня вышел, про пирамиды
👍136
Как YouTube блогеры поломают вашу карьеру в IT
Как обещал написал статью с разбором типовых ошибок в коде у популярных блогеров и "учителей"
Статья жесткая, токсичная и вообще кибербулинг. Если нервы у вас слабые и вы не привыкли честно смотреть на себя скипайте пост.
Читать статью
Код: 2456
Как обещал написал статью с разбором типовых ошибок в коде у популярных блогеров и "учителей"
Статья жесткая, токсичная и вообще кибербулинг. Если нервы у вас слабые и вы не привыкли честно смотреть на себя скипайте пост.
Читать статью
Код: 2456
👍130