Форма обучения:
дистанционная
Стоимость самостоятельного обучения:
бесплатно
Доступ:
свободный
Документ об окончании:
 
Уровень:
Для всех
Длительность:
7:19:00
Студентов:
748
Выпускников:
162
Курс является практическим сборником информации, которая необходима для комплексного понимания сути специальности программной инженерии и направлена на формирование знаний, требуемых для отработки навыков, способствующих успешному профессиональному старту.
 

План занятий

Занятие
Заголовок <<
Дата изучения
Лекция 1
1 час 24 минуты
Замысел. Посвящение и благодарности
Здравствуйте, уважаемые коллеги! Мы начинаем увлекательное путешествие в сферу профессиональной деятельности, которая называется "программная инженерия". О "Главе 1" — программные инженеры в шутку начинают отсчет при запуске любой активности с "0", а не с "1". Они — непростой, но очень пытливый и интересный народ, который стремится все в своей профессиональной деятельности конкретизировать, а после чего с блеском решить любой вопрос или задачу. Эта особенность имеет определенную природу возникновения и последствия, которые отражаются на всем, за что они берутся. Программная инженерия — это именно инженерия, а не наука или область академических знаний, и требования по ее использованию формируют однозначные и достаточно большие ожидания. У программных инженеров нет возможности подолгу разбираться в запутанных и комплексных проблемах заказчиков. Они должны, используя методы и инструменты своего ремесла, сформировать четкое и ясное представление о том, что явится результатом их деятельности и в какие сроки его можно будет достичь. Цель программной инженерии состоит в накоплении, систематизации и последующем использовании информации, необходимой для быстрой и качественной разработки эффективного программного обеспечения. Более формальное и строгое определение программной инженерии звучит так: Программная инженерия (англ. software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения, а также к исследованию этих подходов. Если выразиться более абстрактно и универсально, то программная инженерия — это приложение дисциплины инженерии к созданию программного обеспечения. Формальное определение инженерии, в свою очередь, звучит следующим образом: Инженерия (инженерное дело) — область человеческой интеллектуальной деятельности, дисциплина, профессия, задачей которой является применение достижений науки, техники, использование естественнонаучных законов и ресурсов для решения конкретных проблем, целей и задач человечества. Инженерное дело реализуется путем применения научных знаний и практического опыта (инженерные навыки, умения) с целью создания (в первую очередь проектирования) полезных технологических и технических процессов и объектов, которые реализуют эти процессы. Основные цели любой инженерной деятельности — создание и поэтапное усовершенствование технических приспособлений, отслеживание их результативного и бесперебойного функционирования. На плечи инженеров ложится не только необходимость спроектировать, собрать и испытать изобретение или продукт, но и сопроводить процесс его эксплуатации. Все, что обычно делают инженеры, связано с поддержанием полного цикла работы информационного продукта. Инженеры — это своего рода изобретатели. Их предназначение — облегчать жизнь и труд с помощью механизмов, оптимизированных принципов функционирования сложных изделий, максимизировать результаты, полученные путем использования создаваемых ими аппаратов, программ, удовлетворять нужды владельцев технических изделий, информационных систем, сервисов и автоматизированных ими процессов. В современном мире сложно найти категории производства, социальной и общественной жизни, в которых обошлось бы без непосредственного участия инженеров или без продуктов, разработанных ими. И с каждым годом потребность в этих специалистах растет. В инженерах нуждаются самые разные предприятия. Без них не обходятся R&D, аналитические, проектировочные, разработческие и другие направления деятельности. Современный мир пришел к необходимости специализации ранее универсальных сфер деятельности, поэтому появилось множество профессий, которые по своей сути являются различными подактивностями профессии инженера. Намеченная тенденция к универсализации будет только усиливаться. Это связано прежде всего с анализом, синтезом возрастающего количества данных и управлением ими. Эти данные человечество начало собирать для исследования собственной природы и предпочтений, поэтому ему необходимы более качественные продукты и сервисы, каждый из которых предназначен для определенной целевой аудитории и решает четко поставленную задачу. Программные инженеры реагируют на это постоянным выделением отдельных активностей, ранее являвшихся составной частью инженерии. Перечислим основных современных специалистов (их классификация, конкретизация их навыков и выполняемых ими действий будут изложены далее), каждый из которых решает задачи в своей профессиональной области, но при этом может иногда заменить коллегу из смежной активности. Аналитики Основная задача специалистов этой области состоит в исследовании определенной проблемы, задачи, ее формализации в понятном для последующего решения виде. Архитекторы Задача этих специалистов — разработка ряда вариантов высокоуровневых алгоритмов различной степени сложности и последующее соединение наиболее успешных из них в единое организационно-информационное решение, удовлетворяющее нуждам ключевых пользователей. Разработчики Эти специалисты занимаются непосредственной реализацией необходимых алгоритмов в виде надежно функционирующего продукта, удовлетворяющего первоначально выявленным требованиям к проблемам предприятия, пользователей или определенной сферы деятельности в определенных условиях его использования. Тестировщики Специалисты по тестированию выполняют выверку между первоначально зафиксированными на стадии анализа требованиями и полученным после стадии разработки инкрементом (промежуточным самодостаточным для использования результатом), сверяют его корректность и подтверждают, что внесенные изменения в функционирующий продукт не нарушили его целостности. Администраторы информационных систем Задача этих специалистов заключается в обеспечении и поддержании инфраструктуры, необходимой для осуществления рабочих процессов разработчиков и пользователей. Руководители производственных подразделений Эти сотрудники должны четко и экспертно организовать работу большого коллектива, запустить единый эффективно функционирующий процесс с определенными метриками производительности, поддерживающими достижение целевых показателей разрабатываемого продукта. Программный инженер высокой квалификации — это тот, кто в равной мере и достаточно эффективно сможет выполнять любую из перечисленных работ. Для этого необходимо представлять себе полный, "сквозной" процесс программной инженерии и стремиться к обучению, самообучению, развитию профессиональных навыков в каждом из перечисленных профессиональных доменов. Без понимания того, какие практические действия совершает каждый из перечисленных специалистов на своем рабочем поприще, не сложится комплексного и объективного понимания значимости каждой профессии и ее влияния на конечный результат. Как вы уже поняли, в этом курсе мы сконцентрируемся именно на программной инженерии. Ну что же, начнем…
Оглавление
    -
    Лекция 2
    1 час 36 минут
    Введение
    Продолжим наше знакомство с миром программной инженерии. В Главе 1 мы обсудили основные, фундаментальные моменты, работа над которыми должна лежать в основе каждой инженерной деятельности. А в этой главе поговорим о том, чем должен сопровождаться профессиональный путь программного инженера. Программный инженер — не просто специализированный работник, осуществляющий свою деятельность по однозначному и непротиворечивому регламенту, а специалист, успешность и востребованность которого будут зависеть в том числе и от того, насколько осознанно и системно он работает над своим профессиональным кругозором, поддерживающим его основную задачу — создание востребованных программных продуктов. Инженеру важно быть самоорганизованным, инициативным, прозорливым, уметь адаптироваться к уже выстроенным или выстраивающимся рабочим процессам, которые будут формировать его рабочий фреймворк, его профессиональное окружение. Обо всех этих аспектах мы и будем говорить в главе 2 . Начнем с описания качеств, над которыми программному инженеру нужно будет работать на протяжении всего профессионального пути. Более того, как мы увидим в конце этого курса, именно эти качества являются залогом успеха в этой профессии.
    Оглавление
      -
      Тест 1
      21 минута
      -
      Лекция 3
      52 минуты
      Базовые знания и навыки
      В этой главе мы поговорим о том, какими навыками и знаниями необходимо обладать программному инженеру, чтобы быть не только профессиональным и компетентным, но и достаточно восприимчивым к развитию и совершенствованию новых навыков, необходимых для создания успешных эффективных информационных продуктов. Каждый профессионал начинает трудовую деятельность еще тогда, когда закладывает базис знаний на уровне школы, высшего учебного заведения и своих первых рабочих проектов. И очень важно, чтобы эти фундаментальные знания были основательными и глубокими. Это позволит сформировать основу, применимую к любым типам проектов, которые постепенно будут появляться в арсенале программного инженера. Что ж, приступим
      Оглавление
        -
        Тест 2
        21 минута
        -
        Лекция 4
        48 минут
        Компьютерная грамотность/
        В этой главе мы подробно поговорим о таких аспектах подготовки программного инженера, как изучение и использование горячих клавиш, системная работа над ошибками, о смысле изучения программирования и постараемся предостеречь от наиболее популярных ошибок, которые делают инженеры-новички. Также мы сделаем выводы о том, какие качества и навыки нужно развивать программному инженеру, чтобы стать настоящим профессионалом, который может эффективно работать в своем направлении или над своим продуктом. Грамотность и виртуозность при обращении с компьютером, владение программным обеспечением — ядро деятельности программной инженерии. То, насколько глубоко программный инженер знает и понимает свои рабочие инструменты, умеет ими разносторонне пользоваться, определяет уровень его мастерства. Без понимания всех возможностей используемого инструментария программный инженер всегда будет придерживаться лишь понятного и привычного ему способа работы. Постепенно это приведет его к косности, односторонности, субъективности, а порой даже к тому, что, меняя рабочий продукт или область деятельности, инженер, находясь в плену своих старых рабочих привычек, станет заложником принятых предпосылок, ограничений, рамок. А это — "медленная смерть" в такой инновационной деятельности, как разработка программного обеспечения, которая предполагает изменение подходов к работе практически каждый день. Как же постараться не допустить этого?
        Оглавление
          -
          Тест 3
          21 минута
          -
          Лекция 5
          1 час 15 минут
          Soft skills
          В этой главе мы поговорим о фундаментальных навыках, которые помогут программному инженеру эффективно взаимодействовать в команде. Ведь работа в одиночку в современном мире возможна только в случае проектов, которые не отличаются масштабностью и инновационностью. Любой, кто хочет стать востребованным программным инженером, обязательно будет искать возможность работы в крупных и важных проектах, где нужно уметь эффективно выстраивать взаимоотношения с рабочей командой: коллегами, клиентами, руководством и пр. При командной работе программный инженер, помимо умения программировать, анализировать, тестировать и прочее, должен обладать и другими важными навыками: Слышать мнение коллег. Корректно и последовательно доносить до них свою точку зрения. Принимать компромиссные решения, приемлемые для всех заинтересованных сторон. Организовывать свою и командную работу по разным активностям. Обучать менее опытных и учиться у более опытных. Все это поможет вам успешно работать в сложных проектах. Развитие навыков взаимодействия (еще их принято называть "гибкими навыками") определяет эффективное участие в рабочем процессе и высокую командную производительность. Эти навыки являются "сквозными", не связанными с какой-то конкретной предметной областью. Гибкие навыки (soft skills) становятся все более востребованными в условиях технического и технологического прогресса, динамично меняющейся среды, когда на первый план выходит умение приспосабливаться. Именно о том, как системно заниматься развитием soft skills, что делать для того, чтобы это развитие было неразрывно связано с успешной практической деятельностью, мы и будем говорить в этой главе.
          Оглавление
            -
            Тест 4
            21 минута
            -
            1 час 40 минут
            -