Программная инженерия — описание профессии, кем работать и зарплата

Доступные вакансии

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

Вакансии специалистов:

  1. Проектировщик 3D печати в строительстве. Такую работу могут получить сотрудники, окончившие специальность «Аддитивные технологии». В их обязанности входит создание объёмных моделей деталей и конструкций, необходимых для строительства какого-либо объекта или машины.
  2. Оператор 3D печати. Этот сотрудник занимается подготовкой к процессу печати на 3D- принтере. Он подбирает материалы, загружает специальное программное обеспечение и занимается окончательной обработкой напечатанных изделий. Кроме этого, оператор обслуживает и ремонтирует технику.
  3. Разработчик баз данных. Специалист в этой области занимается создание крупных баз данных, которые используются на предприятиях и в различных учреждениях. Кроме этого, разработчик выполняет отладку, модернизацию и занимается обслуживаем базы.
  4. Веб-дизайнер. Представители этой профессии проектируют пользовательские интерфейсы для сайтов и мобильных приложений. Помимо этого специалисты разрабатывают уникальные дизайны для интернет-ресурсов.
  5. Инженер по обеспечению качества ПО. Этот специалист следит за исправностью и правильностью работы программного обеспечения. Такую работу можно выполнять на предприятиях, в государственных или частных компаниях.
  6. Java-разработчик. В эту профессию приходят люди, которые досконально знают язык программирования Java. Они создают крупные приложения, а также отдельные элементы, которые используются на сайтах.
  7. Net-разработчик. Этот сотрудник в своей работе использует специальную платформу Microsoft. net Framework. С её помощью он создаёт приложения для телефонов, сайты и отдельные элементы компьютерных игр.
  8. Веб-разработчик. Представители этой специальности являются программистами, которые разрабатывают веб-приложения для сайтов. Для этого они используют Ajax, CMS, JavaScript, PHP, MySql.
  9. Разработчик «насыщенных» интерфейсов. Этот специалист создаёт интерфейсы приложений, которые пользователи загружают в свои интернет-браузеры.

дальнейшее чтение

  • Руководство к своду знаний по программной инженерии (SWEBOK Guide): Версия 3.0 . Пьер Бурк, Ричард Э. Фэрли (ред.). Компьютерное общество IEEE. 2014. ISBN. 978-0-7695-5166-1.
  • Прессман, Роджер S (2009). Программная инженерия: подход практикующего (7-е изд.). Бостон, Массачусетс: Макгроу-Хилл. ISBN 978-0-07-337597-7.
  • Брюгге, Бернд ; Дютуа, Аллен (2009). (3-е изд.). Прентис Холл. ISBN 978-0-13-606125-0.
  • Ошана, Роберт (21.06.2019). Программная инженерия для встроенных систем: методы, практические приемы и приложения (второе изд.). Кидлингтон, Оксфорд, Великобритания. ISBN 978-0-12-809433-4.

Карьера программного инженера

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

Что это за профессия? Кем работать придется на начальных этапах и есть ли возможность подниматься по карьерной лестнице? Именно этими вопросами задается большинство людей, собирающихся посвятить свою жизнь программной инженерии. Действительно: есть ли возможность качественно вырасти как специалисту в рассматриваемой трудовой сфере? Конечно же, такие возможности имеются. На первых порах выпускнику университета придется поработать простым стажером. Однако в недалеком будущем у него может появиться возможность повысить свой статус до штатного программиста среднего уровня. Приложив должные усилия, штатный может дорасти до ведущего программиста. Стоит отметить, что ведущие специалисты в сфере программной инженерии могут получать заработную плату до 3 000$. Конечно же, должность ведущего программиста — не предел. Существует реальная возможность занять руководящую должность по какому-нибудь крупному проекту. В этом случае начальство предприятия может предложить место в руководстве.

Таким образом, карьерная лестница в сфере программной инженерии, конечно же, присутствует. И подняться по ней вполне реально.

Образование

Знание компьютерного программирования — необходимое условие для того, чтобы стать инженером-программистом. В 2004 году компьютерное сообщество IEEE выпустило SWEBOK , который был опубликован как Технический отчет ISO / IEC 1979: 2005, в котором описывается совокупность знаний, которые они рекомендуют освоить дипломированному инженеру-программисту с четырехлетним опытом работы. Многие инженеры-программисты начинают свою профессию, получив высшее образование или обучаясь в профессионально-техническом училище. Одна стандартная международная учебная программа для получения степени бакалавра программной инженерии была определена Объединенной целевой группой по компьютерным программам компьютерного общества IEEE и Ассоциации вычислительной техники и обновлена ​​в 2014 году. В ряде университетов есть программы на получение степени в области программной инженерии; по состоянию на 2010 год в Соединенных Штатах насчитывалось 244 программы бакалавриата по программной инженерии в кампусе , 70 онлайн-программ, 230 программ уровня магистра, 41 программа уровня докторантуры и 69 программ уровня сертификата.

Помимо университетского образования, многие компании спонсируют стажировки для студентов, желающих продолжить карьеру в области информационных технологий. Эти стажировки могут познакомить студентов с интересными реальными задачами, с которыми типичные инженеры-программисты сталкиваются каждый день. Аналогичный опыт можно получить во время военной службы в области разработки программного обеспечения.

Программы обучения программной инженерии

Половина всех практикующих сегодня имеет ученые степени в области компьютерных наук , информационных систем или информационных технологий . Небольшое, но постоянно растущее число практиков имеют степени в области разработки программного обеспечения. В 1987 году кафедра вычислительной техники в Имперском колледже Лондона представила первые три года разработки программного обеспечения степень бакалавра в Великобритании и мире; в следующем году Университет Шеффилда учредил аналогичную программу. В 1996 году Рочестерский технологический институт установил степень программы первого по разработке программного обеспечения бакалавра в Соединенных Штатах, однако, она не не получила ABET аккредитацию до 2003 года, в то же время , как Rice University , Университета Кларксона , Милуоки школа инженерии и Университета штата Миссисипи получил их. В 1997 году технологический колледж PSG в Коимбаторе, Индия, первым начал пятилетнюю интегрированную степень магистра наук в области разработки программного обеспечения.

С тех пор во многих университетах были учреждены степени бакалавра программной инженерии. Стандартная международная программа обучения программной инженерии SE2004 была определена руководящим комитетом в период с 2001 по 2004 год при финансовой поддержке Ассоциации вычислительной техники и IEEE Computer Society . По состоянию на 2004 год в США около 50 университетов предлагали степени в области разработки программного обеспечения, в которых преподаются как компьютерные науки, так и инженерные принципы и методы. Первая степень магистра программной инженерии была учреждена в Сиэтлском университете в 1979 году. С тех пор дипломы по программной инженерии стали доступны во многих других университетах. Точно так же в Канаде Совет по аккредитации инженеров Канады (CEAB) Канадского совета профессиональных инженеров признал несколько программ разработки программного обеспечения.

В 1998 году военно- морская аспирантура США (NPS) учредила первую в мире докторскую программу в области программной инженерии. Кроме того, появилось множество онлайн-ученых степеней в области программной инженерии, таких как степень магистра наук в области программной инженерии (MSE), предлагаемая на факультете компьютерных наук и инженерии Калифорнийского государственного университета в Фуллертоне . Стив МакКоннелл считает, что, поскольку большинство университетов преподают информатику, а не разработку программного обеспечения, настоящих инженеров-программистов не хватает. IEEE поручил университету ETS (École de technologie supérieure) и UQAM (Université du Québec à Montréal) разработать свод знаний по программной инженерии ( SWEBOK ), который стал стандартом ISO, описывающим совокупность знаний, охватываемых инженером-программистом.

Инженер-программист

Вакансия среднего/старшего инженера-программимста (Software Engineer Middle/Senior) открыта в Москве немецкой компанией Dicehub. Она предполагает зарплату от $4000 до $5000 (от 294,4 тыс. руб. до 368 тыс. руб. по курсу ЦБ на 28 мая 2021 г.).

Чтобы получать такие деньги, соискатель должен иметь за плечами минимум шестилетний опыт работы и минимум три года работать с Python Stack 3+. Также в список обязательных требований входят Опыт в разработке realtime/collaboration сервисов и Distributed Systems, знание СУБД PostgreSQL и MySQL на хорошем уровне.

Не обошлось и без «желательных» навыков, которые будут плюсом при выборе кандидата. Это знание C++, опыт работы с Docker, Kubernetes, Amazon Web Services, а также знание VueJs PyTorch, Tensorflow, Keras и SciKit и т. д.

Требования работодателей

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

  • творческое мышление;
  • хорошее воображение;
  • художественный вкус;
  • ответственность и самостоятельность;
  • коммуникабельность и умение работать в команде;
  • ориентированность на результат.

Что касается профессионального опыта, то необходимы знания технических требований в графике и актуальных тенденций в 3D-дизайне. Пригодится умение работать в редакторах 3dMax, Cinema 4D, Modo, Blender, LightWave. Специалист должен легко находить общий язык с заказчиками и техническим персоналом, разбираться в проектировании и моделировании. Приветствуется знание одного или нескольких иностранных языков.

Проектировщик может работать в крупной компании или напрямую с заказчиками. В первом случае ему потребуется умение сотрудничать и выполнять требования начальства

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

Обучение специальности

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

Экзамены при поступлении:

  • русский язык;
  • математика;
  • информатика.

Дисциплины профессиональной подготовки

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

Перечень основных дисциплин:

  • аналитическая геометрия;
  • математический анализ;
  • линейная алгебра;
  • теория вероятностей;
  • дискретные структуры;
  • математическая статистика;
  • физика.

Этот список дополняется профильными предметами, выбор которых зависит от направления обучения. Среди них выделяют несколько наиболее важных дисциплин. В их число входят:

  • английский язык;
  • проектирование программного обеспечения;
  • безопасность программ и данных;
  • экономика ПО;
  • компьютерная дискретная математика;
  • моделирование и анализ ПО;
  • основы программирования;
  • качество программного обеспечения.

Приобретаемые навыки

Процесс обучение программной инженерии длится 4 года. Однако студентам-заочникам придётся учиться на 1 год дольше. За это время будущие специалисты приобретут важные навыки, которые понадобятся им в работе.

Основные навыки:

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

Лучшие учебные заведения

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

Лучшие учебные заведения:

  • Национальный исследовательский ядерный университет «Московский инженерно-физический институт» (Москва);
  • Московская гуманитарно-техническая академия (Москва);
  • Национальный исследовательский университет «Московский институт электронной техники» (Москва);
  • Национальный исследовательский университет «Высшая школа экономики» (Санкт-Петербург);
  • Московский финансово-юридический университет (Москва).

Два основных мифа о профессии

Программная инженерия — сфера довольно новая, появившаяся совсем недавно. Поэтому неудивительно, что некоторые не очень хорошо проинформированные люди распространяют о рассматриваемой профессии многие слухи и мифы. Пожалуй, стоит уделить чуть большее внимания самому понятию «программная инженерия». Что это за профессия, или миф, как ее называют некоторые личности?

Собственно, утверждение, что сфера программной инженерии является «ненастоящей» — и есть первый миф о профессии. Причем опровергнуть это явно лживое утверждение будет совсем не сложно. Стоит только посмотреть список специальностей в ВУЗах, расспросить грамотных программистов, и даже просто найти нужную информацию в интернете — сразу же станет ясно, что рассматриваемая сфера вполне себе реальная и не имеющая аналогов.

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

Статистика зарплат для ‘инженер-программист’ по городам

Лидеры по количеству вакансий для ‘инженер-программист’: Москва, Санкт-Петербург, Екатеринбург, Нижний Новгород, Уфа.

Лидеры по уровню средней зарплаты для ‘инженер-программист’: Москва, Химки, Санкт-Петербург, Нижний Новгород, Новосибирск.

Обзор зарплат для ‘инженер-программист’ по городам
Населённый пункт Средняя зарплата, руб. Медианная зарплата, руб. Вакансий с зарплатой Всего вакансий
Москва 148158.0 131000.0 218 480
Санкт-Петербург 119889.0 111000.0 153 340
Екатеринбург 94647.0 79000.0 34 75
Нижний Новгород 118800.0 97000.0 20 60
Уфа 71111.0 69000.0 36 59
Новосибирск 104524.0 91000.0 21 50
Казань 70172.0 53000.0 32 50
Пермь 70667.0 65000.0 24 40
Челябинск 82059.0 67000.0 17 33
Ростов-на-Дону 83545.0 71000.0 22 31
Чебоксары 73133.0 67000.0 15 31
Краснодар 87000.0 79000.0 20 30
Омск 75000.0 67000.0 13 29
Самара 75615.0 91000.0 13 26
Воронеж 86000.0 79000.0 12 26
Томск 102111.0 79000.0 9 23
Саратов 60500.0 59000.0 16 22
Ижевск 70667.0 67000.0 12 21
Красноярск 60000.0 53000.0 12 18
Набережные Челны 56333.0 55000.0 9 18
Ульяновск 64600.0 49000.0 10 15
Тверь 96000.0 101000.0 8 15
Иркутск 54333.0 53000.0 6 14
Рязань 73545.0 79000.0 11 14
Курск 63800.0 47000.0 5 14
Пенза 66556.0 55000.0 9 13
Курган 73400.0 67000.0 10 13
Барнаул 67000.0 59000.0 5 12
Калуга 56600.0 51000.0 5 12
Владивосток 81667.0 61000.0 6 11
Белгород 66556.0 59000.0 9 11
Тамбов 72000.0 53000.0 8 11
Волгоград 39800.0 39000.0 5 10
Тюмень 77667.0 73000.0 6 10
Иваново (Ивановская область) 83667.0 73000.0 6 10
Владимир 64000.0 53000.0 8 10
Тольятти 40333.0 37000.0 6 9
Хабаровск 67667.0 49000.0 6 9
Ярославль 64333.0 41000.0 6 9
Киров (Кировская область) 39000.0 39000.0 9 9
Тула 99000.0 113000.0 6 9
Оренбург 75667.0 57000.0 6 8
Магнитогорск 89400.0 75000.0 5 8
Йошкар-Ола 57500.0 41000.0 8 8
Новокузнецк 51667.0 41000.0 6 7
Брянск 90200.0 79000.0 5 7
Орел 91800.0 91000.0 5 7
Вологда 41400.0 35000.0 5 6
Химки 135600.0 142000.0 5 6
Архангельск 52600.0 43000.0 5 5

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

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

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

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

Давайте сначала сравним виды рабочих мест и стажировок, которые вы можете пройти после каждой программы.

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

Вычислительная техника:

  • Веб-разработчик / архитектор, 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 и консультант по технологиям, которые зависят от вашего набора навыков.

Предметы по выбору

Третья, но тоже важная часть — дополнительные предметы. Темы специфичные, всем подряд скорее не нужны, но заинтересованные студенты могут попробовать их на вкус. На старших курсах таких предметов большинство: база есть, остаётся расширять кругозор в интересном студенту направлении. Взять все предметы, к сожалению, физически не хватает времени. Иногда набор курсов меняется, вот те, которые предлагались мне:

Альтернативные языки для JVM. Курс из двух модулей: в одном рассказывают про Kotlin, в другом — про Scala. Для Kotlin разбираем и Java interop, и написание своих DSL, и корутины. Последняя опциональная домашка — добавить в интерпретатор игрушечного языка (написанный в предыдущих домашках) отладчик при помощи корутин. Что же касается Scala… Язык большой, но implicit’ы всех видов разобрать успеваем 🙂

Программирование в ядре Linux. Шаг за шагом разрабатывается модуль ядра, который эмулирует виртуальное устройство хранения данных: mmap, буферы, конкурентный доступ, неблокирующий ввод-вывод. По дороге можно вспомнить прерывания и вытесняющую многозадачность из курса операционных систем и изучить внутренние структуры Linux (например, wait queue).

Компиляторы. Пишем свой компилятор микроязыка на OCaml. Промежуточная стековая машина, компиляция в x86 без всякого LLVM, интеграция с libc. Удивлённые возгласы студентов «почему у меня падает только на выражении длины сто?» (вероятно, потому что баг в аллокации регистров). Кстати, похожий курс тоже есть в Computer Science Center.

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

Построение СУБД. Внутреннее устройство баз данных. Всякие алгоритмы соединений, формальные модели, колоночные СУБД. На практике можно реализовать несколько алгоритмов поблочной обработки в игрушечной СУБД на плюсах (например, doublу-pipelined hash join).

Контейнерная виртуализация. Детальное изучение контейнеров в Linux. Namespaces и cgroups, скажем — и API, и как устроено. Всякие вспомогательные инструменты для сети. В процессе пишем свой контейнер вроде Docker, а это не так просто — надо корректно ограничить кучу всего, настроить сеть, пробросить в контейнер нужные файлы… Впрочем, высокоуровневая оркестрация на примере Kubernetes тоже рассматривается.

Что должен знать программный инженер?

Очень обширной и сложной считается профессиональная сфера, имеющая название «программная инженерия». Что это за профессия, где необходимо обладать невероятно большим запасом знаний?

Какие именно дисциплины необходимо освоить во время обучения? На эти вопросы будут даны ответы далее.

Грамотный специалист в сфере программной инженерии обязан обладать качественными знаниями в следующих научных областях:

  • Математика и инженерия.
  • Информатика, технологии и средства разработки.
  • Моделирование и его спецификации.
  • Разработка программного обеспечения.
  • Аттестация и верификация ПО.
  • Профессионально-трудовая практика.
  • Программные проекты.

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

Где можно работать?

Для человека, окончившего университет по рассматриваемой специальности, остается немаловажным вопрос о трудоустройстве.

И действительно: куда можно устроиться, имея на руках диплом по курсу «программная инженерия»? Что это за профессия? Где работать будет наиболее оптимально? На все эти и другие вопросы ответим прямо сейчас.

Для начала стоит выделить основные сферы деятельности, где может трудиться программный инженер. Сюда относятся:

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

Какую именно сферу деятельности лучше выбрать? Это решать только самому программному инженеру. Стоит внимательно рассмотреть и проанализировать все возможные варианты, и лишь потом сделать выбор.

Теперь стоит обратиться к вопросу, как проходит работа в сфере «программная инженерия».

Образование

Знание компьютерного программирования — необходимое условие для того, чтобы стать инженером-программистом. В 2004 году компьютерное сообщество IEEE выпустило SWEBOK , который был опубликован как Технический отчет ISO / IEC 1979: 2005, в котором описывается совокупность знаний, которые они рекомендуют освоить дипломированному инженеру-программисту с четырехлетним опытом работы. Многие инженеры-программисты начинают свою профессию, получив высшее образование или обучаясь в профессионально-техническом училище. Одна стандартная международная учебная программа для получения степени бакалавра программной инженерии была определена Объединенной целевой группой по компьютерным программам компьютерного общества IEEE и Ассоциации вычислительной техники и обновлена ​​в 2014 году. В ряде университетов есть программы на получение степени в области программной инженерии; по состоянию на 2010 год в Соединенных Штатах насчитывалось 244 программы бакалавриата по программной инженерии в кампусе , 70 онлайн-программ, 230 программ уровня магистра, 41 программа уровня докторантуры и 69 программ уровня сертификата.

Помимо университетского образования, многие компании спонсируют стажировки для студентов, желающих продолжить карьеру в области информационных технологий. Эти стажировки могут познакомить студентов с интересными реальными задачами, с которыми типичные инженеры-программисты сталкиваются каждый день. Аналогичный опыт можно получить во время военной службы в области разработки программного обеспечения.

Программы обучения программной инженерии

Половина всех практикующих сегодня имеет ученые степени в области компьютерных наук , информационных систем или информационных технологий . Небольшое, но постоянно растущее число практиков имеют степени в области разработки программного обеспечения. В 1987 году кафедра вычислительной техники в Имперском колледже Лондона представила первые три года разработки программного обеспечения степень бакалавра в Великобритании и мире; в следующем году Университет Шеффилда учредил аналогичную программу. В 1996 году Рочестерский технологический институт установил степень программы первого по разработке программного обеспечения бакалавра в Соединенных Штатах, однако, она не не получила ABET аккредитацию до 2003 года, в то же время , как Rice University , Университета Кларксона , Милуоки школа инженерии и Университета штата Миссисипи получил их. В 1997 году технологический колледж PSG в Коимбаторе, Индия, первым начал пятилетнюю интегрированную степень магистра наук в области разработки программного обеспечения.

С тех пор во многих университетах были учреждены степени бакалавра программной инженерии. Стандартная международная программа обучения программной инженерии SE2004 была определена руководящим комитетом в период с 2001 по 2004 год при финансовой поддержке Ассоциации вычислительной техники и IEEE Computer Society . По состоянию на 2004 год в США около 50 университетов предлагали степени в области разработки программного обеспечения, в которых преподаются как компьютерные науки, так и инженерные принципы и методы. Первая степень магистра программной инженерии была учреждена в Сиэтлском университете в 1979 году. С тех пор дипломы по программной инженерии стали доступны во многих других университетах. Точно так же в Канаде Совет по аккредитации инженеров Канады (CEAB) Канадского совета профессиональных инженеров признал несколько программ разработки программного обеспечения.

В 1998 году военно- морская аспирантура США (NPS) учредила первую в мире докторскую программу в области программной инженерии. Кроме того, появилось множество онлайн-ученых степеней в области программной инженерии, таких как степень магистра наук в области программной инженерии (MSE), предлагаемая на факультете компьютерных наук и инженерии Калифорнийского государственного университета в Фуллертоне . Стив МакКоннелл считает, что, поскольку большинство университетов преподают информатику, а не разработку программного обеспечения, настоящих инженеров-программистов не хватает. IEEE поручил университету ETS (École de technologie supérieure) и UQAM (Université du Québec à Montréal) разработать свод знаний по программной инженерии ( SWEBOK ), который стал стандартом ISO, описывающим совокупность знаний, охватываемых инженером-программистом.

дальнейшее чтение

  • Руководство к своду знаний по программной инженерии (SWEBOK Guide): Версия 3.0 . Пьер Бурк, Ричард Э. Фэрли (ред.). Компьютерное общество IEEE. 2014. ISBN. 978-0-7695-5166-1.
  • Прессман, Роджер S (2009). Программная инженерия: подход практикующего (7-е изд.). Бостон, Массачусетс: Макгроу-Хилл. ISBN 978-0-07-337597-7.
  • Брюгге, Бернд ; Дютуа, Аллен (2009). (3-е изд.). Прентис Холл. ISBN 978-0-13-606125-0.
  • Ошана, Роберт (21.06.2019). Программная инженерия для встроенных систем: методы, практические приемы и приложения (второе изд.). Кидлингтон, Оксфорд, Великобритания. ISBN 978-0-12-809433-4.

Computer science

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

  • математические основы

  • математическая логика

  • булева логика

  • информационная безопасность

  • теория основ баз данных

  • теория языков программирования и т.д.

Образование

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

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

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