Русский
Русский
English
Статистика
Реклама

Education

Тотальный JavaScript изучаем JS с акцентом на практической составляющей

22.02.2021 16:14:10 | Автор: admin


Доброго времени суток, друзья!

Когда речь заходит об изучении JavaScript, будь то первое знакомство с языком или углубление имеющихся знаний, найти в интернетах теоретические материалы не составляет особого труда. Мой топ-5:


Однако, когда дело касается практических аспектов JavaScript, информацию приходится собирать буквально по крупицам. Собственно, этим я и занимался на протяжении последних 4-5 месяцев.

Предлагаю вашему вниманию Тотальный JavaScript.

Вот что вы найдете в этом репозитории:

  • Огромное количество сниппетов (утилит, вспомогательных функций), разделенных по типам данных не могу назвать точного количества (порядка 4000 строк кода без комментариев и пробелов). Следует отметить, что не все функции являются настоящими сниппетами с точки зрения возможности их использования (как есть) в реальных приложениях, некоторые всего лишь эксперименты, демонстирующие те или иные (безграничные?) возможности языка. Коллекция все время пополняется
  • 230 практических вопросов приводится пример кода, необходимо выполнить его в уме и решить, что будет выведено в консоль. Конечно, на практике мы редко занимается чем-то подобным, ведь гораздо легче и, главное, быстрее законсолить кусок подозрительного кода. Однако, на мой взгляд, умение решать подобные задачи как нельзя лучше демонстрирует понимание основных принципов и характерных особенностей работы JavaScript. В качестве недостатка этого раздела отмечу почти полное отсутствие вопросов по классам и this. Постараюсь в ближайшем будущем его устранить
  • 68 задач разного уровня сложности подборка задач из учебника Ильи Кантора (большинство), немного адаптированных под нужды реальных приложений. Структура раздела, в основном, следует структуре учебника с небольшими лирическими отступлениями
  • Паттерны проектирования подробное описание и примеры всех паттернов, которые называет Банда Четырех в своей книге Паттерны объектно-ориентированного программирования, на JavaScript (также в разделе имеются примеры на TypeScript смотрите исходный код). При подготовке данного раздела многое позаимствовано у Refactoring Guru, за что ему (или им) огромное спасибо
  • Что за черт, JavaScript? список тонких моментов работы JavaScript. Этот раздел не слишком актуален, учитывая возможности современного JS, однако интересен тем, что позволяет узнать, каким был язык раньше, до того, как завоевал мир веб-разработки. Де факто, он остается прежним, но следование простым правилам (например, использование const или let вместо var или "===" вместо "==") позволяет решить большую часть проблем, с которыми сталкивались разработчики в прошлом

Уверен, что каждый найдет для себя что-нибудь интересное.

Также в репозитории имеется ссылка на приложение с вопросами (список и интерективная викторина) и задачами. Оно вполне работоспособное (и даже прогрессивное), но, признаюсь, нуждается в существенной переработке. Займусь этим, когда появится свободное время.

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

Благодарю за внимание. Всех, кому дым отечества и сладок, и приятен, с наступающим праздником.
Подробнее..

Android Academy. Вы все пропустили! Но это не точно

02.02.2021 02:11:38 | Автор: admin

Android Academy это глобальное сообщество профессиональных разработчиков - энтузиастов, основанное Йонатаном Левиным. Оно зародилось в Израиле, в Тель-Авиве, и теперь активно развивается в Петербурге, Минске, Москве и - барабанная дробь - в онлайне! Мы постоянно проводим курсы, мастер-классы, помогаем друг другу решать задачи, рекомендуем интересные проекты.

В октябре мы стартовали курс Android Academy Fundamentals. Базовые лекции уже прошли, но на десерт мы оставили кое-что интересное: три вебинара, которые могут быть полезными как новичкам, так и прожжёным ветеранам, если хочется сдуть пыль с некоторых тем. А главное - к этим вебинарам можно подключиться, даже если вы пропустили все остальное.

Что, когда?

08 февраля

#11 Notifications and Broadcasts (Missing parts)

Расскажем про нотификации: отображение, управление, действия из нотификаций, каналы. А также про deep links, permissions и broadcast receivers.

15 февраля

#12 Advanced UI

Анимации всех мастей:

Property Animator

View Animator

Animator Set

Spring Physics Animation

RecyclerView Item Animation

MotionLayout Basics

Ripple Effects

Activity/Fragment Transition

22 февраля

#13 Intro to Reactive Development

Реактивный подход, базовые операторы RxJava, введение во Flow: map, flatMap, switchMap;работа с потоками: observeOn, subscribeOn, обработка ошибок

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

Где?

Онлайн. Каждый вебинар будет формально состоять из трёх частей:

  1. Лекция, где мы рассказываем теорию и примеры из жизни, блоками по 20-30 минут. Она проходит в режиме онлайн стриме YouTube.

  2. Сразу после блока теории идёт небольшое практическое задание.
    Нам важно сохранить дух совместной работы и чуткого, профессионального менторства даже в онлайне, поэтому на время практики студенты расходятся по небольшим комнатам в Google Meet (5-10 человек). В каждой комнате с вами будет работать ментор и отвечать на ваши вопросы по лекции или заданию.

  3. При желании вы можете выполнить домашнее задание.

Сколько стоит?

Без-воз-мед-но, то есть даром! :) Да-да, в мире есть немало энтузиастов, и наш пример это доказывает! 9 организаторов и 50 менторов помогают сотням желающих изучить андроид, и нас это драйвит!

Регистрация

Пишите боту Oh My Event! (@ohMyEventBot) в Telegram о том, что вы хотите к нам присоединиться - команда /academy. Вам будут приходить напоминания о предстоящих вебинарах, списки для чтения и ссылки для подключения.

Хакатон

А так же, бонус! По окончании курса, по традиции, мы проводим хакатон. Команды студентов смогут побороться за звание создателей самых креативных, полезных и интересных приложений. Темы хакатона пока не финализированы, но можно уже подыскивать себе команду! В случае, если вы никак не придумаете, что бы такого сделать мы подкинем несколько готовых идей на выбор :)

Что о нас говорят?

На курс зарегистрировалось 1500 слушателей, сотни самых стойких остались с нами и продолжили обучение. Вот, что они пишут:

Было интересно послушать о фрагментах, жизненном цикле Activity, нравится, что трансляция на Ютубе, можно пересмотреть и перемотать, если что-то не понял.

Объяснение хорошее, особенно на примерах.

Понравился разбор внутренних камней сервисов и обзор версий андроид. Вообще анализ практического применения.

Серьезно, воркшопы просто золото.

Как всегда крутая лекция! Очень нравятся ваши презентации, и что всегда можно к ним вернуться. И немного оффтоп: за несколько дней работы с ментором узнала очень много, офигенно))) Спасибо большое Академии!.

и много других слов, которые греют нам душу и показывают, что мы на верном пути!

А это лица героев, которым адресованы эти тёплые отзывы:

Присоединяйтесь и вы! Будем рады видеть вас по обе стороны баррикад - и в роли студентов, и в роли менторов или организаторов :)

И спасибо нашим друзьям и спонсорамза поддержку: FitBit и Epam

Подробнее..

Использование GitHub в обучении. Примеры. Часть III

09.01.2021 20:18:44 | Автор: admin

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


Предыдущий пример

Вариант командной работы с несколькими репозиториями

Расскажу про "самый приближённый" к реалиям вариант, когда в рамках реализации одной программы возникают подпроекты и над ними трудятся разные команды в разных репозиториях.

Примерный порядок действия

Часть действий повторяются из предыдущего примера

  • Создаёте аккаунт организации

  • Добавляете в него студентов.

  • Создаёте репозиторий. В README.md добавляете текст задания. Также наполняете репозиторий предварительно необходимым минимумом (нужными файлами для выполнения задания). Создаёте необходимые ветви. Обычно создаю ветвь dev или develop

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

  • По мере обсуждения решения выявляются подпроекты. Создаются команды под каждый подпроект. Для каждого подпроекта создаётся свой репозиторий с предварительным наполнением.

  • Команды выполняют задания, коммитят, пушат. Задания можно выдавать как черезissues, так и какой-нибудь сервис с Kanban или Scrum

  • Создают запрос на слияние

  • Проверяете. Оставляете комментарии либо ко всему заданию целиком, либо к его отдельным частям.

  • Создаются релизы. Готовые DLL или ещё что берётся из релизов и подключается в основной проект.

  • В каждой команде ведётся техдокументация.

Плюсы и минусы

Плюсы:

  • Более приближенный к реальности вариант моделирования

  • Можно назначать студентов в качестве ревьюеров кода. Даже преподавательского.Я люблю делать в коде специально ошибки как явные, так и неявные, чтобы студенты их находили и исправляли.

  • Каждая команда работает над своим подпроектом

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

Минусы:

  • Нужно создавать отдельный аккаунт для организации

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

  • Нужно объяснять что такое релиз, как происходит версионирование.

  • Нужно объяснять как пишется и для чего нужна техдокументация.

Какие можно внести дополнения:

  • связать репозиторий с Kanban- или Scrum-сервисом, чтобы выдача заданий фиксировалась в карточках на досках

  • создавать не отдельные репозитории для каждого подпроекта, а использовать gitsubmodules

Подробнее..

Итоговые проекты курса Deep Learning in Natural Language Processing (by DeepPavlov Lab)

07.08.2020 14:13:35 | Автор: admin
Недавно завершился Deep Learning in Natural Language Processing, открытый образовательный курс по обработке естественного языка. По традиции кураторы курса сотрудники проекта DeepPavlov, открытой библиотеки для разговорного искусственного интеллекта, которую разрабатывают в лаборатории нейронных систем и глубокого обучения МФТИ. Курс проводился при информационной поддержке сообщества Open Data Science. Если нужно больше деталей по формату курса, то вам сюда. Один из ключевых элементов DL in NLP это возможность почувствовать себя исследователем и реализовать собственный проект.

Периодически мы рассказываем на Medium о проектах, которые участники создают в рамках наших образовательных программ, например о том, как построить разговорного оракула. Сегодня мы готовы поделиться итогами весеннего семестрового курса 2020 года.



Немного данных и аналитики


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

Вернемся к участникам. Неужели все окончили курс? Ответ, конечно, очевиден. С каждым новым заданием желающих становилось все меньше и меньше. Как итог то ли из-за карантина, то ли по другим причинам, но к середине курса осталась только половина. Ну что ж, а дальше пришлось определяться с проектами. В качестве итоговых участниками было заявлено семьдесят работ. А самый популярный проект Tweet sentiment extraction девятнадцать команд пытались выполнить задание на Kaggle.

Подробнее про представленные проекты


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

Kaggle Jigsaw: Multilingual Toxic Comment Classification


Роман Щекин (QtRoS), Денис Грушенцев(evilden), Максим Талиманчук (mtalimanchuk)

Это соревнование продолжение популярного конкурса от Jigsaw по определению токсичного текста, однако в данном случае тренировка происходит на английских данных, а тестирование на мультиязыковых (в том числе на русском). Оценка происходит по метрике ROC AUC. Команда взяла бронзу (132 место из 1621) с оценкой ROC AUC ~ 0,9463. Финальная модель представляла собой ансамбль из классификаторов:

  • XLMRoberta large
  • Naive Bayes
  • Bert base
  • Bert base multilingual
  • USE multilingual

XLMRoberta large с линейным слоем 1024*1 была обучена на базовом датасете с оптимизатором AdamW. Модель multilingual использовалась в базовом варианте (обучена на 16 языках) без дообучения. Использование Bert base было возможно за счет автоматического перевода тестового датасета на английский язык. Обучающая выборка была расширена за счет дополнительных датасетов.

Презентация проекта доступна по ссылке.
GitHub проекта доступен по этой ссылке.

On Bert Distillation


Никита Балаганский

Как известно, модели на основе архитектуры BERT, добиваясь впечатляющих оценок качества, все же сильно отстают по производительности. Это связано с тем, что BERT модель с больших количеством весов. Есть несколько способов уменьшения модели, один из них дистилляция. Идея дистилляции создать модель студента меньшего размера, которая бы повторяла поведение большой модели учителя. Тренировка русской модели студента проходила на четырех картах 1080ti в течение 100 часов, на датасете новостей. В итоге модель студента получилась в 1,7 раз меньше, чем оригинальна модель. Сравнение качества моделей студента и учителя было произведено на датасете для определения эмоциональной окраски текста Mokoron. Как результат, модель студента показала сопоставимое качество с моделью учителя. Скрипт тренировки был написан с применением пакета catalyst. Подробнее о проекте можно почитать на Medium.

Презентация проекта доступна по ссылке.
GitHub проекта доступен по этой ссылке.


Картинка: rasa.com

Open Data Science Question Answering


Илья Сироткин, Юрий Зеленский, Екатерина Карпова

Все началось с поста в ODS от Екатерины Карповой. Идея была достаточно амбициозная создать автоответчик на вопросы в ODS slack community на основе собранного датасета вопросов и ответов. Однако предварительный анализ выявил, что большинство из вопросов достаточно уникальны, и создание размеченной тестовой выборки для оценки качества задача довольно трудоемкая. Поэтому было принято решение для начала создать классификатор для определения принадлежности задаваемого вопроса к slack-каналу ODS. Он бы помог новичкам ODS задавать вопросы в соответствующей теме каналов. В качестве оценки качества была выбрана метрика pwROC-AUC.

В рамках проекта был произведен сравнительный анализ популярных моделей классификации текстов. Лучшая из них модель на основе RuBERT от DeepPavlov показала качество 0,995 pwROC-AUC. Такие высокие цифры качества модели свидетельствуют о высокой степени разделения (и разделимости) исходных данных. Единственный канал, вызывающий затруднения у всех опробованных моделей, _call_4_colaboration. Но почему именно он, выяснить пока не удалось.

Расправившись с этим заданием, команда не оставляет надежд вернуться к изначальной задаче ответов на вопросы пользователей ODS.

Презентация проекта доступна по ссылке.
GitHub проекта доступен по этой ссылке.

Russian Aspect-Based Sentiment Analysis


Дмитрий Бунин

В рамках данного проекта решалась задача определения тональности относительно заданного объекта в тексте (задача С из конкурса Dialogue Evaluation 2015). В качестве датасетов использовались как русские, так и английские данные. В своей основе сравнивались современные модели на основе архитектур ELMо (из пакета RusVectores) и BERT (из пакета DeepPavlov). Модель на основе ELMо + CNN на русском языке показала сопоставимое качество с лучшей моделью из соревнования, несмотря на небольшую тренировочную выборку и сильный дисбаланс данных.

Презентация проекта доступна по ссылке.
GitHub проекта доступен по этой ссылке.



Kaggle: Tweet Sentiment Extraction


Кирилл Герасимов

По условию соревнования, задача состояла в выделении ключевого слова или фразы из текста твита, которые бы определяли настроение этого твита. В качестве метрики качества использовалось значение word-level Jaccard Score. В этом соревновании все участники столкнулись с шумными данных и неоднозначной разметкой. В качестве базовой модели командой использовалась модель из публичного ноутбука на основе RoBERTa-base. Эта модель использует подход reading comprehension, при котором выделяются начало и конец ключевой фразы (с обязательным условием, чтобы конец был после начала). Согласно принятой традиции, ансамбль разнообразных моделей показывал скоры лучше, чем отдельные модели. Как результат, бронза (135 место из 2100). По опыту победителя соревнования, двухуровневое ансаблирование дает еще лучшие скоры.

Презентация проекта доступна по ссылке.
GitHub проекта доступен по этой ссылке.

Автоматическое решение ЕГЭ


Михаил Тетерин и Леонид Морозов

Цель этого проекта улучшение метрик качества на трех задачах cоревнования AI Journey 2019 (автоматическое решение ЕГЭ), а именно:

  • поиск главной информации в тексте;
  • определение значения слова в заданном контексте;
  • расстановка знаков препинания в предложениях.

По всем трем задачам удалось превзойти лучшее решение на соревновании. Во многом улучшения обусловлены использованием дополнительных данных для обучения. В решениях лучшее качество показали модели на основе RuBERT от DeepPavlov.

Презентация проекта доступна по ссылке.
GitHub проекта доступен по этой ссылке.



В этой статье мы постарались рассказать про часть проектов, которые были представлены на семинаре, но их, конечно же, было больше.

Спасибо всем, кто принимал активное участие в курсе и не сдался. Ну а тем, кто только учится и ищет интересные задачи в области NLP, мы рекомендуем рассмотреть DeepPavlov Contribute project. Будущее Conversational AI в ваших руках!
Подробнее..

.Использование GitHub в обучении студентов

19.12.2020 18:18:04 | Автор: admin

В своей преподавательской практике использую GitHub...

Но для начала давайте представлюсь. Зовут меня Старинин Андрей. И я преподаю программирование, хотя по первому образованию я биолог. А ещё один из основателей и ведущих подкаста "IT за Edu".

Мой стек дисциплин:

  • C++

    • основы программирования

    • основы ООП

    • GUI-приложения (Qt)

  • C#

    • ООП

    • сетевое программирование

    • GUI-приложения (WPF)

    • взаимодействие приложений и БД (ADO.Net)

  • Базы данных

    • проектирование БД

    • SQLite

    • MySQL

  • Управление проектами

Кажется, что всего много. Но успеваем не сильно погрузиться в отдельные технологии. После какого-то времени (точно не помню уже какого) понял, что студентов можно и даже нужно "приучать" к системам управления версиями почти сразу с начала обучения. Для обучения выбрал GitHub. Хотя Bitbucket тоже нравится. Да, я не учу студентов сразу по харду, они не сразу изучают git в CLI. Я их знакомлю сначала с web-интерфейсом GitHub'а. Потом рассказываю про GUI-клиенты. Из них мне нравится GitKraken. Но не заставляю их пользоваться тем, что нравится мне - они вольны выбирать сами чем пользоваться.

Постепенно - это примерно так:

  1. Просто показываю как выкладывать код

  2. Прошу их выкладывать свои решения и присылать мне ссылки на репозитории

  3. Выкладываю текст заданий и прошу ответы присылать через pull-request'ы

  4. Пробуем поработать в маленьких командах над одним репозиторием без веток

  5. Пробуем поработать небольшой командой над одним репозиторием с отдельными ветками

  6. Пробуем работать над большим проектом большой командой с несколькими репозиториями и ветками.

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

Не все студенты сразу всё понимают и принимают. Но тем интереснее и приятнее когда они "доходят". Ещё люблю подход: учимся на своих ошибках. Во время обучения есть возможность ошибаться и понять к чему это приводит.

Что мне нравится в GitHub при обучении?

  • Поддержка аккаунтов для организаций, а в аккаунтах возможность создания команд с гибкими настройками доступов

  • Поддержка Markdown-разметки. Можно более "красиво" оформлять задания.

  • Система форков. Может любой человек сделать форк, а потом предложить запрос на слияние. Не всегда нужно всех студентов добавлять в команду.

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

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

  • Система issues. Можно давать другим командам студентов задание на проверку кода и выявления багов, с занесением всего в issues.

Для чего я приучаю студентов к GitHub'у?

  • Создание своего портфолио уже с самого начала обучения, а не только под конец.

  • Понимание принципов написания кода. Когда начинают чужой код проверять - многое понимают

  • Понимание "соглашения об именовании". Пока не наступят на грабли разного именования в одной команде - не понимают. Ну или не все понимают

  • Понимание как работать в команде. И как командам между собой взаимодействовать.

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

Подробнее..

Из песочницы Магистратура в области Computer Science в Эстонии личный опыт

27.07.2020 02:23:20 | Автор: admin
Переезжать в другую страну очень волнительно. Особенно, если ты студент, и денег у тебя впритык. Страшно ошибиться с выбором университета, страшно, что в итоге учеба не оправдает твоих ожиданий, или ты не справишься, и придется вернуться ни с чем.

Два года назад я переехала из Санкт-Петербурга в город Тарту, в Эстонию, чтобы учиться в магистратуре по специальности Computer Science. Перед переездом я провела много времени в поисках статей, где бы такие же студенты, как я, описывали свой личный опыт учебы в Эстонии в качестве иностранного студента, но мои поиски были практически безрезультатны. Прошло 2 года, я закончила магистратуру, и теперь хочу поделиться своим опытом поступления и учебы в Тартуском университете, и, надеюсь, помочь тем, кому сейчас не хватает такой информации, как мне когда-то.



1. Обо мне


В 2017 году я закончила бакалавриат СПбГУ по направлению Прикладная математика, физика и процессы управления. Занималась гидродинамикой, но к концу бакалавриата пришло осознание, что хочется попробовать себя в IT сфере. Я решила, что буду поступать в магистратуру на специальность, связанную с программированием. Это осознание мне пришло довольно поздно, и я не очень основательно подошла к выбору университета и программы. Из Питера мне переезжать на тот момент не хотелось, поэтому я поступила в магистратуру в ИТМО на специальность Программное обеспечение в инфокоммуникациях. Но уже летом перед магистратурой я начала понимать, что это не совсем то, что мне нужно. Я походила на пары до октября и решила, что заберу документы и возьму gap year. С этого начался мой путь к магистратуре за границей.


В конце бакалавриата я начала немного программировать на Python и заинтересовалась машинным обучением. Потом посмотрела пару вводных курсов по ML на Coursera и пришла к тому, что поступать буду на Data Science или Computer Science программу, чтобы в дальнейшем построить карьеру в Data Science. Так что к тому моменту, как я ушла из ИТМО, с направлением я определилась. Оставалось выбрать университет, сдать английский и подать документы.

2. Поступление


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

2.1 Подготовка


Чтобы поступить на магистерскую программу на английском языке, обычно нужно сдать IELTS или TOEFL стандартизированные тесты, чтобы оценить уровень английского. Я решила сдавать IELTS. Большинство европейских университетов требуют общую оценку по IELTS 6.5, но некоторые берут и с 6.0, и даже с 5.5 (обычно на технические специальности требуется более низкий балл). Если обобщить, чтобы подать в Европу на англоязычную программу магистратуры, нужно иметь подтвержденный уровень английского B2.

Английским я никогда дополнительно не занималась, да и вообще, это был один из самых нелюбимых предметов. Я понимала, что он важен, но заставить себя заниматься не могла. Это тоже повлияло на мое решение поступать за границу хотелось прокачаться в английском. Так что, когда в октябре я задумалась о поступлении, я поняла, что по английскому я не дотягиваю, и у меня уровень примерно B1. С середины ноября я начала ходить на курсы по подготовке к IELTS. Курсы длились месяц, и они очень помогли сэкономить время и не искать самостоятельно информацию о том, как готовиться. Нас направляли преподаватели, рассказывали про разные техники, которые помогают получить больше баллов. Весь месяц я решала тесты и учила много новых слов на Memrise. В итоге, когда в декабре я пришла на экзамен, я очень рассчитывала на балл 6.5. Но в итоге я получила 6.0.

Так как мой балл по английскому был достаточно низкий, это довольно сильно ограничило выбор университета. Другими критериями при выборе университета являлись:

  • Программа обучения (curriculum)
  • Рейтинг университета (QS ranking)
  • Возможность получить стипендию, покрывающую стоимость обучения (tuition waiver)
  • Возможность получить стипендию, покрывающую затраты на проживание
  • Наличие хорошего общежития

В итоге, я выбрала институт компьютерных наук Тартуского университета. Так получилось, что я подавала документы только туда университет полностью удовлетворял моим требованиям, и я не стала рассматривать другие варианты. К тому же, подать на магистерскую программу обычно стоит 50-70 евро (application fee), для меня на тот момент это были существенные затраты, если бы я подавала в несколько университетов.

2.2 Подача заявления


Базовый набор требований, чтобы подать заявку в магистратуру в Европе:

  1. Диплом о высшем образовании с приложением, переведенным на английский. Вместо него можно предоставить выписку с оценками, если вы бакалавриат еще не закончен на момент подачи заявки
  2. Языковой сертификат (IELTS/TOEFL)
  3. Мотивационное письмо
  4. Резюме (CV)

Если приложение диплома изначально продублировано на английском (как, например, мой диплом СПбГУ), то переводить ничего не нужно.

На программу MSc Computer Science в Тарту можно было подавать с января по март. Результаты должны были озвучить до 15 мая.

В Эстонии есть система, через которую можно подать заявление в любой эстонский университет, что очень удобно. Называется она Dream Apply. Еще очень круто, что при подаче заявки не нужно отдельно подавать заявления на стипендии, это делается автоматически. То есть, весь процесс подачи состоит в том, чтобы в системе выбрать программы, на которые хочешь подать заявки, и загрузить перечисленные выше документы в электронном виде. После этого надо оплатить application fee. Это можно сделать прямо в системе онлайн или сделать банковский перевод. С оплатой русской картой могут быть проблемы, по крайней мере, мне оплатить онлайн не удалось, и пришлось делать банковский перевод. Поэтому, очень советую не откладывать подачу заявления на последний день, так как банковский перевод может занять несколько дней. Это было единственное препятствие, с которым я столкнулась при подаче заявления. Все оказалось совсем не сложно!

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

Результаты я получила в начале мая, немного раньше дедлайна. Университет приглашал меня на обучение и был готов покрыть tuition fee. Стипендию на проживание (Dora Plus) я не получила. Скрин части письма, которое я получила:



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

Я отправила документы, и через какое-то время мне пришло письмо, что университет все же готов предоставить мне стипендию Dora Plus! Видимо, кто-то отказался, и список сдвинулся.

3. Переезд


Процесс переезда тоже прошел довольно гладко. Первым делом я начала собирать документы для подачи на вид на жительство temporary residence permit (TRP) и узнавать, как получить место в общежитии.

3.1 Подача на ВНЖ


На сайте университета можно найти очень хорошие и четкие инструкции о том, какой тип визы или документов вам нужен, чтобы учиться в качестве иностранного студента. Мне нужен был TRP с целью учебы. Я записалась в консульство Эстонии в Санкт-Петербурге, записывают обычно на две недели вперед. Подала документы, но меня предупредили, что сделать TRP занимает до трех месяцев, и можно не успеть получить его до сентября. У меня так и произошло, так как подавала на него я в июне, а получила в начале сентября уже в Тарту. Чтобы обойти этот момент и легально въехать в Эстонию, я сделала визу типа D для учебы. Но я знаю случаи, когда люди въезжали по обычной шенгенской визе и получали TRP тоже уже в Эстонии, и все было нормально. Я почему-то испугалась так делать и решила перестраховаться, так как шенгенская виза не может использоваться для поездок с целью обучения.


Кстати, TRP выглядит как id-карта, и работает она так же, как id-карта постоянного жителя Эстонии. Что было для меня удивительнее всего ее можно использовать, чтобы подписывать документы, не выходя из дома. Для этого нужен специальный ридер для id-карты, который подключается к компьютеру. Иногда этот ридер встроен в ноутбук. Еще ее используют как проездной, как билет в библиотеку и тд. За счет этого, в Эстонии нет проблем с бюрократией.

3.2 Заселение в общежитие и первые дни в Тарту


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

Для иностранных студентов в Тартуском университете есть три доступных общежития на Narva mnt. 25, Narva mnt. 27 и на Raatuse 22. Я рекомендую подавать в первые два там условия получше. Но если любите тусовки и пошуметь, тогда вам прямиком в Raatuse. В Раатусе селят студентов, которые приехали по обмену на семестр. Обычно они хотят весело провести это время, и там бывает довольно шумно. В Раатусе квартиры состоят из трех комнат, общей кухни, душа и туалета. В комнате обычно живет по два человека. То есть, на одну кухню, душ и туалет будет шесть человек. В Нарве квартиры состоят из двух комнат, и на кухню, душ и туалет приходится по четыре человека. К тому же, часто люди снимают по два места в комнате. Я весь первый год обучения платила за два места и жила в комнате одна, моя соседка по квартире тоже. Мы занимали всю квартиру вдвоем, что было очень комфортно. На втором году обучения я какое-то время жила в Раатусе, так что могу сравнивать на своем опыте. Если вы любите чистоту и тишину, я рекомендую выбирать Нарву.

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

Так выглядела моя комната в день заселения:







Университет пригласил поступивших приехать за неделю до начала учебы, чтобы провести orientation week. Нам проводили экскурсии по городу, по зданиям университета, по библиотеке, по общежитиям и выдали подарки шопперы (welcome bags), в которых были сим карты с некоторым количеством денег на них, повер банки, карты города и еще что-то по мелочи. Это очень круто, особенно порадовало и удивило, что выдали предоплаченные сим карты.


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

Уже обустроенная комната:



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

За место в общежитии в месяц обычно выходит 95-110 евро с коммунальными платежами. Соответственно, если вы хотите жить в комнате без соседа, будет выходить около 200 евро.

Контракт на общежитие обычно действует с сентября до конца июня, а потом его можно продлить. Кто-то на лето выселяется, а потом осенью заезжает обратно, чтобы не платить за летние месяцы. Я выселилась на лето и третий семестр, так как была на стажировке сначала в Таллине, потом в Австрии. Заселилась обратно я зимой в начале четвертого семестра, и мест в Нарве не было, поэтому пришлось жить в Раатусе.

4. Жизнь в Тарту


Тарту небольшой город с населением около 100 000 человек. Если вы из города-миллионника, он покажется очень маленьким. За 15-20 минут можно дойти из центра до границы города. Но в этом есть свои плюсы не надо пользоваться транспортом, почти все в пешей доступности. В городе есть несколько торговых центров, кинотеатры, рестораны, музеи, даже ботанический сад. Всегда можно найти мероприятия и активности по душе. Город приятный и выглядит по-европейски. Общаться в магазинах и ресторанах нужно на английском (или на эстонском, если знаете), в отличие от Таллина, где больше 50% населения русский понимает.





Из Тарту можно довольно бюджетно путешествовать автобусами Lux Express и Ecolines. Каждый день есть несколько рейсов в Петербург и Ригу. Также, регулярно ходят автобусы и электрички в Таллин, и вообще по всей Эстонии. Дорога в Питер занимает около семи-восьми часов, в Ригу около четырех. До Таллина можно добраться за два с половиной. Еще автобус до Таллина заезжает в Таллинский аэропорт, откуда можно найти дешевые перелеты во многие европейские страны. Еще два популярных варианта для путешествий съездить в Хельсинки или Стокгольм из Таллина на пароме.







Жить в Эстонии довольно дешево, цены в магазинах в среднем чуть выше российских мне при моем ритме жизни было комфортно жить на 500 евро, при этом 190-220 евро уходило на жилье. Но я в основном готовила дома, иногда ходила на ланчи в университетские столовые, где по будням можно найти ланчи за 3-4 евро. Иногда выбиралась в кофейню выпить кофе, пару-тройку раз за семестр ездила в Питер, Таллин или Ригу. Если чаще ходить по ресторанам и кафе, уходить денег, естественно, будет больше. Вообще, вполне реально прожить в месяц на 350-400 евро, если платить за одно место в общежитии и питаться дома. Эти деньги как раз покрывает стипендия Dora Plus, то есть реально можно жить на стипендию и не беспокоиться по поводу работы.

Так что, Тарту довольно приятное место, чтобы провести два года магистратуры.



5. Впечатления от учебы в Тартуском университете


Итак, про учебу. Первый учебный год начался с выбора курсов на семестр. Система образования в Европе отличается от системы в классических российских университетах ты сам выбираешь, какие курсы тебе брать. Есть несколько обязательных курсов, которые ты должен будешь взять за время магистратуры. У нас это называлось core module, и он состоял из четырех базовых курсов. Остальные курсы ты выбираешь в зависимости от интересов. Я выбрала специализацию (specialization module) в Data Science, поэтому брала много курсов, связанных с машинным обучением и анализом данных. В каком семестре какой курс брать, решаешь ты сам. Главное, чтобы к концу обучения набралось 120 кредитов (один курс обычно весит 3 или 6 кредитов). Один кредит равен примерно 26 часам работы, но все, конечно, относительно. Я бала за семестр максимум 36 кредитов и это довольно большая нагрузка. Я решила взять большинство курсов в первый год обучения, чтобы освободить время на случай, если у меня появится работа на следующий год. Так что в первом и во втором семестре я брала по 36 кредитов. Также в 120 кредитов входит стажировка в компании или практика в исследовательской группе и написание магистерской диссертации (master thesis). Часто студенты берут нагрузку побольше в первых двух семестрах, а потом устраиваются на стажировку, которая плавно перетекает в фулл-тайм работу.



Уровень преподавания я могу оценить, как хороший. Как и во всех университетах, некоторые курсы отличные, некоторые не очень. Сильно зависит от преподавателя. Но мне в основном курсы, которые я брала, нравились. Еще университет очень быстро перешел на онлайн обучение, когда начался covid, что тоже характеризует его с хорошей стороны. Защищалась я, кстати, по зуму.

Студенты института компьютерных наук могут получить ноутбук на время обучения. Это было для меня большим сюрпризом и было очень кстати, так как хороший мощный ноутбук во время учебы точно пригодится. И факультет науки и технологий, к которому относится мой институт, недавно переехал в новое классное современное здание, Delta Centre. Было очень приятно учиться в такой атмосфере.



Еще хочется упомянуть, что если время лекций по одному предмету накладывается на другой, всегда можно договориться с преподавателем, что ты не будешь посещать его класс, но будешь дома в свободное время смотреть лекции и вовремя сдавать домашки. Да, все лекции записываются на видео! Например, я успешно закончила курс по Computational Neuroscience в третьем семестре, появившись в универе лишь один раз на экзамене. Третий семестр я провела на стажировке в Австрии и мне удалось выйти из положения и все равно взять курс, который я очень хотела.

К слову, о стажировках. Как я уже писала выше, стажировка обязательная часть программы MSc Computer Science. Я боялась, что не смогу найти хорошую стажировку, так как у меня не было практического опыта в программировании и опыта прохождения собеседований, особенно на английском. Еще одним моим страхом было то, что я не получу стипендию на второй год обучения Dora Plus дается только на первый год, а потом надо подавать снова, и на второй год их выделяют в разы меньше. Еще есть пара стипендий, на которые можно подавать каждый семестр, они тоже выделяются на основании успехов в учебе. Стипендию реально получить, если у тебя высокий средний балл, ты участвуешь в каких-то активностях, научной деятельности и тд. Словом, их дают тем, кто в топе. Спойлер: стипендию я все-таки получила. И не только Dora Plus, но и пару других. Главное стараться и иметь хороший средний балл и большое количество набранных кредитов за первый год, и все будет ок.

Так что, весной 2019 я активно занялась поиском стажировок, желательно оплачиваемых. Тартуский университет каждую весну проводит дни карьеры, и это отличное место, чтобы найти стажировку в компании. Например, благодаря дню карьеры, я побывала на собеседованиях в Microsoft и в Twilio и, самое главное, получила оффер от компании MindTitan, в которой я в итоге стажировалась летом после первого курса в качестве дата саинтиста. Еще одна возможность найти стажировку участвовать в проектах, которые компании делают совместно с университетом. О них можно узнать, пообщавшись с преподавателями, и из рассылок института. Например, во время моего обучения, у университета были контракты с Bolt, Swedbank, Huawei и другими известными компаниями. Мне же удалось побывать на исследовательской стажировке в Австрии, по итогам которой я писала магистерскую диссертацию. Так что не стоит бояться, что вы не найдете практику, стажировку или работу варианты всегда есть, а стажировки еще и неплохо оплачиваются. Те, кто заинтересован в исследовательской деятельности, часто устраиваются в ресерч группы университета, и за это тоже платят. Многие работают в качестве teaching assistant и помогают профессорам вести курсы. Возможностей найти то, что будет по душе, достаточно.


6. Заключение


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

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

Тем, кто сейчас находится на этапе поступления или хочет попробовать, но не решается, хочу сказать, что все не так сложно, как кажется. И еще, мой пример доказывает, что можно поступать и успешно заканчивать англоязычные программы даже с очень средним уровнем английского он очень быстро улучшается, когда постоянно находишься в среде, где без него никак.
Подробнее..

Использование Slack в обучении

10.01.2021 12:14:24 | Автор: admin

Не так давно я написал несколько статей с примерами про использование GitHub в обучении (часть 0, часть I, часть II, часть III) - теперь же хочу рассказать про использовании Slack в обучении.

Если кто вдруг не знает, то Slack - это корпоративный мессенджер с поддержкой каналов, видеовстреч, интеграций с другими сервисами. Подробнее можно почитать в Wikipedia - https://ru.wikipedia.org/wiki/Slack или на оф. сайте - https://slack.com/intl/en-ru/

Но прежде хочу рассказать о минусах.

Чем мне не нравится Slack

  • Платная подписка. По началу думал что бесплатного тарифа хватит (подробнее о тарифах - https://app.slack.com/plans/).

    • Но примерно через год активного использования - закончилось бесплатное место и количество сообщений. Нужно переходить на использование облачных хранилищ.

    • Невозможность делать групповые звонки в бесплатном тарифе.


      Знаю, что есть тариф для учебных заведений, но я так и не смог разобраться что нужно, чтобы его оформить. Подробнее о тарифе для учебных заведений - https://slack.com/intl/en-ru/help/articles/206646877-Apply-for-the-Slack-for-Education-discount

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

Почему я стал использовать Slack в обучении?

  • Можно разграничить каналы по типу записей в них. Закрытые для общения внутри групп, открытые для общего общения и для наполнения справочными материалами или публикацией важных новостей и объявлений.

Правда сложно сразу сделать правильную, удобную систему каналов. Но со временем получилось.

Примерный список каналов

  • канал#generalнеобходим для сообщений учебной части и руководства

  • канал#randomдля болтания

  • в канале#educationбудут ссылки на разные конференции, вебинары и т.п. вещи

  • в канале#edu-materials-progбудут учебные материалы

  • каналы #team-<номер группы> - это закрытые каналы групп студентов

Прекрасно понимаю, что не самая лучшая система каналов, но пока остановился на такой.

  • Личные сообщения никто не отменял.

  • Удобно вставлять код программ, он сразу подсвечивается.

  • Можно фиксировать/закреплять необходимые сообщения. На скриншоте к предыдущему пункту справа видны как раз закреплённые сообщения.

  • Удобно вести беседы на определённые темы. Есть система комментариев к сообщениям.

  • Можно оставлять не только комментарии к сообщениям, но и своё отношение в виде эмодзи/смайликов

  • Можно интегрировать различные сервисы. Я чаще всего интегрирую GitHub, Trello. Для меня очень удобно, когда из одной программы можно сделать карточку в Trello и посмотреть кто куда и что запушил на GitHub

Как всегда жду критики и советов.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru