Специальность 231000 Программная инженерия (Software engineering)

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

  1. Прежде всего, не хватает java. Не java в смысле языка программирования или же виртуальной машины, а java в смысле JavaEE (она же J2EE). Как язык программирования Java, безусловно, полезна, но самое интересное начинается, когда речь заходит о серверах приложений (application server). Я не знаю, какое будущее ожидает Java Enterprise Edition, но не сомневаюсь в том, что это самое ощутимое настоящее современной нам программной инженерии.
  2. Интернет и сети передачи данных присутствуют практически во всех программах и это хорошо. Знание ADSL и PPP еще никого не испортило. Но что-то подсказывает мне, что учить будущих специалистов надо не семиуровневой модели и не протоколам ниже IP, а протоколам выше TCP. С проводами и радиоинженеры разберутся, а программный инженер должен представлять что такое ietf.org и чем stateless протокол отличается от stateful. В деле интеграции приложений пригодится. Туда же SOAP, WSDL и прочие творения OASIS и W3C. Даже как-то обидно, что ВУЗы забыли про интеграцию приложений. Вот CORBA-у уже, наверное, можно не читать, они бы еще COBOL вспомнили, а без протоколов взаимодействия приложений инженеру никак нельзя. Он же не какой-нибудь там программер 🙂
  3. Еще про старину. Что-то я lex-ов и yacc-ов ни у кого в учебных программах не обнаружил (почти ни у кого). Наверное, созданием компиляторов программные инженеры заниматься не будут, но интерпретатор хотя бы раз в жизни им наверняка разработать придется. Ну и как же это сделать без синтаксических и лексических анализаторов. А еще, не вижу Дональда Кнута, хотя бы третьего тома «сортировка и поиск». Но ведь должен же быть, наверняка я что-то невнимательно прочитал. Вот про юзабилити практически у всех что-то написано, а Кнута не видно.
  4. Про методологию разработки ПО – отдельный вопрос. Что-то мне подсказывает, что управления требованиями и навыки аттестации ПО не заменят будущему специалисту опыта работы в опенсорсном проекте в стиле agile.
  5. И в завершении, конечно архитектура информационных систем.  Причем архитектура не в смысле красивых картинок, а архитектура в смысле проектирования ИС: API для plugin-ов и extension-ов, конфигурации и т.п. На работе такому не научат по экономическим соображениям, т.к. чем больше хардкода, тем больше новых требований по доработке.  Потому строка Макаревича: “Нас всех обучили секрету созданья гармонии в мире…» как раз и обращена к ВУЗу

Ну а вообще, это здорово, что в ВУЗах появилась такая специальность

 
Похожие записи: