Привет, Хабр!
На кого учиться? Пойти изучать компьютерные науки или постигать навык софт-инженера? Данные вопросы являются очень актуальными в наше время.
А что же выберете вы?
Люди, которые только начинают свой путь в IT-сфере и собираются поступать в какой-то технический ВУЗ или же просто ищут обучающие программы по программированию, чаще всего, натыкаются на огромное количество направлений. Смысл заключается в том, что на каждом из этих направлений предметы похожи, особенно на 1 и 2 курсе.
Для наглядности разделим все направления на два лагеря — это Computer Science и Software Engineering. Принципиальная разница заключается в том, что первое направление более гибкое и там лучше изучают фундаментальные вещи, а второе направлено на более практические навыки создания программ для рынка. Какое бы из этих направлений вы не выбрали, в конечном итоге вы станете программистом. Скорее всего, вы пойдёте куда-нибудь работать после или во время учёбы и вот именно на какой сектор разработки вас пустят и на что сможете претендовать определит то, какое направление вы выберете.
В обоих лагерях на первых 2-4 семестрах изучают похожие предметы, такие как линейная алгебра, математический анализ, дискретная математика и дифференциальные уравнения. Всю эту математику как правило изучают в обоих лагерях, но в Computer Science добавляется ещё по одному курсу дискретной математики и дифференциальных уравнений. Также общим для всех направлений является введение в общий Computer Science, а вот здесь уже и начинаются различия. В направлении Computer Science рассказывают об архитектуре ЭВМ, теории вычисления алгоритмов, структуре данных и их анализе, о том, как работают программы и как их можно писать, пользуясь классическими конструкциями, операционных системах, компиляторах и так далее. То есть идёт охват большего фундамента. В свою очередь, в Software Engineering рассказывают о ООП дизайне, тестировании софта, основах операционных систем и так далее. Другими словами, идёт охват изучения техник, чтобы студент мог учиться пользоваться уже готовыми решениями и с помощью них решать иной спектр бизнес задач. Все это обычно изучают в первый год обучения.
Далее, уже на 2 курсе оба лагеря начинают изучать такие предметы, как архитектура ЭВМ и устройство операционных систем, но Software Engineering изучает данные предметы более поверхностно. Это связано с тем, что там готовят людей, которые будут мало связаны с данными предметами. Начиная со 2 года обучения, на Computer Science начинают больше давить на устройство микроархитектуры и ядер ОС, а на разработке ПО больше делают упор на пользовательские интерфейсы, тестирование, анализ ПО, всякие методики менеджмента и т. д. В частности, ООП изучают в обоих направлениях достаточно углублено, так как данная парадигма программирования очень популярна в наше время и о ней просто нужно знать.
На 3 курсе обучения в Computer Science посвящается изучению комбинаторики, криптографии, ИИ, основам разработки ПО, 3D- графике и теории компиляторов. А на Software Engineering изучают системную безопасность, сети и интернет, менеджмент ПО и менеджмент в общем. Но в зависимости от ВУЗа данные предметы и углубление в них могут варьироваться.
Пожалуй, главным вопросом данной статьи остаётся вопрос о том, куда же лучше пойти. Тут уже все зависит от ваших предпочтений. Если же вы хотите быть очень гибким и универсальным инженером, то вам стоит идти в Computer Science. А если хотите связать свою жизнь с разработкой ПО и быть способным создавать какие-то полезные программы для конечных пользователей, то Software Engineering именно для вас.
Подводя итоги, хотелось сказать, что в Computer Science вас научат решать задачи и придумывать элегантные способы решения этих задач, а в Software Engineering из вас сделают бизнес программиста, который сможет управлять проектами, людьми и создавать актуальный софт.
На кого учиться? Пойти изучать компьютерные науки или постигать навык софт-инженера? Данные вопросы являются очень актуальными в наше время.
А что же выберете вы?
Люди, которые только начинают свой путь в IT-сфере и собираются поступать в какой-то технический ВУЗ или же просто ищут обучающие программы по программированию, чаще всего, натыкаются на огромное количество направлений. Смысл заключается в том, что на каждом из этих направлений предметы похожи, особенно на 1 и 2 курсе.
Для наглядности разделим все направления на два лагеря — это Computer Science и Software Engineering. Принципиальная разница заключается в том, что первое направление более гибкое и там лучше изучают фундаментальные вещи, а второе направлено на более практические навыки создания программ для рынка. Какое бы из этих направлений вы не выбрали, в конечном итоге вы станете программистом. Скорее всего, вы пойдёте куда-нибудь работать после или во время учёбы и вот именно на какой сектор разработки вас пустят и на что сможете претендовать определит то, какое направление вы выберете.
В обоих лагерях на первых 2-4 семестрах изучают похожие предметы, такие как линейная алгебра, математический анализ, дискретная математика и дифференциальные уравнения. Всю эту математику как правило изучают в обоих лагерях, но в Computer Science добавляется ещё по одному курсу дискретной математики и дифференциальных уравнений. Также общим для всех направлений является введение в общий Computer Science, а вот здесь уже и начинаются различия. В направлении Computer Science рассказывают об архитектуре ЭВМ, теории вычисления алгоритмов, структуре данных и их анализе, о том, как работают программы и как их можно писать, пользуясь классическими конструкциями, операционных системах, компиляторах и так далее. То есть идёт охват большего фундамента. В свою очередь, в Software Engineering рассказывают о ООП дизайне, тестировании софта, основах операционных систем и так далее. Другими словами, идёт охват изучения техник, чтобы студент мог учиться пользоваться уже готовыми решениями и с помощью них решать иной спектр бизнес задач. Все это обычно изучают в первый год обучения.
Далее, уже на 2 курсе оба лагеря начинают изучать такие предметы, как архитектура ЭВМ и устройство операционных систем, но Software Engineering изучает данные предметы более поверхностно. Это связано с тем, что там готовят людей, которые будут мало связаны с данными предметами. Начиная со 2 года обучения, на Computer Science начинают больше давить на устройство микроархитектуры и ядер ОС, а на разработке ПО больше делают упор на пользовательские интерфейсы, тестирование, анализ ПО, всякие методики менеджмента и т. д. В частности, ООП изучают в обоих направлениях достаточно углублено, так как данная парадигма программирования очень популярна в наше время и о ней просто нужно знать.
На 3 курсе обучения в Computer Science посвящается изучению комбинаторики, криптографии, ИИ, основам разработки ПО, 3D- графике и теории компиляторов. А на Software Engineering изучают системную безопасность, сети и интернет, менеджмент ПО и менеджмент в общем. Но в зависимости от ВУЗа данные предметы и углубление в них могут варьироваться.
Пожалуй, главным вопросом данной статьи остаётся вопрос о том, куда же лучше пойти. Тут уже все зависит от ваших предпочтений. Если же вы хотите быть очень гибким и универсальным инженером, то вам стоит идти в Computer Science. А если хотите связать свою жизнь с разработкой ПО и быть способным создавать какие-то полезные программы для конечных пользователей, то Software Engineering именно для вас.
Подводя итоги, хотелось сказать, что в Computer Science вас научат решать задачи и придумывать элегантные способы решения этих задач, а в Software Engineering из вас сделают бизнес программиста, который сможет управлять проектами, людьми и создавать актуальный софт.
Комментарии (3)
easimonenko
08.11.2019 17:51В бакалавриате наверное вообще не нужно вводить специализации и профили. Мы в этом году разработали новые учебные планы и с трудом развели между собой программную инженерию и прикладную информатику, так как и тем и другим нужно изучать один и тот же базовый набор дисциплин.
А вот в магистратуре вполне можно сосредоточиться на каком-то определённом разделе информатики и программирования (что мы с удовольствием и сделали в своих планах).
Резюме: в бакалавриат можно идти любой, здесь важней атмосфера в вузе и наличие хороших преподавателей, а специализацию можно получить в магистратуре, причём даже в другом вузе и по другому направлению.
Sazonov
Не знаю насчёт западных вузов, но в наших я ни разу не встречал нормальной подготовки к «управлению проектами». По той простой причине, что вся учебная программа заточена на подготовку программистов-одиночек. Очень редко бывают случаи, когда студенты делают совместные проекты и отвечают за разные части разрабатываемого ПО. Обычно хотят чтобы все знали целиком свою учебную программу. И это большая проблема — когда приходят талантливые джуны, то на первом месте работы из сначала учат тому, что код должен быть хорошо читаем другими членами команды и тому что большую часть времени времени код придётся читать, а не писать.