×

Зачем ВУЗам и IT-компаниям сотрудничать? Опыт RubyGarage и факультета прикладной математики ДНУ

Меня зовут Катерина Шум, я HR-менеджер в RubyGarage и отвечаю за внутренние образовательные программы в компании. Статья написана в сотрудничестве с А. Кузенковым, кандидатом физико-математических наук, доцентом кафедры вычислительной математики и математической кибернетики, заместителем декана по учебной работе факультета прикладной математики Днепровского национального университета имени Олеся Гончара.

Сегодня принято критиковать высшее образование, мотивируя это тем, что коммерческие курсы дают более полезную программу за короткий срок. И в этом высказывании есть доля правды. Тем не менее, мы бы хотели посмотреть на идею высшего образования для IT-сферы под другим углом и рассказать о нашем опыте сотрудничества с факультетом прикладной математики ДНУ. В статье мы поговорим о совместной учебной программе и планах по улучшению качества обучения в ДНУ, выпуску квалифицированных специалистов с практическим опытом, развития сообщества студентов по специальностям, связанных с программированием.

Высшее образование для IT-специальностей. Что не так?

Для начала, кратко рассмотрим ситуацию в высшем образовании для IT.

С одной стороны, мы имеем явно устаревшую систему преподавания и учебную программу. Навыки, связанные с IT-технологиями обладают свойством достаточно быстро устаревать. За период 4-5 лет обучения в классическом ВУЗе, технологии и подходы продвигаются вперед, в то время, как студенты изучают «растянутую» программу, которую, по их мнению, можно пройти значительно быстрее. Сама по себе теоретическая база знаний недостаточна (хоть и является основой, без которой сложно обучать студентов), ВУЗам необходимо показывать практическое применение знаний в контексте бизнес-задач.

C другой стороны, мы понимаем, что ВУЗы дают студентам на программистских специальностях фундаментальные математические знания, навыки коммуникации в коллективе, подготовку к взрослой жизни и, главное, навыки обучаться самостоятельно.

Мы, со своей стороны, верим, что высшее образование для IT все еще остается актуальным. Мы также понимаем, что без участия всех заинтересованных сторон этого процесса (самих студентов, университетов и IT-компаний), невозможно построить качественный образовательный процесс. И только искренне признав проблематику, вместе мы сможем найти решение.

Мотивация как основа всего

По словам Александра Кузенкова, на сегодняшний момент, необходимо решение минимум трех мотивационных составляющих в сфере высшего образования для того, чтобы состоялся качественный учебный процесс для будущих IT-специалистов.

Мотивация студентов

Система среднего и высшего образования построена так, что на 1 курс поступают дети 16-17 лет. Не все в этом возрасте делают осознанный выбор и часто выбор специальности «абсолютно случайно» совпадает с выбором их родителей. Александр Кузенков, считает, что Украине следовало бы перенять опыт развитых стран.

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

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

Как убрать этот барьер? Мы считаем, что будущим студентам, а также первокурсникам, важно дать возможность «прикоснуться» к IT-специальности как можно раньше. Здесь на помощь приходят мотивационные лекции, однодневные воркшопы, где вместе с менторами каждый желающий может попробовать создать что-то своими руками, например, свой сайт.

Цель подобных мероприятий — показать перспективы IT и что стоит инвестировать время, деньги и энергию в IT-образование, показать, что все не так сложно, как кажется на первый взгляд и первый положительный опыт тому доказательство. Практика показывает, что такие активности находят отклик у ребят и мотивируют результативно провести 4-5 лет за университетской скамьей.

Мотивация IT-компаний

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

Решением, по мнению Александра Кузенкова, может стать создание эффективных платформ для коммуникации преподавателей и представителей IT-отрасли.

Цель такой платформы — дать возможность будущему работодателю беспрепятственно участвовать в обсуждении, формировании, методическом наполнении, и даже преподавании образовательного курса для студентов IT- и около IT-специальностей. Такая платформа на протяжении последних 3 лет эффективно работает на факультете прикладной математики ДНУ и уже начинает давать свои плоды.

Также, часто IT-компании поддаются соблазну принять на работу человека, обладающего лишь базовыми навыками некоторого языка программирования, без достаточных знаний по математическим и IT-дисциплинам. Такие junior-специалисты уже могут приносить пользу компании и иметь базовый доход. Но ни в коем случае нельзя останавливать обучение и уходить из университета. Все должны понимать, что язык программирования — это описательная часть. Давать команды компьютеру можно с помощью любого языка программирования. Более ценно научиться с помощью алгоритмов давать команды правильно. Погоня за быстрой наживой может сыграть злую шутку в долгосрочной перспективе как для специалиста, так и для компании.

Решение проблемы лежит в осознанном подходе к взращиванию кадров и эта задача ложится на плечи IT-компаний — мотивировать студентов закончить обучение и всячески этому способствовать. Например, давать возможность студентам работать в part-time графике, оставляя время для учебы и занятий личными делами, поощрять успешную сдачу экзаменов материально и нематериально (например, предоставлять дополнительные дни отпуска) и внедрять другие мотивационно-поощрительные программы.

Мотивация преподавателей

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

  • Нехватка времени. За повседневными, рутинными задачами не остается времени для креатива и разнообразия при обновлении и адаптации учебных программ;
  • Недостаток практического опыта. Зачастую, преподаватели — отличные теоретики, но при разработке задач, нацеленных на решение бизнес-проблематики, сказывается отсутствие опыта работы в настоящих проектах;
  • Финансирование. К сожалению, материальная компенсация и поощрения все еще остаются довольно низкими и преподавателям приходится добавлять часы преподавания, брать part-time проекты и находить дополнительные источники дохода. Такой загруженный ритм работы негативно сказывается на основной деятельности.

Мы видим решение этой проблемы в сотрудничестве преподавателей ВУЗов и IT-компаний. Примеры такого сотрудничества — совместная разработка обучающих программ, внедрение учебных курсов, заточенных под современные тренды в технологиях и требования работодателей. IT-компаниям стоит объединиться с преподавателями, чтобы выпускать конкурентоспособных выпускников, умеющих решать решать задачи бизнеса, которые неизбежно будут стоять перед ними в будущем. Благо, современные ВУЗы идут на такое сотрудничество, так как хотят идти в ногу со временем, оставаться востребованными.

Общие цели — ключ к успеху

Сегодня, практика сотрудничества ВУЗов и IT-компаний — не новшество. Некоторые компании даже преподают курсы о своих продуктах, подготавливая специалистов для работы в конкретной компании. Тем не менее, мы видим потенциал в коллаборациях подобного рода, считаем, что нам всем есть куда развиваться и как улучшать качество образования совместными силами. Призываем другие компании и ВУЗы поделиться подобным опытом в комментариях, нам важно получить обратную связь, понять, что мы могли бы улучшить.

Вместе с преподавателями мы разработали поэтапный план сотрудничества и этот процесс мы разделили на несколько этапов:

  • Обучение преподавателей веб-разработке на Ruby on Rails;
  • Составление ускоренной трехлетней обучающей программы для студентов факультета прикладной математики в ДНУ;
  • Проведение мероприятий для знакомства абитуриентов и студентов первых курсов с IT-индустрией;
  • Создание пространства в университете для обучения студентов;
  • Изменение политики компании на поддержку и мотивацию студентов закончить обучение в ВУЗе;
  • Внедрение обучающей программы в учебный план и снятие обратной связи для улучшения программы и постоянной адаптации под запросы рынка.

Подробнее о каждом из этапов рассмотрим внизу.

1. Разработка учебной программы для студентов

«Наша идея — не заменить, а улучшить программу образования. Мы понимаем, что нужно актуализировать существующие подходы, при этом, не нарушая «фундамент» — А. Кузенков

Один из самых трудоемких этапов — разработка учебной программы для студентов, которая бы охватила все важные аспекты программирования и позволила сделать выбор в пользу той или иной технологии. Кроме того, программа должна решать несколько задач:

  • Подготовка квалифицированных специалистов. Вначале, нужно определиться, что такое хороший специалист с точки зрения работодателя. Вместе мы составили квалификационные требования к навыкам и компетенциям студентов факультета прикладной математики. Они включат два направления: frontend и backend. Каждое из направлений погружает студентов в технологии, языки программирования и фреймворки и даем возможность определиться с направлением: выбрать то, что им больше по душе, не «наобум», а поняв это на практике.
  • Быстрая адаптация будущих специалистов. Наш проект нацелен на решение проблемы адаптации разработчиков в реальных рабочих условиях. Глобально, мы хотим сократить пресловутые полгода на адаптацию до нескольких месяцев за счет учебной программы, составленной с балансом теории и практики.
  • Вовлечение студентов. Как правило, на «айтишные» специальности поступают дети с высоким баллом и мотивацией учиться. Они охотно участвуют в олимпиадах, воркшопах и мотивационных лекциях. Мы хотим вносить вклад в сообщество начинающих разработчиков и подпитывать их стремления стать веб-разработчиками.

Разрабатывая программу, мы понимали, что IT-индустрия движется семимильными шагами и не все IT-компании поспевают за стремительным развитием новых технологий, языков программирования и фреймворков, что уж говорить о ВУЗах. Мы решили, что оптимальный вариант — оставить математический фундамент, базовые алгоритмы, структуры данных, изучение объектно-ориентированного языка программирования, технологии и среды разработки программного обеспечения.

Таким образом, студенту, закончившему бакалавриат, не придется переучиваться из-за устаревших технологий и подходов. Разработанная программа направлена на то, чтобы поднять вопросы практичности полученных знаний, сохранив сильную теоретическую базу.

Курс «Введение в программирование»

Курс «Введение в программирование» рассчитан на студентов первого курса с минимальным опытом в программировании или вообще без него. Составляя программу, мы ставили перед собой цель дать студентам фундаментальные знания о программировании и основных концепциях, связанных с веб-технологиями, а также адаптировать ее к современным реалиям и требованиям работодателей. Программа помогает студентам:

  • Изучить основы работы компьютера, как работает программирование и познакомиться с популярными языками программирования;
  • Разобрать понятия back-end и front-end и веб-технологий;
  • Понять различие между технологиями, которые используются на front-end и back-end;
  • Быть в курсе трендов и терминов: адаптивный дизайн, Agile, SaaS, PaaS, API, MVC и другие;
  • Научить качественной коммуникации с другими разработчиками;
  • Направить студентов в выборе языка программирования и технологий, с которыми они бы хотели работать в будущем;
  • Пробудить искренний интерес к технологиям и вдохновить их на дальнейший выбор профессии в IT-сфере.
Введение в программирование
Подзаголовок: Курс для студентов-первокурсников. На курсе студенты изучают базовые концепции, связанные с программированием и веб-технологиями. Кроме того, курс помогает студентам выбрать направление (front-end или back-end) и технологии для программирования.
Общее представлениеКак устроены компьютеры, операционные системы и «общение» между компьютерами.
ИнтернетКак работает интернет, браузеры, веб-сайты и мобильные сайты.
Front-end и back-endОбзор front-end и технологий: HTML, CSS, JavaScript. Обзор back-end и технологий: Python, PHP, Ruby.
Основные концепции программированияСинтаксис, переменные, функции, базовые типы данных.
Фреймворки и APIОбзор front-end и back-end фреймворков, API, IDE.
CMS и SaaSОбзор популярных CMS: Wordpress, Magento, Drupal и SaaS платформ для создания полноценных сайтов вроде Wix и Shopify.
Продвинутые концепцииРабота с GIT, Объектно-ориентированное программирование (ООП), Continuous Integration.
Тренды в технологиях 2019Обзор трендов: гибридные приложения, responsive дизайн, full-stack JavaScript и прочие.
Выбор профессииВыбор дальнейшего направления в front-end или back-end и какие знания нужны для каждого из них.

Начиная со второго курса, студенты могут выбирать специализацию по Front-end или Back-end или же изучать оба курса. Все материалы полностью ложатся в учебный план факультета, так как раскрывают много дополнительных аспектов и практических примеров.

Направление «Front-end»

Направление Front-end охватывает четыре курса (дисциплины):

  • Создание адаптивных web интерфейсов с HTML5 и CSS3;
  • Создание динамических web интерфейсов с JavaScript;
  • Создание нагруженных web интерфейсов с React и Redux;
  • Создание мобильных интерфейсов с React Native.

Выбор таких технологий, как HTML, CSS, JavaScript очевиден — это — база и стандарт знаний и умений в front-end. Дополнительно, мы предложили React.js из-за низкого порога вхождения, развитой экосистемы, высокой продуктивности при загрузке контента. В целом, направление Front-end позволяет студентам изучить не только frontend технологии, но и основы кросс-платформенной разработки для мобильных приложений с помощью React Native.

Создание адаптивных web интерфейсов с HTML5 и CSS3

HTML/CSS
Подзаголовок: После окончания курса, студенты получают все необходимые знания и навыки HTML/CSS Coder, включая основы адаптивного веб-дизайна и кросс-браузерной совместимости.
Основы веб-дизайнаТипографика, колористика, работа с изображениями и иконками, основы UX.
Основы HTMLСтруктура HTML-документов, атрибуты в HTML
Добавление медиа-файлов на страницуРабота с изображениями, аудио- и видео-файлами
Основы работы с текстомБазовое форматирование текста в HTML: от заголовков до списков
Семантика и организацияСемантические и несемантические элементы, навигация между страницами
ФормыТипы ввода данных, создание форм с разными типами ввода данных
ТаблицыСоздание таблиц в HTML
CSSCSS-селекторы, каскад, блочная модель, стилизация навигационного меню, перекрывающийся контент и прозрачные фоны
Типографика CSSТипографика CSS и кастомные шрифты
Адаптивный веб-дизайнОсновы адаптивного веб-дизайна, адаптивная сетка, создание адаптивных веб-страниц
Спецэффекты CSS3Тени, скругленные углы, переходы, анимация
Использование JavaScript без написания JavaScriptСлайдшоу, показ и скрытие контента при нажатии, создание галерей
Добавление эффектовОсновы jQuery, адаптивная навигация, анимация
Кросс-браузерная совместимостьБраузерная поддержка, тестирование кроссбраузерности и кроссплатформенности
SassОсновы Sass и SCSS

Программирование на JavaScript

JavaScript
Подзаголовок: Курс посвящен изучению и разработке приложений на JavaScript без использования фреймворков и библиотек
Основы JavaScriptПеременные, типы данных, преобразование типов, операторы, циклы, функции
Операции с DOMDOM-дерево, селекторы, работа с элементами, интерфейсные события
Объектно-ориентированный JavaScriptКонструктор, прототип, прототипное наследование, классы и наследование, свойства, методы
Асинхронный JavaScript и работа с сетьюПонятие асинхронного программирования, XMLHttpRequest, JSON, REST, Promise, Fetch API, async/await
Обработка ошибок
Регулярные выражения
Новые возможности JavaScript (ES6+)
try/catch, пользовательские ошибки
Шаблоны и флаги, символьные классы, группы
Обзор базовых возможностей ES6, стрелочные функции, итераторы, генераторы
Паттерны JavaScriptSingleton, Factory, Observer, Mediator, State паттерны и др.

Создание веб-приложений с ReactJS

React
Подзаголовок: Курс включает исчерпывающую программу по React, Redux, роутингу, анимациям и многому другому.
Понимание основных функций и синтаксисаСтруктура директорий, основные команды, сборка, компоненты, JSX, Props & State, обработка событий, Stateless & Stateful, работа со стилями и др.
Отладка приложений ReactРазбор сообщений об ошибках, использование Dev Tools & Sourcemaps, работа с инструментами разработчика React и др.
Погружение в компоненты и внутренние элементы ReactЖизненный цикл компонентов, классовые и функциональные компоненты, компоненты высшего порядка и др.
Работа с APIЗапросы HTTP в React, cоздание запросов HTTP для получения данных, обработка данных, обновление данных и др.
РоутингРоутинг и SPA, настройка ссылок, настройка пакета роутинга, подготовка проекта для роутинга, обработка параметров запроса и др.
Формы и валидация формСоздание пользовательских компонентов для ввода, обработка ввода, обработка отправки форм и др.
ReduxСостояния приложения, архитектура Redux, получение и изменение данных, side-effects и др.
Добавление Redux в проектУстановка Redux и React Redux, основные настройки Redux и др.
Продвинутый ReduxMiddleware, Devtools, введение в асинхронный код и его обработка и др.
ТестированиеНеобходимые инструменты для тестирования, написание тестов, правильное тестирование компонентов.

Создание мобильных приложений с React Native

React Native
Подзаголовок: Курс по React Native включает работу с Redux, Hooks, принципы архитектуры мобильных приложений, а также позволяет студентам оценить все преимущества разработки кросс-платформенных компонентов при работе с React Native.
Разработка кросс-платформенного мобильного приложенияКак разрабатывать кросс-платформенные мобильные приложения, доступ к собственным возможностям устройств.
Установка и настройкаУстановка React Native, структура приложения, сравнение React и React Native
React NativeUI элементы, навигация, анимация, обработка жестов и др.
Работа с APIЗапросы HTTP в React Native, cоздание запросов HTTP для получения данных, обработка данных, обновление данных и др.
Верстка компонентовСоздание макетов с Flexbox, позиционирование и стилизация компонентов, основы UX для мобильных приложений
Хранение состояние приложенияПодключение Redux, action creators, side effects, введение в Redux Thunk

Направление «Back-end»

В основе направления Back-end так же четыре курса (дисциплины):

  • Управление исходным кодом с помощью Git
  • Управление реляционными базами данных на примере MySQL
  • Введения в ООП и профессиональное программирование с примерами на Ruby
  • Разработка WEB приложений на фреймворке Ruby on Rails

Ruby и Ruby on Rails. Наш выбор не случаен. Ruby — язык программирования, в основе которого лежит подход «developer’s happiness first». Это в первую очередь достигается за счет удобного и понятного синтаксиса, понятного даже новичку. Ruby сходу стимулирует разработчиков применять автотестирование и использовать лучшие подходы и практики программирования. Бонусом идет развитое сообщество и большое количество готовых решений (Ruby gems) для легкого расширения функционала веб-приложений. Популярный Ruby-фреймворк, Ruby on Rails, перенял те же принципы.

Также мы включили в программу по back-end, на наш взгляд, must have дисциплины: управление исходным кодом, теория реляционных баз данных.

Управление исходным кодом с помощью Git

Управление исходным кодом
Подзаголовок: Курс охватывает ключевые понятия системы контроля версий Git, процесс работы Git, управление файлами (перемещение, переименование, удаление) и обновление файлов, управляемых вне Git.
Установка и быстрый старт GitРазбор основных плюсов работы с (VCS) — системами контроля версий. Создание и управление репозиториями. Работа с хостингом репозиториев на примере Github. Конфигурация git-профиля.
Обзор способов начала работы с VCS (первичная инициализация, клонирование и импорт).
Основные Git-командыОбзор основных Git-команд и их применение
Сравнения (Comparisons)Обзор команд для сравнения файлов, веток, коммитов и др.
Ветвление и слияние (Branching and merging)Основы ветвления и слияния в Git, лучшие практик по созданию, именованию и ведению веток и запросов на слияния (Pull Request-ов)
Перемещение (Rebasing)Управление перемещением в Git.
Прятанье (Stashing)Способы прятанья и отображения спрятанных файлов
Работа с метками (Tagging)Примеры меток, легкие метки, обновление меток и использование меток в GitHub

Управление реляционными базами данных на примере MySQL

Реляционные базы данных
Подзаголовок: На курсе студенты изучают теорию реляционных баз данных, SQL, познакомятся с СУБД MySQL.
Реляционные базы данныхТеория реляционных баз данных, введение в нормализацию баз данных, виды связей, процесс проектирование базы данных, обзор типов связей данных: «один к одному», «один ко многим», «многие ко многим»
Начало работыВведение в СУБД, SQL и MySQL, установка MySQL на MacOS, Windows, Linux
Создание баз данных и таблицСоздание, редактирование и удаление баз данных и таблиц, типы данных: CHAR, VARCHAR, DECIMAL, FLOAT, DOUBLE, и т.д.
CRUD-командыВведение в CRUD, SQL запросы для реализации CRUD, вставка данных в таблицы, обновление данных в таблицах, удаление данных из таблиц, заполнение базы данных.
ВыборкаВыборки из таблиц, сортировка, фильтрация данных, выборка из нескольких таблиц, логические операции, подзапросы, union, Concat, Count, математика, обзор функций.

Введения в ООП и профессиональное программирование с примерами на языке Ruby

Ruby
Подзаголовок: Содержательный курс по программированию на Ruby. Курс охватывает как базовые концепции, так и более продвинутые темы (метапрограммирование) и автотестирование с помощью фреймворка RSpec.
Введение и установкаВведение в Ruby, установка на MacOS и Windows
Начало работы с RubyМетоды в Ruby, комментарии, переменные, строковая интерполяция, методы для объектов, возвращаемые значения
Типы данныхЧисла и работа с числами, строки и работа со строками, преобразование чисел в строки, диапазоны, массивы и hash массивы, добавление и изменение массивов, итерация и различные методы чтения массивов.
Методы и условные конструкцииВведение в методы, условные конструкции и операторы.
Блоки, процедуры, лямбдыОбзор блоков, процедур, лямбд в Ruby.
Работа с датой и временемОбъект Time, методы, преобразование объекта Time.
Работа с файламиЧтение из текстового файла с помощью Ruby, запись в текстовый файл с Ruby.
Регулярные выраженияВведение в регулярные выражения в Ruby, методы регулярных выражений.
Классы, модули и миксиныВведение в ООП, классы, основные методы для классов, monkey patching, наследование, создание подклассов, введение в модули и миксины, ключевые слова.
Метапрограммирование в RubyКонцепция метапрограммирования, объекты в Ruby, hook методы, инструментарий метапрограммиста.
Автотестирование в Ruby на RSpecТеория написания автотестов, введение в RSpec, unit-тесты, matchers, mocks и stubs, TDD.

Разработка WEB приложений на фреймворке Ruby on Rails

Разработка WEB приложений на Ruby on Rails
Подзаголовок: Курс готовит профессиональных веб-разработчиков на Ruby on Rails и включает в себя практическую часть по созданию e-commerce платформы с нуля.
Введение в Ruby on RailsВведение в Rails, структура приложения, MVC, Rails-консоль.
CRUD-операции в Ruby on RailsCRUD, Scaffold, Rails Generators.
МоделиActiveRecord, миграции, связи, валидации, callbacks, запросы, создание, удаление, редактирование моделей и др.
РоутингRESTful, ресурсы, namespaces и др.
КонтроллерыЭкшины и методы в контроллерах; Strong parameters, Работа с куками и сессией; Настройка аутентификации и авторизации.
ОтображениеРазбор вариантов ответа сервера — HTML, JSON, XML;
Лэйауты, шаблоны и partials — лучшие практики для применения;
Разбор основных шаблонизаторов;
Работа с флэш-месседжами;
Основные подходы для работы с формами в Rails;
Ознакомление со встроенными фреймворками для компиляции ассетов (изображения, CSS, JS-файлов и др.);
Assets Pipeline и Webpacker.
Автоматизированное тестированиеАвтоматизированное тестирование: интеграционное, функциональное, юнит-тестирование.
Обзор Rails инструментовBundler, Devise, CarrierWave, Kaminari, Haml, Sass, CanCanCan, Nokogiri, SimpleForm, Capistrano, Omniauth, Sidekiq.
Деплоймент / развертывание приложенияНастройка окружения, развертывания Rails-приложения и деплоймент на удаленные сервера.

2. Обучение преподавателей веб-разработке на Ruby on Rails

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

Курс для преподавателей длился 2 месяца и за это время мы:

  • адаптировали программу нашего постоянного курса по Ruby и Ruby on Rails, разработав ускоренный курс, насыщенный практическими примерами;
  • сделали отдельный акцент на методических рекомендациях по обучению согласно нашей программе;
  • предоставили менторов для консультаций, обсуждения методических вопросов, обмена преподавательским опытом.

Результат и — преподаватели, готовые преподавать по новой учебной программе с новыми подходами и примерами. Мы верим, что все получится, ведь у преподавателей есть явное преимущество: они — хорошие методисты, способны перерабатывать большие массивы информации, формировать их в структурированную программу и позже интегрировать эти знания в учебный процесс для различных специальностей и курсов.

Преподаватели ДНУ

3. Мероприятия для вовлечения абитуриентов в IT

В разделе о мотивациях студентов мы говорили о том, что один из способов снизить барьер между абитуриентами и ВУЗами — дать будущим студентам «пробную версию» опыта программирования. Это могут быть воркшопы, хакатоны, мотивационные лекции, активности, где студенты могут пообщаться с единомышленниками, собрать сайт своими руками и пройти полный процесс разработки.

С 2018 года, мы нарабатываем опыт таких мероприятий: поддерживаем студенческие олимпиады в университете; организовываем воркшопы; проводим мотивационные лекции с преподавателями наших Ruby/Rails курсов и лидами Backend-разработки, где спикеры рассказывают, как прийти в профессию с нуля и построить карьеру.

Один из ярких примеров таких мероприятий — двухдневный воркшоп Rails Girls, который мы проводили в сентябре. Среди целевой аудитории ивента мы выделили сегмент студентов из специальностей, связанных с математическими и компьютерными науками. Эта группа участников интересуется технологиями, видит неисчерпаемый потенциал IT-индустрии, стремится получить высокооплачиваемую профессию, которая также приносит удовлетворение от работы.

Rails Girls 2019 Dnipro

На Rails Girls мы подогрели интерес участников, показав процесс разработки изнутри: от написания спецификации до дизайна приложения и его сборки. Кроме практической части, мы также включили короткие выступления спикеров. Интересно, что в последний раз Rails Girls проводился в Днепре в 2012 году и одна из тогдашних участниц в этом году выступала уже в качестве спикера. Мы верим, что такие истории вдохновляют студентов идти к мечте и не сдаваться.

4. Поддержка кафедры и создание вдохновляющего пространства в университете

В июне мы стартовали проект по созданию учебного пространства прямо в стенах университета. Сейчас мы обновляем аудиторию в университете: хотим сделать это пространство современным, ярким и вдохновляющим. В планах — проводить обучающие мероприятия и хакатоны, приглашать спикеров, словом, максимально вовлечь студентов в программирование.

5. Поддержка учащихся сотрудников

Политика нашей компании не препятствует, а наоборот, поддерживает стремления сотрудников, которые еще учатся в ВУЗе. Например, во время учебы, каждый может взять part-time график и, если требуется, отпуск во время сдачи сессии. Таким образом, мы создаем комфортные условия, в которых сотрудник чувствует себя защищенным, имеет возможность развиваться всесторонне и не стоять перед выбором учебы или карьеры.

6. Внедрение обучающей программы в учебный план

«Мы разработали трехгодичные курсы, чтобы предоставить студентам полную специализацию. Мы хотим научить студентов учиться, осваивать фундаментальные теоретические знания и получить практико-ориентированные задачи, которые помогут им в работе на реальном проекте» — А. А. Кузенков

Курс, разработанный совместно с преподавателями кафедры прикладной математики, длится три года. Курс стартовал 1 сентября 2019 года, студенты-первокурсники могут начать обучение с нуля, в то время, как второй и третий курс могут взять курсы на само обработку, чтобы «догнать» программу.

Дальше в наших планах — создать условия для постоянной обратной связи от преподавателей и студентов, чтобы скорректировать программу для лучших результатов. Через год мы собираемся подвести итоги и рассказать о всех моментах и подводных камнях, которые нас еще ожидают, ведь мы в начале пути. Как говорится, to be continued :)

Выводы:

Наша общая цель — подготовка выпускников с высоким уровнем знаний и возможностью быстрой адаптации в реальных рабочих условиях. Чтобы достичь нужного результата, мы определили четкие критерии качества подготовки специалистов, собрав требования работодателей к специалистам и адаптировав программу под них.

Математика — это фундамент высшего IT-образования. Другую его часть (языки программирования, технологии и среды разработки) университеты вольны менять под требования, которые выставляет рынок труда и современные тенденции в индустрии.

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

Также предлагаем IT-компаниям поделиться опытом подобных коллабораций, будем рады пообщаться в комментариях и ответить на вопросы!

Оставляю свои контакты для обратной связи и предложений о сотрудничестве:

[email protected]
RubyGarage UA

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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

Я бы начинала еще раньше, до универа. Несколько лет наблюдаю за лагерем iJAMM, нацеленном на подростков, увлекающихся программированием, и думаю, что это было бы полезно и в школе. Уже давно нужно переформатировать школьную программу по информатике, чтобы не в стиле Профессора Фортрана было (хотя, книжку я все равно люблю)))))))

На английском уже ресурсов куча (тот же codecombat.com, но он ещё не полностью переведен на русский, уже не говоря об украинском языке)...

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

Руби на бэкэнде? Вы бы туда ещё кложу какую запихнули. :)

В современном «не-энтерпрайз» бэкэнде — рулит пхп. И на 10 вакансий по пхп, может быть, найдётся 1 руби. Скорее, даже меньше...

В общем, не портьте студентов хипстерщиной, о которой все забудут через 5 лет.

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

Можно использовать какой-то легковесный и популярный ЯП, в процессе изучения бэкэнда. Но руби??

Запили программу для студентов, потом запусти в каком-то вузе — и мы ее обсудим)
Студентов хоть assembler’у нужно учить. Главное не чему, а зачем?
Студентам необходимо расшириться кругозор, для принятия решения в каком направлении им развиваться.
К сожалению текущий подход к обучению этого не делает.
И такие программы позволяют приоткрыть занавес индустрии.

Приятно, видеть преподавателей примата, которые тоже в этом заинтересованы.
Некоторых из них встречал на других IT мероприятиях — круто, так держать!

Мы были рады провести курс для преподавателей по Ruby/RoR. Особенно это был классный опыт и времяпровождение для наших лекторов. Очень порадовало и было приятно, что сами преподаватели были замотивированы и постоянно приходили на занятия. Андрей, согласна с вами, что приятно видеть преподавателей на IT мероприятиях. Отлично, когда сами компании заинтересованы и не забывают приглашать на свои ивенты, лекции, конференции представителей ВУЗов, а также студентов.

Тарас, дело в том, что мы хотели подготовить преподавателей к программе, по которой обучаются студенты))) По данной программе преподаватели уже преподают в ВУЗе, как по бэкенд, так и по фронтэнд-направлениям))

Математика — это фундамент высшего IT-образования.

Неа. Логика — это фундамент. А математика в IT применима в очень узких кругах, например — в геймдеве.

Логика — это фундамент

Логіка це і є розділ математики.

А математика в IT применима в очень узких кругах, например — в геймдеве.

Математика це не лише про обчислення. В гейдеві використовують лінійну алгебру, чисельні методи, матан і ще купа різного.

Поза гейдеву математика теж потрібна, як мінімум, щоб порахувати обчислювану складність алгоритму (популярна штука на всяких гуглоінтерв’ю) треба мати базові знання матаналізу.

Логіка це і є розділ математики.

А не философии?

Это те самые рубисты из днепра?

Дмитрий, все верно, мы находится в Днепре))) Приезжайте в гости. Мы часто проводим ивенты и мероприятия для Ruby-разработчиков и не только))))

Коментар порушує правила спільноти і видалений модераторами.

Підписатись на коментарі