Программная инженерия
Степень бакалавра наук в области программной инженерии готовит программистов: совместных профессионалов, работающих в команде для разработки программных продуктов в срок, в рамках бюджета и соответствующих требованиям клиентов. Выпускники этой программы будут обладать практическими знаниями и навыками определенного инженерного подхода к анализу, планированию, проектированию и строительству сложных систем. Учебный план основывается на основах компьютерных наук и математических принципах, охватывающих проектирование, анализ, верификацию, валидацию, реализацию, развертывание и обслуживание программных систем.
Часто возникает путаница в различиях между компьютерными науками, программной инженерией и ИТ/ИС. Следующая диаграмма от Ассоциации вычислительной техники (ACM) дает представление о взаимосвязи между каждой из областей.
Электрики (EE) в основном занимаются проектированием аппаратного обеспечения, в то время как компьютерные инженеры (CE) проектируют системы, которые включают как аппаратное, так и программное обеспечение. Компьютерные науки (CS) охватывают концепции и технологии, связанные с тем, как заставить компьютер что-то делать (графика, робототехника и т. д.), а программная инженерия (SE) сосредоточена на том, как проектировать и строить программное обеспечение. Существует значительное пересечение между компьютерными науками и программной инженерией, и пересечение между ними часто является программированием; однако есть ключевое различие. Компьютерные ученые тестируют теории и работают на грани неизвестного. Программная инженерия является инженерной дисциплиной. Инженерия начинается с знаний, которые уже были доказаны надежными, и разрабатывает решения для технических, социальных и коммерческих проблем. Информационные технологии (IT) и информационные услуги (IS) сосредоточены на предоставлении технологических решений для организации.
Программа программной инженерии Snow College предоставляет студентам образовательный опыт, который основывается на традиционных компьютерных науках и инженерии и производит программистов, создающих высококачественное программное обеспечение систематическим, контролируемым и эффективным образом. Это достигается следующими способами:
Степень имеет сильный акцент на математике и использовании инженерных методов в проектировании программного обеспечения.
Курсы акцентируют внимание на процессах и жизненных циклах программного обеспечения и используют командный подход к созданию программного обеспечения с активным обучением ("обучение через действие"), что также предоставляет возможности для лидерства, такие как роли руководителей команд разработки программного обеспечения, для каждого студента.
Курсы включают значительное обучение в области управления, такие как планирование проектов, распределение ресурсов, обеспечение качества, тестирование, метрики, обслуживание и устранение неполадок, управление конфигурацией и управление персоналом.
Курсы включают студенческие команды для работы над мероприятиями, специально разработанными для того, чтобы направить студентов на совместное построение собственного понимания ключевых концепций и одновременно развивать ключевые процессуальные навыки, такие как коммуникация, командная работа, критическое мышление и решение проблем.
Студенты смогут выбрать акцент в:
- Предпринимательстве: Сочетание вычислительного и предпринимательского мышления для выявления, оценки и реализации идей, которые создадут новые рынки и технологии.
- Дизайне цифровых медиа: Использование интегрированных медиа для передачи сообщений через электронные средства, такие как Интернет, кино, телевидение и мобильные технологии.
Веб-разработке: Использование инструментов, включая HTML, CSS и JavaScript, для создания и поддержания высококачественных интерактивных веб-сайтов.
Учебный план программной инженерии завершается годовой капstone последовательностью, где студенты работают в командах для создания программной системы, отражающей современные практики в отрасли. Кроме того, студентов поощряют участвовать в стажировках до и во время обучения на этих курсах капstone, чтобы получить прямой опыт работы в отрасли и понимание перед тем, как приступить к своим собственным проектам. Snow College будет сотрудничать с бизнесом для разработки этих учебных возможностей, которые предоставят студентам опыт, актуальный для отрасли.
Программа программной инженерии Snow College готовит студентов к немедленному вступлению в профессию программной инженерии или к продолжению учебы на более высоком уровне. Первые два года программы также совместимы с переводом в учебное заведение, предлагающее степень в области компьютерных наук.
Курсы программной инженерии
- SE 3250 Обзор языков
- SE 3410 Человеческие факторы - проектирование программного обеспечения
- SE 3450 Принципы и шаблоны проектирования ПО
- SE 3520 Системы баз данных
- SE 3620 Разработка распределенных приложений
- SE 3630 Разработка мобильных приложений
- SE 4120 Управление проектом программного обеспечения
- SE 4220 Графические пользовательские интерфейсы
- SE 4320 Личные практики программного обеспечения
- SE 4400 Практикум по программной инженерии I
Карьера в программной инженерии
Программная инженерия - это применение инженерных принципов к разработке программного обеспечения. Компьютерные ученые изучают, что является истинным, как тестировать гипотезы и как расширять знания в своей области. Программисты изучают, что является истинным, что полезно и как применять хорошо понятные знания для решения практических проблем.
Карьера в программной инженерии
- Разработка приложений: Разработка программного обеспечения, основанная на решении проблем, не связанная с вебом, которая включает языки программирования, такие как Java и C#.
- Разработка систем: Проектирование и кодирование фонового программного обеспечения, созданного для поддержки разработки приложений; включает языки программирования, такие как C и C++.
- Веб-разработка: Проектирование программного обеспечения или приложений для работы в веб-браузере и использование языков программирования, таких как HTML, JavaScript и PHP.
- Разработка встроенных систем: Проектирование вычислительных систем и программного обеспечения для работы на невычислительных устройствах, таких как автомобили. Использует языки программирования, такие как C и ассемблерные языки.
Заработок программистов
Согласно Бюро статистики труда,typical starting salary is around $70,000 and most software engineering careers pay between $80,000 and $105,000 per year. Потенциал заработка варьируется в зависимости от местоположения, опыта, образования, отрасли, работодателя и сертификации.
Навыки, необходимые для программной инженерии
Профессионалы в области программной инженерии ориентированы на навыки, требующие высокоспециализированной подготовки как в технических, так и в нетехнических областях. Работодатели ищут кандидатов, обладающих сочетанием технических и мягких навыков. Мягкие навыки, ценимые работодателями, включают коммуникацию, организацию, управление проектами, решение проблем, критическое мышление и принятие решений.
Кроме мягких навыков, программисты также развивают как технические, так и специфические для отрасли навыки, которые применимы ко всем карьерам в области компьютерной инженерии и конкретным областям практики соответственно. Примеры технических навыков включают языки программирования, компьютерное оборудование и программное обеспечение, а также архитектуру систем.
Подготовка к карьере в программной инженерии
1) Получите степень в области программной инженерии или смежной области. Большинство должностей программистов требуют степени бакалавра. Специальность в области программной инженерии обеспечит наиболее полезный фон для проектирования и совершенствования программного обеспечения. Чтобы подготовиться к своей карьере, вот несколько вещей, которые вы можете сделать.
2) Начните программировать немедленно. Даже если вы все еще в начальной школе, вы можете дать себе огромное преимущество, обучая себя программированию. Программная инженерия не сосредоточена исключительно на кодировании, но вам нужно будет знать хотя бы несколько языков и глубже понимать, как они функционируют. Нет широкого согласия по поводу того, какие языки наиболее полезны, но все они являются популярными выборами:
- C++
- C#
- Java
- JavaScript
Python
3) Изучайте математику. Программисты иногда создают математические алгоритмы, которые позволяют программному обеспечению функционировать. Сосредоточьтесь на развитии и поддержании своих математических навыков, чтобы сделать все возможное, когда вы получите должность программиста.
4) Создавайте программное обеспечение. Лучший способ улучшить свои навыки - это использовать их. Будь то профессиональные проекты или личные, проектирование и кодирование программного обеспечения научат вас многому. Для многих работодателей практические достижения имеют большее значение, чем средний балл или теоретические знания.
5) Ищите стажировку. Многие студенты программной инженерии работают стажерами, пока завершают свои учебные программы. Это может быть отличным способом получить практическое обучение и установить контакты с потенциальными работодателями.
6) Рассмотрите свои карьерные цели. Программная индустрия постоянно меняется. Постоянно улучшайте свои знания и практические навыки. Присоединяйтесь к профессиональной организации, такой как ACM или IEEE, для сетевых возможностей. Получите сертификаты, относящиеся к вашей области интересов. Посмотрите на возможности Snow для начала вашего пути в программной инженерии.
Доступные профессиональные сертификаты
Существует множество сертификатов, которые вы можете получить, чтобы продемонстрировать свои навыки в определенных языках, продуктах или ролях. Некоторые отражают широкие знания, другие сосредоточены на узких навыках в специализированных областях.
Инженеры приложений с широкими знаниями могут захотеть получить удостоверения через Институт электрических и электронных инженеров (IEEE). Удостоверения по разработке программного обеспечения IEEE Society отражают знания в Руководстве по знаниям в области программной инженерии (SWEBOK). Они признаны на международном уровне.