Компьютерные науки или программная инженерия – какое образование выбрать?

На кого учиться: на спеца по искусственному интеллекту или на софт-инженера – вопрос очень популярный. А что вы выберете? Очень часто можно встретить размышления на темы выбора одного из перечисленных направлений: “Какая разница между вычислительной техникой и программной инженерией?” или “Должен ли я выбрать вычислительную технику или программную инженерию, если хочу стать софт-инженером?”. В этой статье мы попытаемся понять и проанализировать важность и необходимость обучения этим специальностям.

Быстрый осмотр пациента

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

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

Какие перспективы?

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

  • Веб-разработчик / архитектор, The Steele Group.
  • Программист, Harry Rosen Inc.
  • Мобильный / облачный разработчик, Clearbridge Associates Limited.
  • Разработка программного обеспечения, General Dynamics Canada.
  • Разработка программного обеспечения, Microsoft.
  • Agile Engineer, Pivotal Labs.
  • Бизнес-аналитик, Canadian Tire Corporation.
  • Менеджер по продуктам, Dropbox.p

Программное обеспечение:

  • Разработчик ПО, Tagged Inc./li>
  • Разработчик ПО, IBM Canada.
  • Менеджер продукта, Arius Software Corporation.
  • Инженер по ПО, VistaPrint USA.
  • Инженер-программист, Harris Corporation.
  • Разработчик ПО, Accenture Inc.
  • Менеджер продукта/Разработка программного обеспечения, NexJ Systems Inc.
  • Консультант, PureFacts Financial Solutions.
  • Консультант по реализации, Desire2Learn.

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

Обязательные темы первого года

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

  • CS 135 – Разработка функциональных программ.
  • CS 136 – Разработка алгоритмов и абстракция данных.
  • MATH 135 – Алгебра.
  • MATH 136 – Линейная алгебра 1.
  • MATH 137 – Исчисление 1.
  • MATH 138 – Исчисление 2.
  • Плюс несколько факультативных.

Программное обеспечение:

  • CS 137 – Принципы программирования.
  • CS 138 – Абстракция и реализация данных.
  • MATH 115 – Линейная алгебра для инженерии.
  • MATH 117 – Исчисление 1 для инженерии.
  • МАТЕМАТИКА 119 – Исчисление 2 для инженерии.
  • МАТЕМАТИКА 135 Высшая математика.
  • ECE 105 Физика электротехники 1.
  • ECE 106 Электричество и магнетизм.
  • ECE 124 Цифровые схемы и системы.
  • ECE 140 Линейные цепи.
  • SE 101 Методы разработки программного обеспечения.

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

Обязательные темы второго курса

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

  • MATH 239 Введение в комбинаторику.
  • STAT 230 Теория вероятностей.
  • STAT 231 Статистика.
  • CS 240 Структуры данных и управление данными.
  • CS 241 Основы последовательных программ.
  • CS 245 Логика и вычисления.
  • CS 246 Разработка объектно-ориентированного программного обеспечения.
  • CS 251 Организация и дизайн компьютеров.
  • CS 341 Алгоритмы.
  • CS 350 Операционные системы.
  • Кроме того, некоторые факультативы по компьютерной науке.

Программное обеспечение:

  • CHE 102 Химия для инженеров.
  • ECE 222 Digital Computers (включая язык ассемблера).
  • ECE 358 Компьютерные сети.
  • MATH 213 Высшая математика для инженеров-программистов.
  • MATH 239 Введение в комбинаторику.
  • STAT 206 Статистика для разработчиков программного обеспечения.
  • MSCI 261 Инженерная экономика: финансовый менеджмент для инженеров.
  • CS 241 Основы последовательных программ.
  • CS 240 Структуры данных и управление данными.
  • CS 247 Принципы разработки программного обеспечения.
  • CS 341 Алгоритмы.
  • CS 349 Пользовательские интерфейсы.
  • CS 343 Параллельное и параллельное программирование.
  • CS 348 Введение в управление базой данных
  • SE 212 Логика и вычисления
  • SE 350 Операционные системы
  • SE 465 Тестирование программного обеспечения и обеспечение качества
  • SE 464 Разработка и дизайн программного обеспечения
  • SE 463 Спецификация и анализ требований к программному обеспечению
  • SE 490 Проектный проект
  • Кроме того, несколько факультативов по информатике и электротехнике.

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

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

И все-таки, что выбрать, чтобы быть инженером-программистом?

Исходя из набора предметов и курсов в этом университете следует, что лучшим выбором будет “Вычислительна техника”, если вы хотите стать инженером-программистом. Для простоты предположим, что вы надеетесь получить одну из самых высокооплачиваемых работ (~ 100 000 долларов США в год) в качестве инженера-программиста в Северной Америке. Эти рабочие места обычно находятся в крупных компаниях-разработчиках программного обеспечения (например, Microsoft, Google, Amazon и т. д.). Или в компаниях среднего бизнеса с высокими темпами роста (Dropbox, Lyft, Snapchat, Pinterest и т. д.). Как правило, они ищут в кандидате на программиста возможность писать хороший код и создавать интересные проекты, а также знание основ компьютерных наук, структур данных и алгоритмов. Лучший способ активизировать этот набор навыков – быстро изучить основы и тратить свое время на решение проблем и написание кода. Основываясь на учебной программе для софт-инженера и на занятости инженеров-программистов, это будет сложно сделать на курсе “Программной инженерии”, чем на “Вычислительной технике”. Еще одно преимущество курса “Вычислительной техники” заключается в том, что она дает больше факультативов. Это здорово, потому что в зависимости от того, что востребовано на рынке труда, вы сможете корректировать свое обучение. Например, если разработка мобильных приложений востребована, вы можете начать ее изучать и т. д.

Несколько примечаний

  • Различные университеты имеют разные требования к этим двум специальностям. Эта статья должна быть хорошей отправной точкой, но вы все равно должны взглянуть на требования к программе в университете, в котором вы заинтересованы.
  • Некоторые университеты даже не имеют такого направления, как “Программной инженерии”. Например, Университет Британской Колумбии в Ванкувере может дать вам степень в вычислительной технике и компьютерной инженерии, но не в программной инженерии. Но у них есть концентрация программного обеспечения в рамках своей программы по вычислительной технике, а также в области компьютерной инженерии.

Заключение

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

Перевод статьи ” Computer Science VS Software Engineering — Which Major Is Best For You?

Сохрани себе или поделись с другим
Редактор Greatech
Редактор Greatech

Сайт GreaTech.ru – это медиа-ресурс, посвященный новостям из мира технологий, обзору новых интернет-продуктов и стартапов. Также мы расскажем о том как избежать проблем, связанных с использованием ноутбуков, смартфонов и другой техники. Источник: https://greatech.ru/about-us

Мы будем рады и вашему мнению

Оставить ответ

Greatech
Logo