Еще будучи студентом, особенно на последних курсах, я часто ловил себя на мысли, что тот или иной предмет мне совершенно не интересен и никак не помогает мне стать хорошим программистом. Это усугубилось тогда, когда на 4м курсе пошел работать программистом и где-то почти год я только и делал, что учился работать программистом. Не могу себя назвать отличником, скорее наоборот, но так или иначе институт (ИТМО в Питере, кафедру Парфенова) я закончил, получив магистра математики.
Большинство из моих коллег-студентов также как и я к шестому курсу уже работали программистами в разных IT-компаниях. Дипломы у нас почти все были про всевозможные информационные системы, порталы, базы и так далее. Однако дипломная комиссия каждого, кто защищал подобный диплом, спрашивала: «Где здесь математика? Вы же готовитесь стать магистром математики!». Думаю, вам не нужно объяснять, что в большинстве случаев ответить на этот вопрос было очень сложно. Некоторые, как например я, нарочито придумывали, прикручивали, допиливали, чтобы хоть какие-то формулы в презентации фигурировали, но возникает вопрос, почему?
Почему я не могу в нашей стране пойти учиться и получить магистра компьютерных наук, защитить диссертацию и стать кандидатом или доктором компьютерных наук? Вы скажите, что все это математика? Приведу пример Идеального Высшего Учебного Заведения для Программистов. Предлагаю всем, кому интересна эта тема, поучаствовать в добавлении факультетов.
Итак:
Факультеты и кафедры:
1. То, что в мире называется Computer science
a. Алгоритмы
b. Архитектуры приложений (ООП/ООД/АОП, тут же паттерны, UML и пр.)
c. Дискретная математика, информатика (как наука), всевозможные САПР
2. Системное программирование
a. Операционные системы и драйвера
b. Компиляторы, формальные грамматики и пр.
c. Искусственный интеллект (Нейро-сети, генетика, мат-лингвистка)
3. Компьютерной графики
a. Игры
b. Математическое/иммитационное моделирование
4. Системного администрирования
a. Тут я не очень силен, но уверен, что на несколько кафедр хватит. Например, Unix и Windows
5. Управления (Менеджмент в IT)
a. Методологии и процессы
b. Управления качеством (QA, testing etc.)
6. Web-программирования
a. Можно поделить на скриптовые языки типа PHP, perl и на .net/java – но это, как вариант
7. Баз данных
8. Маркетинг, PR, социология (не придумал название)
Понятно, что не все кафедры будут выпускающие, но там будут работать и учить студентом люди, которые реально болеют этим направлением, пишут статьи, участвуют в конференциях. Студенты даже из других кафедр и факультетов буду случать их лекции, просто в разном объеме. Так же, уверен, что без базовых матана, линейки, функана, диффур, и теорвера тоже никуда, но все-таки цель выучить настоящего программиста.
P.S. Еще в советское время, выпускник-инженер из ВУЗа котировался, порой, выше опытных инженеров, так как знание у выпускника более современные. Сейчас студент, проработавший пару лет в индустрии, может спокойно быть наставников кандидата технических наук, который учился, старался, но времени на работу не было.
P.P.S. ППНХ. Спасибо за внимание.
Большинство из моих коллег-студентов также как и я к шестому курсу уже работали программистами в разных IT-компаниях. Дипломы у нас почти все были про всевозможные информационные системы, порталы, базы и так далее. Однако дипломная комиссия каждого, кто защищал подобный диплом, спрашивала: «Где здесь математика? Вы же готовитесь стать магистром математики!». Думаю, вам не нужно объяснять, что в большинстве случаев ответить на этот вопрос было очень сложно. Некоторые, как например я, нарочито придумывали, прикручивали, допиливали, чтобы хоть какие-то формулы в презентации фигурировали, но возникает вопрос, почему?
Почему я не могу в нашей стране пойти учиться и получить магистра компьютерных наук, защитить диссертацию и стать кандидатом или доктором компьютерных наук? Вы скажите, что все это математика? Приведу пример Идеального Высшего Учебного Заведения для Программистов. Предлагаю всем, кому интересна эта тема, поучаствовать в добавлении факультетов.
Итак:
Факультеты и кафедры:
1. То, что в мире называется Computer science
a. Алгоритмы
b. Архитектуры приложений (ООП/ООД/АОП, тут же паттерны, UML и пр.)
c. Дискретная математика, информатика (как наука), всевозможные САПР
2. Системное программирование
a. Операционные системы и драйвера
b. Компиляторы, формальные грамматики и пр.
c. Искусственный интеллект (Нейро-сети, генетика, мат-лингвистка)
3. Компьютерной графики
a. Игры
b. Математическое/иммитационное моделирование
4. Системного администрирования
a. Тут я не очень силен, но уверен, что на несколько кафедр хватит. Например, Unix и Windows
5. Управления (Менеджмент в IT)
a. Методологии и процессы
b. Управления качеством (QA, testing etc.)
6. Web-программирования
a. Можно поделить на скриптовые языки типа PHP, perl и на .net/java – но это, как вариант
7. Баз данных
8. Маркетинг, PR, социология (не придумал название)
Понятно, что не все кафедры будут выпускающие, но там будут работать и учить студентом люди, которые реально болеют этим направлением, пишут статьи, участвуют в конференциях. Студенты даже из других кафедр и факультетов буду случать их лекции, просто в разном объеме. Так же, уверен, что без базовых матана, линейки, функана, диффур, и теорвера тоже никуда, но все-таки цель выучить настоящего программиста.
P.S. Еще в советское время, выпускник-инженер из ВУЗа котировался, порой, выше опытных инженеров, так как знание у выпускника более современные. Сейчас студент, проработавший пару лет в индустрии, может спокойно быть наставников кандидата технических наук, который учился, старался, но времени на работу не было.
P.P.S. ППНХ. Спасибо за внимание.