В течение многих десятилетий, чтобы стать разработчиком программного обеспечения, была принята степень «Compter Science».
У нас уже было несколько вопросов о том, действительно ли эта степень готовит студентов к разработке программного обеспечения.
В последние 8 лет некоторые школы начали предлагать несколько различных направлений в программировании. Используя программу из моей школы:
- Информатика , которая начинается с некоторых вводных курсов по программированию в первый год, а затем сосредотачивается на теоретической информатике, алгоритмах и небольшом количестве ОС. Большинство занятий включают несколько небольших проектов и домашних заданий, выполненных в одиночку или в парах.
- Программная инженерия , которая начинается с тех же вводных курсов по программированию, изучает несколько классов теории, а затем изучает методы разработки программного обеспечения (тестирование, методологии процессов, метрики программного обеспечения, сбор требований) и разработку программного обеспечения (проектирование распределенных систем, проектирование информационных систем). в реальном времени / встроенный дизайн, дизайн подсистемы и т. д.)
Разные школы делают это по-разному, так что вышеизложенное - просто пример из реальной жизни, с которым я знаком. Я спрашиваю: есть ли необходимость в разных направлениях программирования?
computer-science
engineering
Fishtoaster
источник
источник
Ответы:
Да, они должны быть.
Отношения между информатикой и разработкой программного обеспечения такие же, как отношения между физикой и машиностроением. Один обеспечивает теоретическое обоснование, а другой берет эти теории вместе с хорошими инженерными принципами и применяет их к разработке и внедрению программного обеспечения.
Вам нужно и то, и другое, чтобы создавать новое и лучшее программное обеспечение. Хорошее образование в области компьютерных наук обучает людей создавать новые и более совершенные алгоритмы, структуры данных, языки программирования и парадигмы, компиляторы и ряд других вещей, которые можно использовать для улучшения программных систем. Хорошее образование в области разработки программного обеспечения, с другой стороны, научит вас использовать эти инструменты и знания, полученные в результате научного изучения вычислительной техники, а также знания жизненного цикла разработки программного обеспечения и моделей процессов для фактического построения системы, которую клиент хочет и нуждается ,
источник
Общеизвестно, что типичная учебная программа по КС не готовит ее для отрасли, не так сильно, как она того требует. Так что да, есть необходимость в специализации по разработке программного обеспечения, и они должны быть разными, хотя определенно на одном и том же факультете.
источник
Это должны быть разные дисциплины, но не на уровне бакалавриата. Я просто не понимаю, как они могут собрать все, что нужно для разработки программного обеспечения на уровне бакалавриата. Точно так же, как мы не видим степени бакалавра в области системной инженерии (где люди получают MS после получения степени в EE, CE, Mechanical Eng или CS), это аналогично случаю разработки программного обеспечения.
Это междисциплинарный подход, в значительной степени основанный на компьютерных науках и / или MIS. Люди действительно становятся инженерами программного обеспечения на практике (а не только в названии) после прохождения продвинутой курсовой работы и / или опыта работы в этой области, при условии, что последующее делается в средах, проводящих разработку программного обеспечения.
У большинства людей есть названия разработки программного обеспечения, но они не продвинулись дальше кодирования. Это не их оскорбление, а наблюдение - они не были достаточно подвержены тому типу работы, который помог бы им накопить опыт работы за пределами кодирования. Хуже того, большинство рабочих мест и организаций ужасно работают и не способствуют правильной разработке программного обеспечения.
Кроме того, без какой-либо работы или учебной зрелости, материалы по разработке программного обеспечения будут просто пролетать над головами большинства студентов старших курсов.
источник