Примечание: Я бы с удовольствием рассказала всё, но кое о чём мне придется умолчать из-за политики конфиденциальности.
С неё я и начну. В первый же день на работе я получила доступ к большему количеству конфиденциальной информации, чем я когда-либо в жизни видела. Дело в том, что политика Гугла в этом отношении очень проста – если ты на них работаешь, ты имеешь право знать практически всё (есть, конечно, исключения, но их не так уж и много). С одной стороны, казалось бы, это очень здорово – никаких секретов, свобода информации... Но с другой – намного сложнее следить за тем, чтобы не проболтаться за пределами компании, поэтому чем больше знаешь, тем больше ответственность. Главное правило (совершенно официальное!) – "Don't be evil."
Честно говоря, подписывая договор, я не была до конца уверена, правильный ли я сделала выбор, но теперь, сидя в аэропорту в ожидании самолета обратно в Питтсбург, я понимаю, что поступила очень правильно. Я узнала много интересного и о внутреннем устройстве компании, и о различных проектах над которыми она сейчас работает, получила опыт работы в команде, и в Гугле вообще, в целом замечательно провела лето, и даже немного заработала и получила в подарок Motorola Droid.
Самым сложным для меня было разобраться в существующем коде и понять, где и как мне писать свой код, каким правилам следовать, и где искать помощи в случае возникновения вопросов.
Проблема в том, что кода у Гугла (как можно было догадаться) немеряно, и у меня был доступ чуть ли ни к каждому файлу, который когда либо был создан. С одной стороны – куча примеров, образцов и всего прочего, а с другой – сложная инфраструктура, в которой вот так сходу и не разберёшься. Указания менеджера были до боли просты – вот тебе описание проекта в трёх словах, делай, как хочешь, если найдёшь код, который кто-то написал до тебя – пожалуйста, копируй на здоровье (правда, это относится только к коду, написанному внутри Гугла, а не к любому коду вообще), не найдёшь – счастливого тебе плавания.
Моё плавание началось в тихой гавани онлайн-уроков по использованию системы контроля версий под названием Perforce. Для начала мне нужно было научиться получать права на изменение файлов, отменять изменения, отправлять свой код на рецензию, и вносить изменения в базу кода при получении положительной рецензии. Потом мне пришлось освоить новую IDE – Intellij, научиться использовать библиотеку Closure для JavaScript, и вспомнить давно забытые unit-тесты. Большая часть моего проекта была на JavaScript, кое-что на Java и, конечно, HTML и CSS в неограниченном количестве.
Первая проблема, с которой я столкнулась, была очень неожиданной – я знаю JavaScript, но мне это ни капли не помогло, потому что в Гугле они используют собственный компилятор, требуют обязательно указывать тип переменных, да и вообще структура кода отличается весьма существенно. Впрочем, научиться делать всё именно так, как от меня требовалось, не составило особого труда.
Следующим на очереди был Internet Explorer. Кто бы мог подумать, что он может создавать столько проблем? Да ещё и таких, с которыми я раньше не сталкивалась? Самой главной (в моём случае) оказалось то, что разные браузеры по-разному считают высоту объектов на странице, и мне пришлось изрядно побороться с (гадкими) полосами прокрутки на 1 пиксель, которые так и норовили появиться на моей странице. Была ешё парочка неприятных моментов, но добрый Эдуардо мне очень сильно помог, и нам удалось усмирить ИЕ, и заставить его показывать хотя бы то, что не противно глазу :)
Кстати, об Эдуардо... Совершенно замечательный персонаж – с виду злобный дядька лет 50, и не подойди к нему, всё время жутко как занят, а на самом деле – милый и добрый, всегда вс ё объяснит и поможет, если попросить. Честно говоря, он мне помог с решением всех моих задач значительно больше, чем мои менеджеры и моя менторша. Особенно когда я не могла разобраться с одним особенно противным тестом, который все время выдавал null pointer exception, и никто не мог понять, в чем же дело. Эдуардо подошёл ко мне, спросил: "Ну что там у тебя не работает? Ану покажи!" Я с тяжёлым вздохом запустила тест, сделала жалобные глаза... и на этот раз тест прошёл нормально! Вот и говори после этого, что все компьютерные программы – детерминистические :)
Два раза в неделю наша команда собиралась на "stand up meeting", на котором каждый рассказывал, что он сделал за последние несколько дней. Каждую неделю нужно было сдавать коротенький отчёт о том, что было сделано, и что планируется на следующую неделю. По понедельникам у нас были собрания с менеджером, на которых он рассказывал о планах и сроках, спрашивал, как продвигается работа, и всё ли в порядке. Каждую пятницу после работы все собирались на так называемый TGIF – собрание всех содрудников Гугл в часовом поясе – на котором основатели компании, менеджеры и просто сотрудники рассказывали о глобальных планах, достижениях, неудачах, о делах компании в целом. Доступ на это мероприятие был строго ограничен – только сотрудники Гугла, никаких гостей.
В самом помещении компании всё сделано в стиле "Гугл" – стулья в столовке четырех цветов – синего, красного, зелёного и жёлтого. На стенах вместо картин – различные варианты написания "Гугл", которые они используют по праздникам, в честь дней рождения известных людей, и так далее. А когда рабочие несли по коридору тяжелое оборудование и немножко продырявили им стену, кто-то повесил вокруг дырки рамку для фотографии и сделал подпись в духе "Эта дырка была сделана такого-то числа таким-то предметом".
Столовка называлась "Sudo cafe", и на стенке был нарисован небезызвестный комикс с XKCD (http://xkcd.com/149/). Кормили нас три раза в день, и кухня была очень даже хорошая – за исключением дней, когда они готовили индийскую пищу – но это уже дело вкуса. Два раза в месяц можно было приглашать к себе одного гостя на обед, но не больше – еда предоставлялась совершенно бесплатно как для сотрудников, так и для гостей. Один раз даже бутерброды с чёрной икрой были... Всегда свежие фрукты и овощи, а на каждом этаже – холодильник с молоком, йогуртом, соками, холодным чаем и другими напитками, а также небольшой шкафчик с разными вкусняшками – орехами, сухофруктами, печеньем, шоколадом, чипсами – на любой вкус.
В соседнем здании был спортзал, куда можно было приходить в любое время. Два раза в неделю приходила инструктор по йоге и пилатесу, и можно было вместе с ней заниматься. По соседству со спортзалом был массажный кабинет, куда попасть можно было только по записи, и записываться нужно было на неделю вперед. Массаж, правда, был не бесплатным, но всё равно стоил намного дешевле, чем в любом массажном кабинете. На этаже, где я работала, была "игровая комната" со столом для настольного тенниса, мягким диваном, огромными экранами на стене, и разными игровыми приставками с большим выбором игр.
Кроме всего этого, для нас организовывали разные мероприятия, в том числе поход на игру в бейсбол, прогулку на катере (мимо дома Билла Гейтса), поездку на курорт на два дня для всех сотрудников, пикники на выходных... В общем, скучно не было!
А ещё теперь я лично знакома с Джошем, фотография которого использована на http://www.google.com/chat/video :)
"Мне бы твои проблемы," – говорят мои одногруппники, не понимающие мучений человека, которому приходится выбирать между должностью программиста в Гугл и менеджера проекта в Майкрософт :)
Без комментариев…
Мечта любого американского студента – найти хорошую работу на лето, а потом, после окончания университета, заполучить ее навсегда. Поэтому каждый год все крупные компании получают огромное количество резюме. Если резюме понравилось, студента приглашают на интервью (ака собеседование), по результатам которого ему назначают либо еще одно или несколько интервью, либо говорят "No, thank you". В этом году я подсунула свое резюме всем, кому только могла, и в результате получила приглашение на интервью с Майкрософт (всего приглашение получили 24 студента из всего университета) и на интервью с Гугл (которые в результате взяли на эту "должность" 35 студентов со всей Америки).
В общем, я думала, что свое второе интервью с Гугл я катастрофически провалила, потому что я потратила очень много времени на решение простой задачи… но, как оказалось, все было не так плохо, и они предложили мне работу :)
Теперь осталось всего на всего пережить экзамены и следующий семестр.
Должна признать, за этот семестр я выучила много нового. Например, я теперь знаю, что завершившие работу процессы в операционной системе называются "зомби". А я сначала думала, что мои друзья с курса ОС надо мной издеваются :)
А еще я положила в банк деньги на депозит, и два дня назад мне пришла выписка со счета с начисленными процентами. Мне начислили один цент :)
Пошла готовиться к следующему экзамену…
Выгребая из почтового ящика очередную порцию спама, наткнулась на сообщение с темой "Кто ж будет в мире прав, коль слушать клеветы?", и мне стало очень интересно, что же там внутри. Как оказалось, кроме заветной ссылочки на рекламируемый ресурс, там было несколько строк из "Красного и черного" Стендаля… Тоже мне, нашли откуда текст взять :)
(Происхождение названия здесь)
Давным-давно, еще 21 сентября у моей соседки по комнате был день рождения, и я испекла ей в подарок торт. Потом несколько совершенно незнакомых людей сообщили мне, что они попробовали мой торт, и им очень понравилось.

22 сентября наш университет почтил своим присутствием г-н Гейтс в связи с "посвящением" нового учебного корпуса. Он рассказал много интересного о совместных программах нашего университета, Майкрософт, и его фонда, а также ответил на вопрос, что он думает по поводу пиратского ПО :) В результате мне досталась симпатичная брошюрка, дармовая футболка слоновьего размера, и моя фотография (в духе "третий слева в последнем ряду") в видео , показывающем историю нашей кафедры. Примечание: даты не соответствуют действительности. А еще у меня есть ссылка на замечательную фотографию, на которой Хиллман (слева) и Гейтс (очевидно, справа) пытаются тупыми ножницами разрезать ленточку, у них не получается, и им очень-очень смешно :)

Ах да, чуть не забыла – еще в Питтсбурге 24-25 сентября проходил саммит G-20, но лично меня он практически обошел стороной – я заметила только резко увеличившееся количество полиции на улицах, вертолетов в небе, и машин скорой помощи. А вот моих знакомых три раза за один вечер обработали слезоточивым газом, потому что они оказались не в том месте и не в то время…
На этих выходных я решила заняться готовкой и вкусно пообедать, и вот что из этого вышло: (пельменей 142, вареников, которые я не сфотографировала - 60)





А еще у меня был экзамен по программированию, и вот моя шпаргалка:

Конечно, это далеко не все, что произошло за последние две недели, но ввиду катастрофического отсутствия времени я ограничусь вот таким вот фотоотчетом.
Поскольку я живу довольно далеко от магазина, продукты мне приходится покупать раз в неделю. Соответственно, каждый раз, когда я их покупаю, мне приходится нести домой больше одного пакета, и если на улице дождь, зонтик мне держать не в чем. Поэтому я стараюсь покупать продукты в те дни, когда дождя нет. Но выбор у меня не слишком велик – суббота или воскресенье. Вчера был очень сильный дождь, так что пришлось отложить шопинг до сегодняшнего утра.
Небо было пасмурным, в воздухе висела легкая морось, но дождя не было. Я тоскливо окинула взглядом нависшие над Питтсбургом свинцовые тучи, с тяжелым вздохом положила в сумочку зонтик, зная, что он мне все равно не поможет, и отправилась за покупками. Я не спеша дошла до автобусной остановки, дождалась свой автобус и уже через десять минут была в магазине. Купив всё необходимое, я расплатилась и вышла из магазина с тремя большими и одним маленьким бумажным пакетом. Автобус, на котором я планировала ехать домой, приехал раньше времени, и как раз отъезжал от остановки, когда я выходила из магазина.
Следующий автобус должен был быть через полчаса, а пешком идти минут сорок. Рассудив, что сегодня мои покупки не слишком тяжелые, а дождя всё равно нет, я решила пойти пешком. Нужно ли говорить, что ровно через пять минут начался противный мелкий дождик… Тяжело вздохнув, я поставила пакеты на землю, достала из сумочки мобильный телефон, наушники, и включила Океан Эльзы, чтобы не так грустно было идти домой. По дороге я сообразила, что могу сесть на другой автобус, идущий по проспекту, на котором я живу, и хотя бы вторую половину дороги проехать на нем. Когда я переходила дорогу, один из трех больших пакетов порвался, и мои драгоценные продукты высыпались на проезжую часть. К счастью, я переходила на зелёный, так что у меня хватило времени все собрать. Я разложила продукты из дырявого пакета по оставшимся трём, и как раз подъехал автобус. Довольная, я села в него и расслабилась. Как оказалось, зря…
Дело в том, что сегодня проходит забег в честь чего-то там, и часть улицы, на которой я живу, перекрыта. Мой дом, естественно, находится ровно на середине перекрытой части. Так что автобус благополучно повернул на другую улицу, и поехал чуть ли не в противоположную сторону. Выяснив у водителя, что домой я так не доеду, я вышла из автобуса, и пошла в сторону дома. Вместе со мной вышла еще одна девушка, которой нужно было в университет, то есть в ту же сторону, что и мне. Мы пожаловались друг другу на жизнь, повздыхали… И тут я поскользнулась и упала в лужу! Самое интересное, я даже не ушиблась – хоть какая-то польза от моего айкидо, следы грязи на джинсах остались именно в тех местах, на которые я должна была упасть, правильно сгруппировавшись. Выразив свое мнение о сложившейся ситуации коротким, но ёмким словом "shit", я встала, достала из сумочки бумажную салфетку и начала вытирать грязь с курточки. Девушка услужливо сообщила мне, что у одного из пакетов оторвалась ручка, но яйца не разбились и, как-то странно на меня посмотрев, сказала, что ей нужно быть в университете в 11 утра, и поэтому ей нужно спешить, пожелала мне удачного дня и ушла. Только сидя дома я поняла, почему она на меня странно смотрела – потому что после того, как я упала, меня больше волновал тот факт, что я испачкалась, чем то, что я могла удариться.
Кое-как обтерев грязь и взяв несчастный пакет за одну ручку и за другой край, я уныло побрела домой. Когда мне оставалось идти минут десять, начался ливень, и все пакеты, пережившие предыдущие приключения, разлезлись у меня на глазах. Я минутку постояла, посмотрела на них, потом начала спрашивать у проходящих мимо людей, не найдется ли у них целлофанового пакетика. Пакетика не было ни у кого, но, к счастью, все купленные мной овощи были в довольно больших прозрачных пластиковых пакетах, только без ручек, так что я разложила оставшиеся бездомными продукты в них, засунула батон в сумочку, взяла в каждую руку по охапке своих несчастных пакетиком, и пошла дальше. Поскольку пакеты стали грязными и мокрыми, они так и норовили выскользнуть у меня из рук, и я вздохнула с облегчением, когда через две минуты увидела на улице дворника. Я попросила у него мусорный пакет, куда сложила все свои покупки, и пошла дальше. Идущие по улице люди сразу же начали на меня коситься – еще бы – растрепанная, мокрая, грязная, с батоном в сумочке и огромным мусорным мешком – просто вылитый бомж :)
К счастью, я уже дома, приняла душ, выпила горячего чая, постирала джинсы. Правда, на работу я не пойду – хватит с меня на сегодня приключений…
Сегодня с утра я вместе со своей одногруппницей Машей (она родилась в Украине, но уже больше 10 лет живет в США) отправилась разведывать местные "русские" магазины. Всего мы нашли три, но зашли только в два, потому что Маша купила себе вареники, и они начали таять.
Как оказалось, хозяйка одного магазина из Харькова, а хозяин второго – из Луганска, так что, думаю, правильнее было бы назвать эти магазины "украинскими".
Выбор продуктов, конечно, не колоссальный, но зато очень узко специализированный – пельмени, вареники, колбаса, творог, сгущенка, пряники, сушки, икра… Я купила себе пачку пряников, которые были сделаны (представьте себе!) в Киеве :)
Баночка красной икры (с виду около 200 граммов) стоит 36 долларов, и продавец настойчиво предлагал мне ее купить под предлогом Еврейского нового года, но я отказалась. Я столько икры и до обычного Нового года не съем, а угощать кого-то меня бы жаба задавила :)
Правда, Маша чувствовала себя несколько не в своей тарелке, что меня удивило. Ей почему-то показалось неудобным, что продавцы сразу же начинали расспрашивать, откуда мы, где учимся и так далее. Мне, наоборот, было приятно перекинуться парой слов, оценить обстановку, оставить после себя приятное впечатление :) Наверное, это не по-американски… В таком случае, это не та ситуация, в которой я считаю нужным поступать так, как поступают окружающие. Пусть отмалчиваются дальше :)
Сегодня к нам в CMU съехались представители разных компаний, известных и не очень, нанимать студентов на работу. Желающих получить работу было около 1000, и все в строгих костюмах, с папочками в руках, такие деловые... К сожалению, в основном компании интересовались претендентами на постоянную работу, а не только на лето, так что всюду я услышала один и тот же вежливый ответ: "Мы с Вами свяжемся в ноябре/декабре/январе… может быть". Надеюсь, что хоть кто-нибудь выполнит свое обещание :) По крайней мере, вот и посмотрим, хорошее ли получилось у меня резюме – я напечатала его на плотной бумаге цвета слоновой кости, и на каждом в графе "Интересы и увлечения" написала красивым шрифтом, что мне нравится каллиграфия. Кроме этого, конечно, и остальное содержимое у него вполне пристойное :)
А пока в моем wish-list'е остаются получившие копию резюме Adobe, Apple, Google, Microsoft, Amazon и Deutsche Bank :) Кто первый?
Да уж, неделька выдалась не из легких… Мне нужно было сдать три домашних работы в один день, и так получилось, что одну я закончила очень заранее, вторую – за день до срока, а третью только начала за день до срока, и в результате не совсем успела. Кроме того, у студентов моей группы был в тот же день тест, и мне нужно было прийти на работу пораньше, чтобы распечатать их задания. Надо сказать, я разочарована – из 19 человек только 7 знали, сколько памяти требуется на хранение одной переменной типа int. Мои любимые ответы – "1024 байта" и "по 1 байту на каждую цифру"… Ладно, я могу понять (ну, не то, чтобы понять, но хотя бы представить), если люди написали 2 байта или 8 байт – хоть не так далеко от истины.
Мои любимые магические баночки продолжают меня преследовать – или просто у меня глаз-алмаз, и я все время отмеряю одинаковый объем продуктов? :)

Еще ко мне сегодня в гости приходила Дунька, и мы окончательно доели все пельмени и вареники, которые были у меня в морозильнике. Напомню, что до массового нашествия вареникоедов у меня было 80 пельменей с вишней и 60 вареников с маком.
А еще я сегодня купила себе маркер, который можно стереть резинкой. Когда я его увидела, я не поверила (потому, наверное, и купила…). Как оказалось – таки да, он действительно стирается, и даже следа почти не остается :)
Пойду, пожалуй, делать свои домашние задания…
Сегодня к нам в университет "на чашку чая" приходила сотрудница отдела кадров Майкрософт. Чая, правда, не было, но зато были пирожные и сок :) Она рассказала нам, как круто на них работать, и что компания похожа на большой универмаг, в котором можно найти все, что душеньке угодно. Оказывается, в стандартной команде работает три типа людей – программисты, тестеры и менеджеры, и все они являются равноценными в плане престижа и зарплаты. Лично я бы предпочла быть менеджером, это должно быть куда более интересно, чем сидеть над чужим кодом и выковыривать из него баги… Еще она уверила нас в том, что в Сиэттле летом замечательная погода :) В прошлом году они взяли на постоянную работу 1200 студентов, и эта цифра немного обнадеживает. Хотя, с другой стороны, заявлений могло быть в разы больше… Но я думаю, что попробовать в любом случае стоит. Было очень интересно слушать, потому что она рассказывала увлеченно – сразу видно, что человек на своем месте.
Кроме полезной информации я получила маленький бонус – Microsoft Office Professional Edition в подарок, так что этот текст я набираю уже в своем личном лицензионном Ворде :)