Молоді спеціалісти, в тому числі і я, часто захоплюються різними титулами, хочуть ці титули мати. Титул, чи посада "Архітектор ПЗ" є особливо омріяною. Хоча я не думаю, що архітектором буди краще чи престижніше, ніж кодувальником чи тестувальником, все ж архітектура є для мене найцікавішою галуззю знань в програмній інженерії. Однак чи ж інженерією є розроблення програмного забезпечення? Кількість дискусій на дану тему зростає, що змушує задуматися. Погляньте лише на розмах маніфесту програмних ремісників. І якщо інженерія програмного забезпечення не інженерія, то архітектуру освоїти з книжок або в університеті неможливо... З цього приводу хочу навести уривок з інтерв'ю Франка Бушмана (програмного інженера з Siemens) для Software Engineering Radio (епізод 54).
Міхаель: Як людина може стати успішним архітектором?
Франк: Тут я процитую свого наставника: нехай працюють над складними проблемами. Не починайте навчати програмній інженерії, або програмній архітектурі використовуючи маленькі приклади (завдання). Студент або початківець може вирішити їх за допомогою будь-якої технології, а тому не побачить їх переваг та недоліків. Але якщо студент працює над складними проблемами, які важко розв'язати, він в результаті може усвідомити переваги та внесок різних технологій. А ще практика, практика, практика, практика... Я розглядаю інженерію програмного забезпечення не як інженерну дисципліну, і навіть не як мистецтво, а як ремесло. А ремісник потребує практичного досвіду (очевидно, що передається від майстра до учня, який спостерігає за тим, як працює майстер та допомагає йому) та дискусій з іншими ремісниками.
Однак хіба усі сучасні 100% інженерні дисципліни (наприклад, електрика, механіка) відразу були інженеріями? Хоча практика, практика, практика - це, безперечно, дуже важливо, стати успішним архітектором без серйозної теоретичної підготовки, на мій погляд, дуже складно, адже накопичених важливих знань з архітектури програмного забезпечення сьогодні дуже і дуже багато.
Однак хіба усі сучасні 100% інженерні дисципліни (наприклад, електрика, механіка) відразу були інженеріями? Хоча практика, практика, практика - це, безперечно, дуже важливо, стати успішним архітектором без серйозної теоретичної підготовки, на мій погляд, дуже складно, адже накопичених важливих знань з архітектури програмного забезпечення сьогодні дуже і дуже багато.
це означає, що ви дасте нам важкі серйозні проекти в цьому семестрі? :)
ВідповістиВидалитиЯ би хотів, та є дві перешкоди: 1) більшість студентів будуть шоковані 2) проекти нікому буде реалізовувати, тобто результати проектування у вигляді готової системи отримати неможливо.
ВідповістиВидалитиТому теорія, теорія, теорія. А кому сподобається, матимете потенціал...
Хм, тоді с ваших слів можна зробити висновок щодо навчання в университеті, чи не так? Краще іти працювати зразу ніж мати диплома, який нічого не вартий? А знання які отримують люди в університеті, до чого їх можна прирівняти? Чим майбутній студент закінчивший університет, на цьому факультеті буде відрізнятися від звичайної дюдини яка зразу піде працювати? Які переваги?
ВідповістиВидалитиНа співбесіді роботодавець перевіряє не диплом всежтаки а знання!
Підмайстри чоботаря чи крамаря, до прикладу, аж ніяк не закінчували університету для того, аби почати працювати з майстром. Так само індустрія розробки програмного забезпечення переповнена колишніми підмайстрами, які не мали відповідної освіти і усього навчились у майстра. Вони ж і проводять співбесіди, і цінують уміння вирішувати примітивні завдання, а про, скажімо, фундаментальні принципі інженерії програмного забезпечення можуть і не запитати, оскільки й самі їх не знають. Чим не ремісництво? Тому так, краще одразу йти працювати. Однак галузь не стоїть на місті, і на мій погляд, поріг входу до неї стає все вищим. Переконаний, що настане час (не більше 5-10 років), коли без відповідної освіти аж ніяк на роботу не візьмуть. Поглянемо, для прикладу, на розробку на основі моделей, парадигму, яка на заході набирає обертів. Для того, щоб бодай щось розробити, необхідно добре розуміти що таке архітектура програмного забезпечення, компоненти, що таке мова програмування, її синтаксис, семантика, що таке абстрактне синтаксичне дерево, модель, мета-модель, генератори коду, кінцевий автомат і т.д. Примітивну роботу, що її нині роблять армія програмістів та тестувальників, виконуватимуть автомати. Тому зараз переваг небагато, хіба що можна сказати що знаєш рефакторінг та патерни проектування — це, як правило, подобається тим, що співбесіди проводять. Однак молоді працювати доведеться не лише зараз, а й найближчі 40 років, і до цього ніхто крім університету не підготує.
ВідповістиВидалитиЦитирую:
ВідповістиВидалити"Я би хотів, та є дві перешкоди: 1) більшість студентів будуть шоковані 2) проекти нікому буде реалізовувати, тобто результати проектування у вигляді готової системи отримати неможливо."
Если у преподавателя есть желание, он всегда найдет возможность воплотить свои идеи вместе со студентами. И, мое мнение, современных студентов трудно напугать. Я, например, в качесве эксперемента создавала со студентами работающие системы, используя при этом все то, что мы с ними изучали в области программной инженерии.
По-этому, Александр, все завист только от ВАС
С ув.Марченко Елена
Таку систему, щоб працювала, можна доволі легко зі студентами зробити. Але НЕМОЖЛИВО реалізувати проект, скажімо веб браузера, архітектуру якого студент МОЖЕ спроектувати на лабораторних роботах.
ВідповістиВидалитиЯ вважаю, що все залежить не тільки від Олександра, а ще й від бажання студента. Якщо у студента аж очі горять від того, що він написав, то з нього буде толк, а, якщо він ставиться до цього просто так, то й толку буде мало!
ВідповістиВидалитиС Александром согласен. Невозможно в рамках лабораторных работ реализовать проект. Во-первых не стоит забывать что у студента кроме данного проекта ещё целая куча разнопрофильных задач. Конечно можно сказать красивую фразу "Хороший студент всё успевает!" , но как правильно это только фраза. У любого человека в сутках ровно 24 часа и вероятно что для достижения поставленной задачи он будет чем-то жертвовать или собственным сном(т.е. здоровьем) или универскимим предметами 9т.е. знаниями).
ВідповістиВидалитиВообще наша система образования абсолютно не предназначена для практических реализаций идей.... к огромному сожалению. И в данном случае если у преподавателя есть практический опыт разработки систем, то было бы очень хорошо, чтоб они им делился со студентами. Если практик расскажет дилетанту в какую сторону смотреть чтоб не допустить ошибок, какие книги читать, а какие пропускать, как определять проблемные области, каким инструментарием пользоваться для проектирования систем то этого вполне достаточно чтоб студент по завершению обучения смог затратить меньше времени на поиски и приступить непосредственно к самостоятельной адаптации к рабочему процессу.