Закончила свой первый год учебы по программе 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). Всегда можно выбрать что-то по вкусу.

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

Комментарии (17)


  1. somebody4
    23.12.2019 02:00

    Статья про «Не стоит туда идти, если».

    Но где список «Стоит туда идти, если»? Или ответ один — чтобы иметь корочки «OMSCS»? Надеюсь они ценяться лучше чем корочки какого-нибудь University of Phoenix.


    1. Lyudmila_Tuzova Автор
      23.12.2019 07:14

      Ценятся. В рейтингах университетов США CS программы Georgia Tech плюс-минус в TOP 10, 7-е место по публикациям на NeurIPS в этом году (American Universities Leading in AI Research, medium.com/@chuvpilo/ai-research-rankings-2019-insights-from-neurips-and-icml-leading-ai-conferences-ee6953152c1a).
       
      Слова online в дипломе нет (т.е. диплом такой же, как у студентов из кампуса). Качество обучения сопоставимое (сравнивала цифры по проектам и экзаменам у студентов из кампуса и онлайн).
       
      Я сознательно написала о своем опыте с позиции, когда «не стоит». Надеюсь, что может помочь кому-то заинтересованному в программе скорректировать ожидания. Часть этих пунктов — ответ на вопросы от знакомых. Ответ на вопрос, когда стоит, мне кажется, сильно менее очевидным и сильно более зависящем от личных интересов/приоритетов. 
       
      Попробую ответить про себя. Изначально мысли о MSCS возникли, т.к. у меня не сильно релевантное образование, а узнать что-то о CS, выходящее за рамки рабочих задач программиста, было интересно. После нескольких MOOC, поняла, что мне не хватает понятной структуры курсов и более мотивированной среды, самой все это организовать не получилось. «Корочка» на том этапе рассматривалась как приятный бонус.
       
      Сейчас по факту:
      • сам факт учебы помогает на работе, т.к. я сейчас больше занимаюсь исследованиями и общаюсь с профессорами США, для которых Georgia Tech звучит убедительно (т.е. работает пресловутая корочка);
      • мне все ещё просто очень интересно;
      • из того, что ещё не вполне материализовалось: надеюсь найти применение каким-то знаниям и скилам в текущей работе (благо у нас пока стартап и есть, где развернуться при желании); ну и на будущее открываются некоторые новые горизонты (PhD, интересные проекты в университете, новые профессиональные варианты).


  1. itxs
    23.12.2019 11:58

    Интересно, я так понимаю можно пройти его находясь в Москве?


    1. sf7_uz
      23.12.2019 18:39

      Да, в статье описано онлайн-обучение.


    1. Lyudmila_Tuzova Автор
      23.12.2019 18:40

      Да, верно, все можно пройти онлайн, находясь в Москве.


  1. AH89
    23.12.2019 18:39

    Только «научиться программировать» не может ведь быть самоцелью. Научиться программировать чтобы что? Поделитесь перспективами


    1. Neikist
      23.12.2019 18:42
      +1

      Автор уже умеет программировать, и судя по всему давно и неплохо. Цели автор в общем то в соседнем комментарии оставила.


    1. Lyudmila_Tuzova Автор
      23.12.2019 20:26

      Если есть задача найти работу software engineer и хочется разобраться в цикле разработки программного обеспечение или каких-то базовых алгоритмах, структурах, то MSCS не лучший вариант для подготовки. В OMSCS есть несколько релевантных курсов (например, Software Architecture and Design, Software Development Process), но основная часть курсов про продвинутые задачи и технологии в разных актуальных областях (для примера, некоторые курсы: AI for robotics, high performance computing, computer vision, bayesian statistics и т.д). Материалы более теоретические и научно ориентированные, проекты часто сложные. В MSCS есть студенты без опыта разработки, это, наверное, реально, вопросы целей.


  1. desmond_breezey
    23.12.2019 18:39

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


  1. Domovenok
    23.12.2019 18:39

    Я правильно понимаю что вы проходите это всё онлайн?


    1. Lyudmila_Tuzova Автор
      23.12.2019 18:41

      Да, это полностью онлайн программа.


  1. ilya138
    23.12.2019 18:39

    Спасибо за статью. Сам пару лет назад смотрел в сторону GaTech, но понял что нужно плотно работать над языком чтобы сдать TOEFL (у них, на сколько помню, нужно 110ish из 120).
    Да и в плане цены все довольно доступно, этим и подкупает.


    1. Lyudmila_Tuzova Автор
      23.12.2019 18:53

      Здесь говорят про 100 минимум: www.omscs.gatech.edu/prospective-students/faq. У меня был меньше 110.


  1. Vankavstanka
    23.12.2019 18:44

    8к??? — это-ж дешевле чем в вышке онлайн магистратура machine learning


    1. Lyudmila_Tuzova Автор
      23.12.2019 19:04

      Да, у Georgia Tech изначально была стратегия, направленная на большую доступность онлайн образования за счет большего числа студентов: высокий acceptance rate, нет экзамена GRE и т.д. Раньше был условный admission, надо было за год пройти два базовых курса (не специализацию) на B и выше, иначе не зачисляли в студенты. Сейчас, насколько я знаю, требование про два курса осталось, но не отчисляют (просто не дают слушать новые классы специализации пока не пройдешь два базовых). Есть ряд ограничений для получения степени: 6 лет учебы максимум, GPA > 3, классы специализации на B и выше и т.д.


    1. dmitrytuzoff
      23.12.2019 21:05

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


  1. gpyra
    24.12.2019 12:50

    А бакалавриат какой можете посоветовать?