thingsiread
Лето 2013
На ФИВТе кафедра выбирается в четвёртом семестре, а первые кафедральные курсы начинаются в шестом. Когда я выбирал кафедру, я решил не идти на дефолтную кафедру Яндекса “Анализ данных” по каким-то соображениям, связанным с существованием ШАДа (не помню точно). Наверно, мне казалось, что в бакалавриате “Анализа данных” будут предметы в стиле “какие бы им почитать предметы, дополнительные к курсу ШАДа”. А в машинку меня тогда особо не тянуло, как и в задротскую математику.
В тот год как раз ABBYY анонсировал открытие новой кафедры “Компьютерная лингвистика”. Это звучало как perfect fit для меня до конца жизни. Я с детства увлекался лингвистикой и программированием, а офис Аби находился в Отрадном, где я жил и мог продолжать жить. Я решил, что это знак свыше, и не думая согласился.
Когда в сессию шестого семестра я начал закрывать кафедральные предметы, то это оказались “Основы программирования под Windows” и “Концепции языков программирования”. Оба предмета были скучными и простыми. Я почувствовал некоторое разочарование и задумался ещё раз о том, не хочу ли я сменить кафедру на оставшийся четвёртый курс. Я посмотрел на предметы Аби в четвёртом семестре - там был какой-то шлак из проги и был вводный курс по лингвистике (на котором я всё уже знал в 11 классе). Я решил найти кафедру, на которой будут интересные для меня предметы, а также какая-то обязательная работа - чтобы ради денег не нужно было репетиторствовать.
Я начал смотреть на все кафедры, имевшие отношение к программированию на Физтехе, и обнаружил, что в Интеле самые интересные для меня предметы - оптимизирующие компиляторы, архитектура микропроцессора, виртуализация, бинарная трансляция. Я написал завкафедрой с просьбой меня взять. Он прислал мне дежурный отказ “Виталий, боюсь, Вы опоздали на год с такой просьбой”, а через день написал “Виталий, срочно позвоните мне”.
Видимо, утром в этот день он гулял по опен-спейсу Интела и смог продать руководителю одного отдела идею, что стажёры из Физтеха - умняши и не тратят командный хэдкаунт. У менеджера моего отдела был какой-то фиксированный лимит на количество фултайм-сотрудников, силами которых он мог решать задачи - в больших корпорациях это называют хэдкаунт. Стажёры же оформлялись вне хэдкаунта, что давало менеджеру призрачные шансы усилить работу команды, которая уже была максимально набита сотрудниками.
Я принял предложение. Тогда стажёрам в Интеле платили 35к на руки за фултайм. Работать надо было три дня в неделю, из них один день стояли учебные пары - т.е. по сути рабочих дней было 2.5, а получал я за это 20к. Я начал в июле и проработал месяц фултайма. Я попал в группу, которая разрабатывала и поддерживала оптимизирующий компилятор icc для клиентов на платформе MacOS (кто сидит на рабочей станции Mac или оптимизирует код под Mac). Клиентов таких было мало, и было ощущение, что мы какой-то “статусный” отдел, который делает что-то недрайвовое.
Меня взяли на позицию QA - “тестировщика”. Инженеры-компиляторщики фиксили баги или пилили фичи. Когда они вливали свои изменения в мастер, новый мастер день-два тестировался на сотнях тысяч тестов (это же компилятор). Некоторые тесты падали. Моя задача была отсматривать упавшие тесты, разбираться в причинах падений и писать тикеты на тех, по чьей причине тесты вероятнее всего начали падать. Как первая работа в айти это было интересно месяц фултайма.
Параллельно в этот месяц я взял 10 уроков катания на роликовых коньках в роллер-школе. У меня был незакрытый гештальт, что я не занимался никаким спортом. За три курса универа один знакомый пару раз вытащил меня попробовать сноуборд - это всё, что я могу вспомнить. Когда я собирался на Физтех, то мне рассказывали, что есть куча разных способов сдавать физкультуру. Поскольку я плавал во 2-4 классе, я надеялся, что меня возьмут на плавание. Но оказалось, что на плавание очень много желающих, и у меня не было шансов сдать нормативы за нужную скорость. Так я попал в “общую физическую подготовку” - бег 3 км по стадиону и силовые упражнения.
Преподавание на четвёртом курсе
После месяца работы в Интеле я сразу взял отпуск на месяц, объяснив начальнику, что ездить в ЛКШ - это моя незыблемая традиция. Начальник сопротивлялся, конечно, и хотел меня видеть весь август, но не хотел со мной расставаться насовсем.
В ЛКШ я поехал со своим другом, который отлично вписался врачом смены. Мы наконец-то были первой открытой гей-парой на смене - обнимались на утренней линейке, пытались ходить на танцевальную зарядку. Горничные из костромской глубинки офигевали и докладывали всё директору базы, которая всё со смехом пересказывала директору смены.
Врач по образованию сердечно-сосудистый хирург, и на эту тему мы придумали спецкурс по кромсанию бычка. Врач купил в Костроме скальпелей с иглодержателями и разной бычьей требухи (голову, кожу, кишки) и устроил мастер-класс по тому, как делать и зашивать надрезы. Это было достойное гуро.
На четвёртом курсе меня позвали в Интеллектуал повести уроки информатики в 10-11 классах в продвинутой группе. Для меня это был мощный сошиал аппрувал: реальные уроки в реальной школе, подготовка к ЕГЭ, ответственность за детей. После моих экспериментов с Джангой я хотел максимально отойти от дефолтного принципа “продвинутая информатика - это на 100% алгоритмы и структуры данных” и делал всякую мешанину из латеха, веба, криптографии и ассемблера. Программирование, конечно, там тоже было:
https://sites.google.com/site/vpavlenkoinf/homeЧерез Интел меня позвали семинарить курс “Интел-лабс”, который Дединский читал второкурам ФУПМа и РТ как подготовку к последующей стажировке в Интеле. Дединский - это такой одиозный преп, который со всеми школьниками и студентами, которые к нему попадают, делает одно и то же - учит их промышленному программированию на чистом Си. Его гордость - это когда его школьника уже в старшей школе зовут работать в Параллелс писать бинарный транслятор. В Интеллектуале он одно время вёл уроки - на 15 учеников в классе двое влюбились в его курс, 13 ненавидело.
На Интел-лабс я продержался месяц - потом Дединский спалил, что я не шарю промышленную разработку на Си и часто механически энфоршу у своих студентов его рекомендации к код-ревью с лекций. Спросив “на сколько строчек была моя самая большая программа в жизни” и получив ответ что-то типа “1к-10к на Питоне”, он распрощался со мной. С этого курса я успел закорешиться с несколькими физтехами с далёких от меня факультетов и позвал их потом на CTF (и вообще держу связь).
Весной на четвёртом курсе во мне оформилась идея, что надо попробовать поиграть соревнование CTF, о котором уже кто-то говорил, но ничего не было понятно. Я как-то очень легко собрал команду из семи топовых лкштских преподов, с которыми мы засели на 48 часов на седьмой этаж в Яндексе вкатываться в новую дисциплину.
Это был дикий фан. За два дня я попробовал на практике штуки, которые в теории знал о криптографии, применил навыки понимания даташитов, пока мои сокомандники ломали авторизацию на палёных куках и компилировали некомпилируемое. Движовое жонглирование виртуальными машинами, бесконечный папа джонс (мы играли восьмого марта, столовки были закрыты) и сон на диванчиках-подоконниках - так мы отобрались на финал RuCTF 2014.
Я протупил и для райтапов взял платную блог-платформу. Мне быстро надоело за неё платить, так что наши райтапы теперь только в архиве:
http://web.archive.org/web/20140702124811/http://lights-out-ctf.ghost.io/page/2/Потом я сразу нашёл детские CTFы и дал порешать их своим школьникам, а также попытался собрать какую-то CTF-тусовку на Физтехе. Я провел несколько встреч про криптографию и binary exploitation, а на следующий год этот движ подхватили другие ребята:
https://vk.com/mipt_ctf