Педиатр-программист: Как я попал в Майкрософт | "Практика в Майкрософт Бинг в Сан-Франциско", часть 6 из 7 (пост 1)

Для тех, кто пропустил предыдущие части:

Часть 1: Поворот
Часть 2: (лирическое отступление) Школа и медвуз
Часть 3: Microsoft Student Partners Germany
Часть 4: Подготовка к интервью
Часть 5: Интервью (пост1) (пост2)
Часть 6: Практика в Майкрософт Бинг в Сан-Франциско
Часть 7: Работа в Майкрософт Бинг изнутри

Для связи используйте мой ник здесь и Гугл :)
----------
Для того, чтобы сделать практику в США, необходимо иметь статус студента (быть студентом очного отделения ВУЗа) и получить специальную визу категории F, которую для этих целей выдают сроком ровно на 12 недель – на период прохождения практики. Получение американской визы процесс непростой, но в принципе и не такой сложный. Самым сложным была подача документов в посольстве, куда нельзя проносить ни сотовые телефоны, ни USB-накопители, вообще никакую электронику, включая электронные часы. А куда же их девать? Как мне подсказал охранник, бабушка в ближайшем цветочном киоске за 2 Евро охотно присматривала за твоим добром и даже вела какой-то учет. Но при этом не выдавала никаких квиточков, полностью полагаясь, видно, на свою память. Было несколько стрёмно отдавать ей пакет со смартфоном, брелок с ключами от всего на свете и еще кучу нужных вещей, которые мигом можно толкнуть минимум за две-три сотни Евро, и всё это удовольствие всего за два евро – кто же знает её бизнес-модель и вдруг она меня больше и не вспомнит? Но у бабушки глаз оказался наметан хорошо и с совестью тоже все в порядке – после всего я получил свой пакет обратно, в целости и сохранности. Но больше на такое не решался и всегда просил друзей пойти со мной и подождать снаружи пока я завершу дела.

Есть несколько видов практики, которую предлагает Microsoft. В данной статье я описываю только Business Internship и жизнь Business Interns, которые по сути являются студентами технических специальностей, еще не закончившими ВУЗ.

Практика в Майкрософте подразумевает работу над проектом в течение 12 недель. Работа интерна в принципе ничем не отличается от работы обычного сотрудника: интерны получают зарплату, сравнимую с зарплатой специалиста (всего лишь на 20-30% меньше, чем начальная зарплата выпускника ВУЗа), они самостоятельно работают над проектом и представляют свои результаты, их менеджер дает оценку их работе используя те же критерии, что и для остальных сотрудников.

Кроме этого, Майкрософт дает возможность оформить по очень низким ценам временное жилье (от 650 долларов в месяц за однокомнатную студию и 1200 в месяц за двухкомнатную квартиру, полностью меблированную и со всеми приборами), снять машину (около 400 долларов в месяц), а также перенимает частично стоимость велосипеда, если так тебе проще добираться. Тебе и твоей семье (если она хотел поехать с тобой) оплачивается перелет. Также в середине практики организуется большое мероприятие для всех интернов с участием Билла Гейтса и всего руководства компании, с приглашением звезд эстрады и с подарками. В наш год, к сожалению, первый раз не было Билла Гейтса, вечеринка проходила в зоопарке Сиэтла, приглашенную звезду я не знал (какой-то Dave Matthews), а в качестве подарков были Xbox 360 Slim.

Так получилось, что я жил в самом центре Сан Франциско, в комплексе с романтическим названием Bayside Village прямо под мостом Bay Bridge (это второй мост, находящийся примерно в 10 милях от своего намного более известного собрата Golden Gate Bridge), всего в 15 минутах пешком от своего офиса. К сожалению, об этом я не знал в тот момент, когда мне нужно было решать беру ли я машину или велосипед, поэтому я выбрал машину и она практически все время стояла в гараже комплекса. Даже в магазин мне было легче сходить пешком, чем пытаться запарковаться в тесном подземном гараже.

Проходить практику мне предстояло в фирме, которая буквально за несколько месяцев до этого была куплена Майкрософт, и которая сохранила все черты стартапа, которым она являлась на момент покупки: фирма располагалась в том же офисе, куда доставляли обеды для сотрудников. Все офисное пространство фирмы представляло собой огромный зал, раньше бывший каким-то производственным цехом, разбитый небольшими, около полутора метров высотой, стенками на десятки кубиклов, в котором стояли компьютеры. По краям этого зала, который не имел ни одного внешнего окна, тянулись комнаты для встреч, а с внутренней стороны здания была оборудована небольшая кухня с комнатой отдыха и маленьким кинозалом.

Я был их первым интерном и, похоже, так и остался единственным интерном, где делал у них свою практику. Благодаря этому мне пришлось, я думаю, работать и выкладываться намного больше, чем среднему интерну на практике в Майкрософт.

Прежде всего, у меня было два руководителя. Один – мой непосредственный менеджер, с отличием закончивший Гарвардский университет по информатике и защитивший диссертацию по лингвистике в Амстердаме, член общества «фи-гамма-каппа», говорящий на 6 языках и имеющий очень цепкий и быстрый ум. Его первой фразой при встрече, которую он произнес просто как скороговорку, было – «не пугайся, если ты вдруг не всё понимаешь из того, что я говорю – тут родившиеся здесь американцы меня не всегда могут понять: не бойся задавать вопросы!». Так примерно я понял тогда эту фразу, надеюсь правильно.

Вторым руководителем была девушка, младше меня на 2 года, консультант-помощник, выпускница Стэнфорда, тоже владеющая несколькими языками и кроме того очень высококлассный программист. Не смотря на тот факт, что она была младше меня, она была одним из самых жестоких критиков моей работы и моего стиля программирования, и всегда ее критика была «по делу».

Они оба встретили меня в первый день практики и представили мне мой проект, который заключался в следующем: Поисковые пауки обходят страницы, сохраняли их полное содержание в виде HTML файла в индексе поисковой базы данных. Для улучшения поиска необходимо было создать алгоритм (или систему), которая бы из HTML документа извлекала бы только полезный контент, игнорируя рекламные блоки, блоки навигации, header и footer, какие-то нетекстовые элементы разметки и прочее. По возможности надо было извлечь еще и примерную структуру документа – основной заголовок, подзаголовки и разделы.

На решение этой задачи мне давался полный carte blanche и около 10 недель времени. На протяжении этого времени у меня два раза в неделю по часу были syncs с моими руководителями, которые выслушивали мои предложения и критиковали их, разбирая их по косточкам и не оставляя от них камня на камне. Они указывали мне на все недостатки предлагаемых мною методов решения, но когда я пытался задать встречный вопрос «а как правильно делать это?», то неизменно получал ответ в форме «это же твой проект – вот ты думай и предлагай, а мы тут только для того, чтобы обсуждать твои предложения, а не сами предлагать что-то» (отмечу еще раз, что это не совсем типично для практики в большой фирме, поэтому мне в определенной степени повезло!) Из-за того, что мои решения постоянно подвергались критике мне казалось, что на протяжении всей практики мне казалось, что я постоянно пытаюсь изобрести тот велосипед, который уже давным-давно изобретен здесь, и весь смысл моей работы сводится к тому, чтобы посмотреть, как быстро я его изобрету.

Я должен признать, что я до начала практики был мало знаком с работой поисковых систем и с проблемами, которые приходятся решать в рамках их функционирования. Поэтому во время практики мне приходилось очень много читать и изучать такие новые для меня темы, как Information Retrieval, Data Mining, Machine Learning и прочее. Каждый день, вечером, приходя домой с работы около 9 часов, я старался уделять хотя бы час чтению учебников и статей по этой теме. В некоторые выходные я даже оставался дома, чтобы лучше изучить эти темы. Перед сном я ходил плавать в бассейн в комплексе и во время заплыва думал над своим проектом, пытаясь применить то, что я прочитал в теории, к своей практической деятельности.

Сам проект стал более-менее выкристаллизовываться примерно к 8 неделе работы, и именно тогда мой менеджер должен был предоставить рекрутерам, что работали со мной, предварительную оценку моей деятельности. Этот документ, составленный обоими моими руководителями, оказался совсем не таким, каким я ожидал.

По моим представлениям мой проект практиканта развивался довольно успешно: я разработал довольно интеллектуальный алгоритм разбиения HTML документа на отдельные текстовые блоки, примерно соответствующие абзацам письменного текста или отдельным заголовкам. Для того, чтобы отсекать невидимые блоки, блоки за пределами экрана и прочее я написал небольшой собственный движок рендеринга и использовал данные рендеринга в качестве эвристик: моя основная гипотеза заключалась в том, что основной текст должен располагаться примерно в середине страницы в блоках, которые занимают не меньше 45% и не больше 100% от ширины экрана, в то время как элементы навигации обычно уже и имеют большую асимметрию относительно серединной линии, нежели текст.

Алгоритм также сначала сканировал текст в поисках заголовка – небольшого (1-2 предложения) текста размерами больше чем медианный размер текста на странице. Если такой блок находился и морфосемантический анализ этого текста показывал, что это скорее нормальный текст нежели реклама, то все блоки до этого текста игнорировались из дальнейшего анализа.

Конечно, я проанализировал существующие решения (насколько они были доступны), в частности JavaScript-скрипты на основе Readability, которые по сути являлись лишь набором эвристик, записанных в виде регулярных выражений, заточенных под определенные виды разметки контента (WordPress, Wikipedia, различные шаблоны форумов и прочее).

(продолжение во втором посте)
5
Автор поста оценил этот комментарий

Чем больше я читаю твои посты, тем больше осознаю, насколько никчёмное наше отечественное образование =)

раскрыть ветку
1
DELETED
Автор поста оценил этот комментарий

Очередная, шикарнейшая часть!

Ещё раз убеждаюсь в том, что самообразование -необходимая штука в жизни.

раскрыть ветку
1
Автор поста оценил этот комментарий

Складывается впечатление, что микрософту не хватает русских программистов. Вот они и начали вести свою деятельность на пикабу. 

раскрыть ветку
Автор поста оценил этот комментарий

Я читаю эти посты, как захватывающий бизнес-роман!

раскрыть ветку
Автор поста оценил этот комментарий

Как всегда очень интересно :) Один вопрос:

"Этот документ, составленный обоими моими руководителями, оказался совсем не таким, каким я ожидал"

Документ оказался негативным?

раскрыть ветку