Здравствуйте, дорогие читатели !
Этот топик-ответ на недавнюю статью о получении IT специальности в ВУЗе.
Первой моей реакцией на этот пост был комментарий, в котором я попытался уточнить географическое положение рассматриваемых Высших Учебных Заведений. Что удивительно, помимо ответа на мой комментарий на хабре, несколько человек ответило мне в Facebook'e (у них пока что нет инвайтов), а товарищ quicksdk попросил меня рассказать в том же ключе о University of British Columbia.
Так сложилось, что я учусь в канадском университете на компьютерной специальности и уже около года работаю разработчиком (фрилансером). В связи с малым опытом работы и с тем, что я закончил всего один год обучения на бакалавриате, я не позиционирую свое мнение, как единственно правильное. Однако кому-нибудь эта статья может оказаться интересной.
Позволю себе процитировать уважаемого mattheus:
Дальше будет много букв и ни одной картинки. Кому еще интересно — прошу под кат.
Когда стоит идти учиться на IT-ника?
Не нужно всем ломиться в IT, лучше найдите дело, которое действительно вам в радость, а не следуйте моде или давлению родителей.
Абсолютно согласен с этим утверждением. Примерно 70% людей, которые учатся на программиста в UBC (и с которыми я общался), в итоге просто хотят найти себе работу по специальности. То есть во время учебы в университете единственное что они создавали — это учебные проекты, необходимые для того, чтобы закончить курс; и ничего более. Попробовать себя можно: для этого в UBC есть специальный курс (CPSC 110), который может взять любой студент, как электив. Но если у Вас нет тяги к программированию, и не появилось ее после этого курса, Ваше призвание в другом. Поверьте, Computer Science это не так просто — поэтому в UBC почти за все компьютерные курсы дают 4 кредита, а не 3, как обычно.
Чему же все-таки учит институт?
Из моего опыта работы, знания полученные в институте это лишь 3-5% того, что нужно знать и в зависимости от специализации может 70-95% того, что вы проходили в институте вам не пригодится или пригодится лишь косвенно.
Я честно не знаю, как обстоят дела в России, но в UBC на первом курсе можно было выучить Java и Python на достаточно хорошем уровне для того, чтобы начать фрилансить. Основы ООП и функционального программирования, интересные подходы к структурам, многие тонкости работы с IDE — все это я постиг именно в университете.
Стоит заметить, что мой основной профиль — это Objective C, никак не Java; и Objective C я выучил самостоятельно. Однако, благодаря тому, что я узнал за университетской скамьей, я начал активно использовать возможности рефакторинга, мое
С другой стороны, работая фрилансером, я почти никогда не применял Java, зато различные шаблоны программирования, изученные в университете, сильно облегчили мне работу на Objective C.
Насколько знания, полученные в ВУЗе глубоки?
ВУЗ является продолжением школы. Нет никакого скачка в качестве и глубине излагаемого материала. Как в школе изучаются простенькие основы главных направления знания, так и в ВУЗе вам расскажут те же простенькие основы, может чуть более узконаправленные в контексте вашей специальности.
В первый год — да, скачка никакого нет: все поверхностно. Однако, по рассказам выпускников, 2-4 года в UBC дают гораздо более глубокие знания (как минимум, глубокое изучение C).
Тут сказывается формат обучения: за короткое время для широкой и разношерстной аудитории ну ни как не получится углубиться в какое-то направление. За 2 часа лабораторной работы ну никак нельзя написать сколь либо сложную программу или законченный продукт в рамках курсового проекта.
Опять же, не знаю, как обстоят дела в России; но в UBC на Computer Science факультете убивается безумное количество времени именно на обучение. Помимо работы над проектами (25+ часов), есть и Co-op программы. А это погружение в рабочую среду на полные 3 семестра (работа на полную ставку в EA, Microsoft, Google, Facebook, etc.)
Если выбранная специальность не является вашим увлечением и вы ничего не делаете дома «для себя», то на выходе из института из вас получится нулевой специалист.
Здесь со всем согласен. Из песни слов не выкинешь.
Большинство преподавателей — плохие специалисты.
Да, именно так. <...> Честно ответьте себе на вопрос: почему те, кто вас учат работают в университетах, бюджетниками, на своих небольших зарплатах? Потому что они не могут претендовать на квалифицированные должности в IT индустрии, им не хватает ни опыта, ни квалификации.
Нет, это не так. Большинство профессоров в UBC CS работают преподавателями в свободное время от своих исследований. Университет это в первую очередь — исследовательская база. Насколько я знаю, на AI в нашем университете выделяют большие деньги и многие профессора трудятся именно в этом направлении. Я лично общался с человеком на кампусе, который одним из первых создал роботов, автономно играющих в футбол.
Старшее поколение преподавателей это как правило те, кто когда-то при союзе работал в смежных областях а с его развалом хоть как-то устроился близко к специальности. Они что-то «знали» (когда работали) и эти знания такие же древние, как и времена когда развалился союз. Хорошо, если кому-то из них было интересно разобраться в чем-то новом, но большинство просто прочитали толстую книжку по своему предмету, которую пересказывают вам.
В UBC просто так преподавателем не попасть. Все преподаватели разрабатывали что-то стоящее. Например, мой учитель по CPSC 121 был одним из разработчиков Magic Box — великолепной песочницы для обучения основам работы с микроконтроллерами; а один из учителей CPSC 110 был одним из создателей языка Racket.
Любой вопрос сверх излагаемого материала — вводит в ступор, любое замечание — раздражает.
Отнюдь. Любая задачка для профессоров интересна, особенно, если это связано с их профилем. Я не раз приходил на офисные часы к моему преподавателю по CPSC 210 и решал с ним некоторые сложные задачки, связанные с фрилансом.
У преподавателя нет заинтересованности в ваших знаниях.
Если Вы в числе тех 70%, что не любят программирование, то конечно, заинтересованности не будет. То ли я хороший собеседник, то ли профессора такие хорошие; но всегда, когда у меня была проблема — мне давали знаний с лихвой. Иногда преподаватели настолько сильно углублялись в какую-то область их предмета, что я опаздывал на следующие пары: так приятно было мне их слушать.
Не надо смотреть «на всех».
Для талантливых студентов это крайне плохая ситуация. И потому, что необходимость ориентироваться на «среднего» студента снижает глубину и обширность излагаемого преподавателями материала, и потому что создается мнимое впечатление собственных успехов на фоне повального разгильдяйства основной массы.
Если нужны более глубокие знания — в UBC можно взять курсы Honor в Computer Science. Группы меньше, почти все студенты одаренные, глубина знаний в разы превышает обычные курсы, и ориентированность идет как-раз на «умных» студентов.
Не нужно себя сравнивать с сокурсниками. Лучшим критерием ваших знаний и успехов будут ваши сделанные проекты, ваши успехи на работе. Соотносите себя не с «серой массой», а с рынком. Зайдите на сайт фриланса — почитайте, что из предлагаемых работ вы в состоянии сделать, а что еще нет и даже аббревиатуры незнакомые. Очень отрезвляет, даже отличников обучения.
Хороший совет, вне зависимости от университета, и даже специальности.
Оценка не важна.
Устраиваясь на работу в IT в большинстве случаев ваш диплом с его оценками никто смотреть не будет. <...> В нормальных фирмах вам дадут тестовое задание, проведут техническое собеседование с профильным специалистом, возможно с вашим будущим начальником.
Все правильно. Однако для получения грантов и финансирования в UBC обычно нужны оценки 90%+. На elance.com меня никто не спрашивал про диплом. Для Co-op программы нужен определенный минимум средней оценки, но если Вы понравились работодателю на собеседовании — Вас все равно возьмут.
Нужно работать.
Если вспомнить, что большинство преподавателей сами не работают в IT, то такое же большинство уделяет одинаково много времени и внимания на парах и тому, что действительно нужно и вы будете использовать это каждый день и тому, что представляет чисто академический интерес и вам ни разу не пригодится.
Нечего сказать, я отучился всего один год, и из всех курсов только один был направлен именно на корпоративное создание приложений — CPSC 210. Остальное — теория и основные знания. Повторюсь, это всего лишь первый год. Дальше — лучше.
А про то, что работать нужно — это факт. Посмотрите на гигантов индустрии, которые так и не закончили университеты (их имена вы знаете). Они начали развитие своего дела еще в университете. А тем, кто говорят, что не стоит приводить этих людей в пример, я могу только улыбнуться в ответ. Но это чисто персональное, Вы можете и не улыбаться.
Достаточно просто присутствовать.
Сложность излагаемого материала и требования к студентам стали уже столь низки, что для успешного обучения даже самым неспособным студентам достаточно просто присутствовать в институте.
В UBC сложно попасть, из UBC легко вылететь. Присутствие на лекциях — это 10% от оценки, максимум. Остальное — это постоянные экзамены, домашняя работа, проекты и задания. UBC просто держит в постоянном тонусе, нет возможности «просто присутствовать».
Создается иллюзорное впечатление, что можно не ходить и все будет, потому что существует негласный запрет на отчисление студентов-контрактников, которые «кормят» ВУЗы.
В UBC платят все (кроме особо одаренных). Нет никаких привилегий. Если выкинут одного «кормильца», на его место придет другой: у этого университета есть еще тысячи желающих поступить.
Фактологические знания не так важны.
Раз уж систему образования не поменять, постарайтесь поменять отношение к получаемым знаниям. Не надо накапливать факты, это приведет к мусору в голове. Старайтесь понять то, что знаете и связать все в целостную картину предметной области.
Тут система немного отличная от российской: нужно именно понимать, а не запоминать. На все экзамены разрешено приносить с собой лист А4 со всей нужной Вам информацией. Да и тестируют именно понимание, а не простое знание. Но это в IT, как обстоят дела с другими профессиями — я не в курсе.
Знания по специальности не самые важные.
Что же еще? Английский. <...> Организаторские способности, умение решать проблемы (то, что называется талантом предпринимателя).
Ну, без английского тут никуда не попасть, а с пунктом про организаторские способности, думаю, согласны все. Они нужны везде.
Обучение в ВУЗе это не все.
В вашем ВУЗе, даже если он столичный и в нем лучшие преподаватели страны, ограниченный круг людей, у которых вы можете учиться, ограниченный набор предметов, вы ограничены программой своего министерства образования и уровнем аудитории вокруг вас.
Не смотря на обширное количество различных курсов в самом UBC (возможно, большее, чем в российском столичном ВУЗе), знаний по специальности может не хватить. Я ничего не узнал про Objective C в университете. Все изучал сам по туториалам, видеоурокам, видеолекциям. Особенно мне помогли Стенфордские лекции по iOS. Полностью согласен с автором оригинального топика: учиться нужно и вне университета.
Личные комментарии
Я честно всеми силами пытался выгородить российские университеты. Я честно пытался как-то аргументировать отсутствие того же МГУ или МГИМО в топ-300 университетов мира. Но оригинальная статья разбила все мои надежды в пух и прах.
Неужто в России с образованием и вправду все так плачевно обстоит? Я не могу в это поверить. К сожалению, многие студенты в россии даже не задумываются об обучении заграницей. А ведь есть безумное количество различных программ обучения (не российских), о которых они просто не знают.
Статья представляет собой исключительно мое мнение и мои наблюдения.
В случае, если Вы обнаружили какие-либо неточности или опечатки в моей статье, милости прошу ко мне в хабракабинет.
Автор: backmeupplz