От юриста до программиста
Бытует стереотип, что университетские годы — это самый счастливый период в жизни человека. Я, однако, не могу с ним согласиться — в мою жизнь счастье проникало тем больше, чем дальше я отдалялся от своего вуза. Заканчивал школу я в депрессивном состоянии. Жил в Пушкине с мамой, искал смысл жизни и не мог найти, меня травили одноклассники. Занимался программированием, играл на гитаре, тренировался на секции каратэ — только это в жизни на тот момент и нравилось, в остальном всё было плохо. Мама очень хотела, чтобы я поступил в частный юридический вуз, где она работала сама, вуз находился там же, в Пушкине. Я даже ходил туда на подготовительные курсы в 11-м классе, но где-то после Нового года «взбрыкнул» и понял, что в гробу видел карьеру юриста (знаете старый американский анекдот: «Чем отличается труп адвоката от трупа оленя на лесной дороге? Отсутствием следов торможения!», да простят меня юристы). На удивление, мне удалось аргументировать свою позицию перед матерью, и вскоре был задействован резервный вариант — решили, что поступать я буду в Корабелку. В общем, в тот момент у меня не было какой-либо позитивной мотивации, но была депрессия и нежелание попасть в армию.
Мой интерес к программированию сыграл свою роль в выборе специальности, но не вуза. Еще до поступления я самостоятельно изучил C, C++, Pascal, Object Pascal, HTML, CSS, JavaScript, и освоил слепую десятипальцевую печать. Писал отдельные утилиты для Windows, графические демо и простенькие сайты — для души. Подрабатывал системным администратором-эникейщиком. Вся эта деятельность мне нравилась возможностью конструктивно думать и увлечённо решать задачи. Кстати, с первого курса я и сам преподавал — вёл кружок C/C++ — там же, в Пушкине в местном УПК (МЦИК «Интеллект», так называлось заведение полностью). А в строительной компании, где работал системным администратором, я был ещё и ночным сторожем и уборщиком — ночные смены можно было спокойно проводить за компьютером, занимаясь самообразованием, меня это более чем устраивало.
«Отлично» с припиской «моральный урод»
Школу я закончил с серебряной медалью, а если бы я не задавался вопросами смысла жизни в тот период — была бы у меня и золотая. Но поступал я по олимпиадам, и для этого нужно было не только хорошо написать эти работы. Меня удивило, кстати, что при поступлении на программиста на кораблестроительном факультете (что само по себе странное сочетание) не было ни одной задачи ни по дискретке, ни комбинаторике, ни по гидротехнике. Нельзя сказать, что я был не готов — у меня вообще с техническими дисциплинами всё неплохо. ЕГЭ в тот год (2004, если память мне верна) сдавали только по русскому языку, и у меня по школе был второй результат (92, кажется, балла из ста). К слову, за сочинение на внутришкольной репетиции ЕГЭ по русскому мне поставили «отлично» с припиской «моральный урод!» — тема была «о милосердии в русской литературе», и точку зрения я высказал весьма нонконформистскую. Готовился ко всем испытаниям я почти исключительно самостоятельно — не занимался ни с репетиторами, ни на подготовительных курсах (юридические — не в счёт: ни история России, ни теория государства и права мне не помогли).
Мелочи быта
Моими первыми мыслями после поступления были: «Боже, ну и помойка!» (про внешний вид вуза), «Ладно, по крайней мере, что-то новенькое», «Ну и далеко же он находится!». Что касается внешнего вида — всё было раздолбано. Самое гнетущее впечатление производили туалеты, конечно, — особенно в корпусе на Ленинском проспекте, в полуподвале рядом с тренажеркой и бильярдом. Там еще была жуткая курилка — не знаю, как с этим обстоит сейчас, после запрета на курение в общественных местах, но тогда это был просто филиал ада в отдельно взятом вузе. Там, где не было раздолбано, просто был совдеп. Пристойный ремонт был выполнен только в кабинетах разного рода шефов и всяких формальных местах вроде актового зала на Лоцманской. Состояние аудиторий было плачевным, хотя далеко не катастрофическим. В целом, было, где сидеть — и то хлеб. Оборудования, вроде проекторов, практически не было, доски были старыми и их было мало.
Халява, слишком много халявы
В дальнейшем мне удалось сравнить аудитории СПбГМТУ с аудиториями Высшей школы экономики, MIT и многих других вузов (с какими-то — очно, с какими-то — по видео) — контраст, конечно, разительный. К тому времени, как я заканчивал вуз, ситуация, вроде, начала исправляться. Наверное, финансирование пришло и деньги на ремонт появились. Отдельной проблемой для меня была транспортная доступность университета. От любого метро практически до любого корпуса вуза было неудобно добираться — отовсюду нужен был дополнительный транспорт. Только корпус на Горьковской был более или менее удобно расположен, но там почти не было занятий за все годы. Добираться из Пушкина было отдельной проблемой — продолжения Витебского проспекта ещё не построили, а Пулковка стояла в вечных пробках. На общежитие же я претендовать не мог — Пушкин формально считается районом Питера, а общежитие предоставляют только иногородним. Единственное время, когда мне было удобно ездить — на 4 или 5 курсе я ездил на машине из Пушкина, через КАД. Получалось два сочетания на выбор: либо «маршрутка + троллейбус», либо «электричка + метро + автобус» (в общем, минимум — одна пересадка, а чаще — две). Впрочем, со временем я решил этот вопрос: когда понял, что в плане знаний в вузе ловить всё равно нечего, просто стал ездить туда раз в неделю. Чтобы не сложилось ощущения, что я сачковал — и бакалаврский, и магистерский дипломы у меня с отличием, по окончанию вуза я был рекомендован к аспирантуре (и даже поступил, правда в ЛЭТИшную, но учиться не стал в связи с переездом в Москву по семейным обстоятельствам).
Столько программистов стране не нужно
Говорить могу только про свою специальность — программирование. Нужно понимать, что в системе высшего образования с ней практически везде один и те же проблемы: область это новая, развивается очень динамично, и косные образовательные системы за ней хронически не поспевают. От учёбы в первом семестре впечатление сложилось неплохое, но уже во втором оно рассеялось без следа. Печально, но факт: большая часть преподавателей были людьми случайными. Происходит отрицательный отбор — преподавать идут только те, кто не подошёл для отрасли, ибо финансовые мотивации несопоставимы. Хорошего специалиста оторвут с руками и ногами как крупные компании с большими бюджетами, так и маленькие хищные студии. В вузах же на полную ставку остаются либо «совсем старички», либо «совсем дурачки», либо преданные энтузиасты. Последние в таком раскладе заслуживают огромного уважения, пусть и слегка недоуменного. Из системных проблем стоит упомянуть и ряд откровенно ненужных предметов, сделанных обязательными, и ряд предметов откровенно необходимых, но отсутствующих в программе — но это точно не проблема конкретного вуза, это проблема всей образовательной системы.
Впрочем, основной моей претензией к образовательному процессу я бы назвал не качество преподавания — а, напротив, качество требования. Халява, слишком много халявы. Поговорка «мы не ходим к врачам, потому что знаем, какие мы сами инженеры», к сожалению, родилась не на пустом месте. Однако, не хочется говорить о плохом и о некомпетентых преподавателях. Вспоминать по прошествии лет хочется только хорошее.
Начну с преподавателей математики. В первом семестре ее вела Гессен — в целом, большая молодец. И с подачей информации всё было в порядке, и со строгостью контроля, но она была в положении и ушла в декрет после первой сессии. Была Войткунская, вела всё, что можно назвать в широком смысле дискретной математикой: от собственно дискретки до теории графов и обратно. В принципе, вела неплохо. Очень старомодно, местами крайне неэффективно — ну так и лет ей уже было сколько, что сказать. Единственное, чем не радовала совершенно, так всякими неучебными делами вроде профкома, хора, и какой-то там картонной школы барабанщиц. То есть я не против — пойте и пляшите, ради бога, но почему это может влиять на чьи-то оценки? Я тоже один раз спел, на гитаре сыграл и на шпагате на сцене посидел, конечно, но всё это было противно и фальшиво.
Поговорка «мы не ходим к врачам, потому что знаем, какие мы сами инженеры», к сожалению, родилась не на пустом месте
Что касается программирования, была пара Высицких — отец и сын. Старший на первом курсе давал введение в программирование — очень достойно. Я весь этот материал изучил ещё в школе, и сам его преподавал тогда же — так что оценить мог. Пару раз даже спорил с ним и выходил победителем, но в целом претензий не имел. Это C/C++, Pascal/ObjectivePascal, Delphi — своего рода классика. Младший Высицкий на втором курсе (и, может, на третьем тоже, не помню) читал прикладное программирование под Windows. На фоне прочих было даже хорошо — хотя бы предмет ясно очерчен, учебная программа ясна и какой-никакой контроль знаний был. По физике из реально хороших преподавателей могу назвать Короля — по физике читал буквально пару лекций, ибо в основном работал в Англии, но читал прекрасно — вообще не имею к нему претензий; сплошные восторги — великолепный преподаватель, фамилию свою полностью оправдал. Также порадовал Агунов, читавший курс «архитектура ЭВМ и основы электроники» — тоже прекрасный инженер и преподаватель старой закалки. Чудесная фраза «Так, столько программистов стране не нужно. Особенно таких!» и в целом адекватность, ум, умение объяснять, сочетание строгости и готовности помочь — вызвали совершенно заслуженное уважение. Был ещё один интересный товарищ из старой школы, профессор Нечаев: старенький, с проблемами со здоровьем, дребезжащим голосом, но живым умом. Читал курс искусственного интеллекта, сам был известен своим участием в работе над автопилотом «Бурана» — хорошо; жаль, что мало.
Первый семестр породил во мне энтузиазм, второй — вогнал в депрессию, третий и четвёртый — индуцировали всевозрастающее желание отчислиться. С третьего курса я просто начал активно косить и работать, и жить стало легче и веселее. Моей бакалаврской работой было коммерческое веб-приложение — интернет-магазин (как ни странно, про веб — отрасль, основную уже тогда, нам вообще никто ничего не читал — но не беда, освоил самостоятельно).
Магистратура
Мест в магистратуру было три, а желающих поступить туда, вместе со мной — четверо, остальным предлагался специалитет. Я сказал Жураве (который был тогда деканом), что готов закончить общение с Корабелкой на дипломе бакалавра. В ответ он прищурился и пробил четвертое место для магистра. Не знаю, зачем это было нужно декану — наверное, не хотел терять интересного кадра. Я согласился на магистратуру, но иллюзий не питал — было ясно, что обучение будет халявой, а лишняя корочка ещё никому не мешала. Магистратура и правда оказалась откровенным цирком. Магистерскую работу, честно говоря, я написал левой пяткой в свободное от основной работы и хобби время. Самому за неё стыдно, хотя и получил магистерский диплом с отличием.
Чего не хватало в программе
Мой опыт в отрасли составляет уже больше десяти лет, и я могу позволить себе заметить, чего в образовательной программе не хватало: обзора инструментария и методологий разработки (ключевые слова: VCS, Git, TDD, Agile, Scrum, Issue Tracking), курса по архитектуре Интернет и разработке веб-приложений, курса по программированию 3D и использованию соответствующих движков (OpenGL, DirectX, Unity etc.), курсов по компьютерной безопасности и криптографии. Да и просто математики, физики и электроники, честно говоря, было маловато. А совсем сказкой было бы, если бы по биоинформатике курсы были — но об этом, кажется, только мечтать можно.
Самообразование
Впрочем, можно и не мечтать — можно брать процесс в свои руки. В современности вопрос образования, особенно айтишного — это вопрос самообразования. Ищущий найдёт всё необходимое в интернете, а ленивый дурак — останется ленивым дураком. Особенно актуальной эта ситуация стала после революции в сфере онлайн-курсов. Единственное — в XXI веке обязательно нужно знать английский (а скоро и китайский станет обязательным). К слову, английский в Корабелке преподавали отвратительно — я уже тогда разговаривал куда лучше преподавателей, а в то время у меня язык всё-таки не был совершенно свободным (впрочем, это, опять же, общая проблема всей образовательной системы тех лет). Конкретно программистам я бы посоветовал начать с открытых источников по JavaScript (нет ничего проще для старта из актуальных технологий), затем пройти классические курсы SICP и «From NAND to Tetris», освоить классику алгоритмов (Седжвик или Кормен вполне подойдут) — и двигаться дальше куда душе угодно с освоенной базой.
Программистам я бы посоветовал начать с открытых источников по JavaScript
Скучных предметов не бывает
При правильном подходе — любой предмет интересен, абсолютно, какой ни возьми. На себе проверил не раз — от музыки до квантовой механики или тайского языка, скучных предметов нет. Однако легче лёгкого отбить студенту «хотелку», большинству, к сожалению, отбивают ещё в школе. Мне, в принципе, всегда нравились математика, физика, программирование во всех проявлениях, иностранные языки, музыка, физическое развитие. Особенно мне нравится что-то сначала руками собрать, а потом закодить (по сути, это уже робототехника). Например, я делал светодиодные костюмы или прочий реквизит для светового шоу, множество всяких игрушек а-ля «Умный дом» на Arduino. Зачем что-то кодить после того, как уже собрал руками? Представьте себе робота: он вроде бы собран руками — тут процессор вставлен, тут манипулятор на изоленту примотан, вроде бы цельно выглядит. Но не может делать ничего, и пока ты в него не поместишь код — это просто груда металла, как компьютер без операционки. Робототехнику я по мере сил изучал сам — даже близкого ничего не было в вузе (а вот в интернете материала хватает, желающие могут начать с Udacity). Казалось бы, на факультете кораблестроения-то стоит ожидать какой-никакой робототехники на кафедре ВТ — но увы.
Романтика и датамайнинг
Вопрос «многие ли выпускники работают по специальности?» в отношении IT — сложный. IT переживает бум, и как-то к этой сфере даже работники фастфуда относятся. Большинство из моих одногруппников тоже работают где-то недалеко от информационных технологий, хотя собственно программистов — существенно меньше половины.
Сам я начал работать ещё до университета. Первые два курса я преподавал школьникам в УПК программирование, работал системным администратором в строительной компании, и там же — сторожем. Фрилансил разработкой сайтов. На третьем курсе пошёл стажироваться в EPAM, Java-программистом (сам, никто не направлял от вуза, от СПбГМТУ вообще никакой практики не припомню). Пару месяцев проработал-проучился, не понравилась enterprise-атмосфера (в моём нынешнем кругу за словосочетание «ресурс разработки» по отношению к человеку можно и по лицу получить, а там это было в порядке вещей), ушёл. Чуть-чуть между делом поработал подмастерьем кузнеца. Захотелось просто поработать руками. Я тогда ещё огненным шоу занимался и жонглированием, как-то через это и в кузнецы заскочил. В школе когда-то занимался столяркой, даже диплом столяра есть, с камнем как-то не было интереса работать, а кузнечное дело — романтика, красота! С четвёртого курса работал в Yota, веб-разработчиком. Компания была молодая, пафосных менеджеров было ещё мало, так что год проработал с удовольствием, и ещё год — без. Потом была череда разных компаний, разных проектов и разных должностей, почти всё — вокруг веб-разработок, машинного обучения, образовательных технологий и датамайнинга. Успел поработать тимлидом в ActionLearning, IT-директором в CrowdAge, ныне — http://gero.com/, http://locomotome.com/, создать и впоследствии распустить собственную студию «Doppler Studio» (в основном, занимались техническим обеспечением электронной коммерции).
Два преимущества
У профессии программиста есть два чудовищных преимущества: привычка думать и учиться, и возможность работать удалённо. Поэтому, когда у меня закончились нетронутые языки программирования и технологии (звучит громко, но в какой-то момент почти так и получилось), руки и голова дошли до языков натуральных. В результате, помимо свободного английского, у меня сносные немецкий и испанский; хотя бы как-то я понимаю и могу объясниться на большинстве европейских языков и имею базовое представление также о восточных. Даже думал второе высшее по лингвистике получать, но вспомнил первое высшее, посмотрел на цены в СПбГУ — и отложил до лучших времен эту идею, продолжив учиться в свободное время в Сети (крайне советую желающим аудиокурсы Pimsleur и программу Rosetta Stone).
Ещё я успел пробежаться по многим музыкальным инструментам, обнаружив в музыкальной теории немало математики, но это — отдельная история. После окончания университета я много путешествовал: объехал почти всю Азию, немало и по Европе наколесил. Часть путешествий сочетал с удаленной работой. Что касается настоящего — сейчас мы с партнером, тоже программистом широкого профиля, работаем под брендом ItCanFly.org с заказчиками по всему миру, базируясь в Праге. Занимаемся, в основном, веб-проектами, любим HighLoad и интересные задачи. Из технологий веб-стека больше прочих уважаем Python/Django для бэкэнда и React/Redux/Stylus/PostCSS для фронтенда. По возможности активно участвуем в OpenSource, и вообще являемся приверженцами идеологии открытых исходных кодов и нелюбителями пафосного Enterprise’а.
Обсуждение материала
Оставить комментарий