edgeways.ru
Список форумов
Полигон (архив)
Обсуждение вопросов эволюционного обществознания 
Верхнее образование инженеров-программистов
Аватарка Пользователь: edge (IP-адрес скрыт)
Дата: 23, June, 2011 06:46

[ailev.livejournal.com]

Мой вариант курсов для ВУЗовского образования по специальности "программная инженерия" (характеристика этих курсов даётся в каждом "кумулятивно", т.е. очень грубо считаем, что эти курсы проходятся последовательно, а не "вперемешку" и умения накапливаются от курса к курсу):

1. Грунтовка мозга: подготовка "думателя"
-- английский язык
-- дискретная математика, классическая логика
-- философская логика (и совсем чуть-чуть философии)
-- лингвистика
-- формальные семантика и прагматика в объеме, чтобы свободно читать теоретические статьи по computer science.

После этого курса выходят очень умные, полностью бесполезные в любом деле люди. Зато их можно потом легко обучить многим и многим профессиям, ибо они после этого курса "быстро схватывают".

2. Предметная ориентация: подготовка "учёного программиста" (computer science)
-- парадигмы программирования и языки программирования
-- моделирование данных (от реляционок до онтологий, от XML до ISO 15926)
-- алгоритмика (методом Кнута без пряника, но не чураясь параллельности)
-- как устроены компиляторы, интерпретаторы, виртуальные машины, моделлеры и прочие редактирующие и исполняющие среды -- в объеме, позволяющем ориентироваться в том, что пишут в рассылке FONC, на сайте Lambda Ultimate, а также примерно понимать, как устроены системы типа помянутых в [www.languageworkbenches.net]

Эти люди могут побеждать в олимпиадах по программированию, читать лекции в университетах, но к работе по специальности "программная инженерия" совершенно не приспособлены (ибо у них нет в лексиконе слов "требования", "архитектура", "методология разработки" и т.д.) -- то есть "придумывать алгоритмы умеют, а работать не умеют".

3. Профессиональная ориентация: инженерные компетенции:
-- системный подход, инженерный метод (работа с эвристиками)
-- ситуационная инженерия методов, методологии разработки
-- технические практики системной инженерии (инженерия требований, инженерия системной архитектуры и т.д.): не для "чисто программных систем" (таких нет), а сразу для социотехнической системы, киберфизической системы и т.д.,
-- особенности программной инженерии: методологии разработки (в ассортименте: RUP, SCRUM и все-все-все, понятие о devops etc.), архитектура и моделирование, методы тестирования, методы версионирования и управления конфигурацией, продуктные линии и т.д.. Фишка в том, что это одна строчка в программе, т.е. учить нужно отнюдь не только этому! Всё это дается как "специализация" для практик системной инженерии.

После этого курса выходит инженер-программист ("умеет программировать"), не ориентирующийся в жизни. Он хорошо решает поставленную ему узкую программистскую задачу, но у него нет знаний о том, как устроено производство -- поэтому он постоянно решает ненужные задачи, и не решает нужные ("программировать умеет, программирует всё время что-то не то"). Поэтому требует мелочного внешнего управления.

4. Инженерный менеджмент (как устроено производство)
-- праксеология (формальный анализ человеческой деятельности)
-- enterpise engineering (организационные модели + change management)
-- управленческий учёт
-- проектное управление в связи с методологиями разработки
-- работа с живыми людьми (aka "лидерство")

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

Время такого образования -- входное условие (например, 4 года), а вот уровень квалификации выпускника существенно зависит от методики (т.е. выбранных наборов упражнений -- по моей оценке, ежели учить "правильно", т.е. учить тщательно подобранными упражнениями для предварительно отмоделированных мыслительных операций, то получается обычно впятеро быстрее, чем если учить "традиционно").
* * *
Понятно, что у меня есть собственное понимание, что такое "инженер-программист" (не только теоретическое, но и практическое: у меня многолетний рабочий стаж и программиста-теоретика, и инженера-программиста, и менеджера программистского коллектива, и многолетний стаж работы в проектах, где айтишные задачи представляют только часть работы).

Для понимания моего подхода полезно также ознакомиться с другими моими материалами по общему верхнему образованию:
-- программа общего верхнего образования: [ailev.livejournal.com] (июль 2010)
-- тезисы к Программе общего верхнего образования: [ailev.livejournal.com] (август 2010)
-- оценки времени верхнего образования: [ailev.livejournal.com] (октябрь 2010)
-- системная инженерия верхнего образования [ailev.livejournal.com] (февраль 2011)


(tu): Pirx, nekto

Перейти: <>
Опции: ОтветитьЦитировать

Тема Написано Дата
Верхнее образование инженеров-программистов(tu)(tu) edge 23.06.2011 06:46


Ваше имя: 
Ваш email: 
Тема: 
Smileys
...
(loading smileys)
Незарегистрированный пользователь должен ввести код, чтобы публиковать сообщение. Действителен только последний показанный код.
Введите код:  Картинка
В онлайне

Гости: 151

This forum powered by Phorum.

Large Visitor Globe