Закончила свой первый год учебы по программе Online Master of Science in Computer Science (OMSCS) в Georgia Institute of Technology (3 курса из 10). Захотелось поделиться некоторыми промежуточными выводами.
Не стоит туда идти, если:
1. Хочется научиться программировать
В моем понимании, в базе хорошему программисту надо:
- Знать структуру конкретного языка, стандартные библиотеки и т.д.;
- Уметь писать переиспользуемый и расширяемый код;
- Уметь читать код и писать читаемый код;
- Уметь тестировать код и исправлять ошибки;
- Знать базовые структуры данных и алгоритмы.
На эту тему есть книги, MOOC курсы, нормальная работа в хорошей команде. Отдельные курсы на MSCS могут помочь с чем-то из перечисленного, но в целом программа не про это. Знание языков — либо prerequisite к курсам, либо предполагается, что ты можешь быстро их освоить в нужном объеме. Для примера, в курсе Graduate Introduction to Operating Systems надо было сделать 4 проекта общим объемом на 5000+ строк C кода, плюс надо было прочитать около 10 научных работ. В курсе Artificial Intelligence в дополнение к шести непростым проектам надо было сдать два экстремальных экзамена — в течение одной недели решить 30 и 60 страниц не самых простых задач.
Требований к "хорошему" коду в плане читаемости чаще всего нет. Часто оценка ставится автоматически на основе автотестов, нередко есть требования к производительности, код и тексты проверяются на плагиат.
2. Основная мотивация — применить новые знания на текущем месте
Некоторые курсы могут дать инструментарий. Но вопрос, что ты будешь делать с еще тонной проектов и материалов, на освоение которых будет уходить всё свободное время на протяжении нескольких лет. Мне кажется опыт MSCS хорошо ложится на анекдот:
У ученого и популяризатора науки спросили о целях и результатах некоторого исследования:
Популяризатор:
— Результаты этого исследования помогли проверить гипотезу… А также внесли значительный вклад в развитие…
Ученый:
— Да это же просто ох**нно!
Я верю в то, что пройти всю программу без потерь можно, только если всё это зачем-то интересно и весело. Но это все не отменяет тот факт, что на такое образование смотрят работодатели (особенно в Штатах, но думаю, что не только). После добавления информации в LinkedIn о том, что я там учусь, мне начали поступать запросы от рекрутеров неплохих компаний из Европы и Штатов. Из моих знакомых в Торонто, несколько человек за время учебы продвинулись по карьере или нашли новую работу.
Кроме профессиональных, MSCS открывает и другие возможности. Можно вписываться в интересные научные проекты внутри Georgia Tech, если успешно прослушал нужные курсы. Head teaching assistant (TA) в AI — это русский парень, который, после года учебы в OMSCS, перевелся в кампус и уехал учиться и заниматься исследованиями в Атланту. Насколько мне известно, планирует получать PhD.
3. Рассчитываешь пройти программу в гордом одиночестве
Условно 50% профита от программы — это возможность общаться. У OMSCS большое и активное коммьюнити. Для каждого класса нанимается большая команда TA (часто это студенты той же программы, успешно прошедшие текущий курс). Все эти люди зачем-то хотят работать и учиться вместе. Что дает общение:
- Удовольствие от того, что ты страдаешь не один;
- Новые знакомые со всего мира и развитие soft skills;
- Возможность получить помощь и научиться чему-то;
- Возможность оказать помощь и научиться чему-то;
- Профессиональный networking.
Основная часть студентов — это люди с опытом в индустрии, часто руководители отделов, архитекторы, вплоть до CTO. Примерно 25% не имеют формальное CS образование, т.е. люди с просто достаточно разнообразным опытом. У меня на начало программы было 5 лет опыта Java-разработки в Яндекс.Деньгах, а сейчас part-time работа ресерчером в медицинском стартапе (deep learning в стоматологии).
Многие студенты мотивированы и открыты к общению. Программу можно пройти и в одиночку, но в результате ты инвестируешь 2.5-3 года своего времени (если учитывать работу) и получаешь только 50% возможного профита. Для меня этот пункт — это самая большая сложность, т.к. есть неуверенность в себе и языковый барьер, но я стараюсь работать над этим. Регулярно встречаемся с коллегами, живущими в Торонто. Все они довольно активные и интересные ребята и продвинутые профессионалы, один из них организовал встречу с Zvi Galil, "отцом" программы OMSCS, деканом факультета Computing Georgia Tech, оставившим позицию в этом году.
Пример про мотивацию: есть легендарный студент, который совместил прохождение программы и службу в армии. Он подключался к форуму во время полетов, и делал проекты и слушал лекции, проходя полевые учения. Сейчас работает в исследовательском институте при Georgia Tech, планирует делать PhD.
4. Нет готовности серьезно коммититься по времени
На первый взгляд может показаться, что OMSCS аналогична набору MOOC курсов или специализации на Coursera или похожей платформе. Я слушала несколько курсов на Coursera, например, первые части Cryptography и Algorithms от Stanford. Кроме того, я прошла один платный онлайн Graduate курс в Stanford (его же слушают MS и PhD студенты) и бесплатно прослушала лекции стенфордского CS231n (Convolutional Neural Networks for Visual Recognition).
Исходя из моего опыта, основные отличия Online graduate курсов от бесплатных MOOC курсов:
- Уже упомянутая гораздо большая вовлеченность и мотивация TA, инструкторов, других студентов, гораздо больший коммитмент (никто не хочет слушать программу вечно, тем более, что есть лимит в 6 лет);
- Достаточно жесткий timeline: лекции в случае с Georgia Tech доступны сразу все (можно их слушать в удобное время). Можно заранее читать учебник (многие делают это в перерывах между семестрами). Но есть проекты, и у них есть дедлайны, часто проекты завязаны на конкретные лекции. Есть дедлайны на экзамены (их как правило два за семестр). Желательно выдерживать темп. Сколько надо времени в неделю зависит от курсов и опыта. Я бы не рассчитывала на <10 часов в неделю на один класс. У меня в среднем уходит 20 (иногда совсем мало, иногда может быть и 30, и 40);
- Проекты более сложные и интересные, чем в MOOC, и на порядок более объемные;
- На такие курсы больше смотрят университеты и потенциальные работодатели. В частности, Georgia Tech при подаче заявки просит: “NOT List non-graded, non-academic-credit MOOC-type coursework”.
5. Хочется, чтобы все было понятно, разжевано и четко
Во-первых, MSCS — это не бакалавриат. Лекции есть, но они дают довольно общее представление о предмете. Плюс-минус все проекты предполагают личный активный ресерч. Он может включать общение с сокурсниками и TA-ми (см. пункт 3), чтение книжек, статей и т.д.
Во-вторых, OMSCS — это довольно большая и мощная инфраструктура с кучей увлеченных людей, создающих и поддерживающих курсы (см. пункт 2). Этим людям нравятся эксперименты и челленджи. Они меняют проекты, экспериментируют с вопросами в тестах и экзаменах, меняют тестовые окружения и т.д. В результате, это выливается в некоторые не вполне предсказуемые результаты. На моем опыте:
- В одном курсе что-то накрылось после обновления серверов и эти сервера перестали под нагрузкой выдавать сколь-нибудь стабильные результаты тестов. Народ отреагировал добавлением смайла с серверной ошибкой в слеке и ночными попытками проскочить с сабмитами;
- В другом курсе выпустили тесты и экзамены с местами неправильными или спорными ответами. По итогам обсуждений со студентами, эти ошибки правились вместе с оценками. Кто-то отнесся спокойно, кто-то возмущался и ругался. У меня все изменения были в плюс и это было даже по-своему приятно (ничего не делаешь, а оценка растет).
Это все, конечно, добавляет немножко стресса к и без того крутым американским горкам, но все эти штуки хорошо соотносятся с реалиями жизни: учат исследовать проблему, решать задачи в условиях меньшей определенности и выстраивать диалог с другими людьми.
У OMSCS в Georgia Tech есть свои специфики:
- Georgia Tech — один из топовых технических вузов США;
- Одна из старейших онлайн MSCS;
- Вероятно, самая большая онлайн MSCS: ~9 тыс. студентов за 6 лет;
- Одна из самых недорогих MSCS: около 8 тыс. долларов за все обучение;
- В классах одномоментно учится по 400-600 человек (к концу как правило меньше, в середине семестра можно уйти с оценкой W, не влияющей на GPA);
- Не все on-campus классы доступны в онлайн (но список расширяется и уже сейчас есть очень неплохой выбор, пока нет deep learning, но не теряем надежды);
- Не в любой класс просто попасть из-за приоритетных очередей и большого числа желающих (Graduate Algorithms парадоксально почти все проходят ближе к концу);
- Не все классы ровные по качеству материалов и активности TA и профессоров, но хороших классов много. В интернете много информации о конкретных курсах (отзывы, reddit, slack). Всегда можно выбрать что-то по вкусу.
Учитывая все специфики, при хорошем уровне мотивации, активной позиции и в целом позитивном взгляде — это интересный и вполне реальный путь. Надеюсь, что через год мое мнение кардинально не изменится, а эта информация окажется кому-то полезной.
Автор: Людмила Тузова