habrahabr

Важно ли фундаментальное образование в CS и взгляд из Яндекса на профессии в мире информационных тех

  • воскресенье, 4 мая 2014 г. в 03:10:37
http://habrahabr.ru/company/yandex/blog/221527/

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

В лекции, которую мы представляем в этом посте, Виктор Ашик из Школы анализа данных Яндекса постарался использовать опыт Яндекса, чтобы рассказать старшеклассникам о существующих на данный момент специальностях и знаниях, нужных для работы. А также объяснить, почему фундаментальное образование так важно и необходимо для будущего в этой индустрии.

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

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

Проблемы образования в IT


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

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

В какой-то момент многие задаются вопросом, а нужно ли высшее образование в IT в принципе, если там учат устаревшим технологиями и навыкам? На самом деле, вуз дает время и возможность освоить многие базовые вещи: теорию алгоритмов, теорию вероятностей и т.д. Если пренебречь высшим образованием, и освоить только необходимые в данный момент технологии и сразу пойти работать, у вас просто может не остаться времени и мотивацию на освоение этих фундаментальных основ. Что в дальнейшем может привести к проблемам при освоении новых технологий и попытках выйти на новый уровень. Кроме того, многие рекрутеры, выбирая между двумя кандидатами, всегда отдают предпочтения тем, у кого есть профильное высшее образование, либо совсем не рассматривают резюме, в котрых нет строчки о наличии диплома.

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

Как выбрать профессию?


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

Как осваивать профессию


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

Что собой представляет отрасль ИТ


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



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

Администрирование и управление в сетях связи
  • Знания:
    • Сети;
    • Протоколы;
    • Оборудование.
  • Задачи:
    • Установка;
    • Настройка;
    • Мониторинг;
    • Обслуживание сетевого оборудования.
  • Роли:
    • Сетевой администратор;
    • Сетевой аналитик;
    • Сетевой инженер.


Информационная безопасность
  • Знания:
    • Протоколы аутентификации;
    • Антивирусы;
    • Криптография;
    • Эксплуатация и изоляция уязвимостей;
    • Нормативная база.
  • Задачи:
    • Мониторинг;
    • Диагностика;
    • Тестирование возможности проникновения;
    • Соответствие требованиям.
  • Роли:
    • Администратор ИБ;
    • CISO, penterter,...


Внедрение корпоративного ПО и консультирование
  • Знания:
    • Корпоративные языки (Java/.NET/SQL);
    • Прикладные: бухгалтерия, финансы;
    • Оборудование.
  • Задачи:
    • Установка;
    • Настройка ERP/CRM/BI/бухгалтерия...
    • Обслуживание.
  • Роли:
    • Консультант;
    • Аналитик;
    • Разработчик.


Дизайн интерфейсов и опыта взаимодействия
  • Знания:
    • Дизайн;
    • Эргономика;
    • Психология.
  • Задачи:
    • Проектирование интерфейсов;
    • Графический дизайн;
  • Роли:
    • Дизайнер;
    • ...


Обслуживание и поддержка
  • Знания:
    • Сети;
    • Протоколы;
    • Оборудование;
    • Все остальное.
  • Задачи:
    • Мониторинг;
    • Получение обратной связи;
    • Диагностика;
    • Устранение неполадок или эскалация проблемы.
  • Роли:
    • Дежурный администратор;
    • Сотрудник службы поддержки;
    • Инженер службы поддержки.


Разработка и администрирование БД
  • Знания:
    • SQL;
    • Реляционные СУБД;
    • Операционные системы;
    • Проектирование баз данных.
  • Роли:
    • Администратор БД;
    • Разработчик БД;
    • Аналитик/проектировщик запросов;
    • Консультант.


Разработка ПО, веб-служб и приложений
  • Роли:
    • Разработчик (программист)
      • Интерфейсов (frontend),
      • Приложений (Windows, OS X, *nix),
      • Мобильных приложений;
    • Тестировщик
      • Функциональный
      • Нагрузочный.


Системный анализ
  • Задачи:
    • Анализ требований;
    • Постановка задач

    Роли:
    • Технический писатель;
    • Бизнес-аналитик;
    • Системный аналитик;
    • Аналитик программного обеспечения.


Управление проектами
  • Задачи
    • Определение и достижение целей;
    • Поиск баланса «время, цена, качество».

    Роли:
    • Руководитель проекта по...
    • Мастер методологии (Scrum, Agile,...).


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