Если вы молодой программист и у вас не очень много опыта, некоторые темы в современном программировании могут показаться вам слишком абстрактными. Например, такие, как паттерны проектирования или принципы SOLID. Когда меня спрашивают про SOLID, я понимаю, что все короткие ответы меня не удовлетворяют. В то же время, работая в команде, я могу рассказывать младшим программистам об абстракциях на примере нашего собственного кода. Такие рассказы гораздо доходчивее. Промышленная разработка — лучшая ситуация для обучения, если вам повезло с проектом, командой и тим-лидом. Но что делать, если не повезло? В московском клубе программистов регулярно делают доклады на тему паттернов, DDD, SOLID. К сожалению, они носят слишком обзорный характер. Во-первых, продолжительность доклада всего сорок минут; а во-вторых, этот формат не позволяет раскрывать детали. Нужен совместный проект, в котором можно столкнуться реальными проблемами и решать их, попутно осваивая теорию. Проект должен быть достаточно условным и учебным, чтобы за деревьями мы не потеряли лес — наша задача не в запуске программы, а в том, чтобы научиться. ## Проект В качестве учебного проекта мы возьмём книжный интернет-магазин. Каждый из нас покупал книги в интернете и хорошо представляет предметную область. Нам не придётся пару недель разбираться в том, что мы хотим сделать. С другой стороны, интернет-магазин уже достаточно велик и практичен, чтобы мы могли столкнуться с проблемами и понять, как абстрактные знания помогают их решать. ## Формат Место обучения: Zoom Длительность занятия: 1,5 часа Расписание занятий: каждый вторник с 19:00 до 20:30, начиная с 28 апреля (, , , , , , , ) Продолжительность: 8 встреч, то есть полный курс займёт два месяца. По согласованию с участниками, количество встреч может быть изменено. Курс бесплатный и это накладывает ограничение на участников. Вам должно быть интересно учиться. И вы должны помогать друг другу, потому что я один не успею. Что конкретно будет происходить: * Мы будем обсуждать задачи и их решения. * Я буду расшаривать экран и писать код, попутно объясняя, что и зачем я делаю. * Я буду отвечать на вопросы. * Весь урок будет записан и выложен в YouTube, так что вы сможете позже просмотреть его и поэкспериментировать с кодом самостоятельно. ## Темы * C# * SQL * git и GitHub * Agile: бэклог, пользовательские истории, итерации * Модульное тестирование * Паттерны проектирования * Принципы SOLID * DDD (Domain Driven Design) * MVC * Entity Framework У нас интернет-магазин, поэтому, конечно, нам придётся использовать HTML, CSS и JavaScript. Я не планирую глубоко погружаться в эти темы, в том числе потому, что не специализируюсь на них и глубоко не разбираюсь. ## Пожелания Не всем этот курс может быть полезен. Если вы хотите научиться программировать с нуля, этот курс окажется слишком сложным. Если вы старший программист, то вряд ли узнаете что-то новое. Курс подойдёт вам, если вы программируете несколько лет и знаете два-три языка программирования. Хорошо, если один из этих языков является наследником C, то есть это C , C#, Java, PHP, JavaScript. Важно, чтобы вы понимали основы объектно-ориентированного программирования, чтобы вас не пугали термины класс, объект и наследование. Разработка будет вестись в Visual Studio 2019 Community Edition. Это бесплатная IDE от Microsoft, которая работает под Windows. Её можно запустить на MacOS. Разрабатывать код можно будет и под Linux в вашем любимом редакторе. Исходный код проекта на GitHub:
Hide player controls
Hide resume playing