Отъявленный программист: лайфхакинг из первых рук - Игорь Савчук
Шрифт:
Интервал:
Закладка:
Задача первых — делиться вдохновением, чтобы побуждать. Задача вторых — работать, чтобы исполнять прихоти других. Так абстрактные планы меньшинства никак не пересекаются с прагматичной конкретикой большинства, утверждают китайцы.
В заключение этого заковыристого китайского трактата постулируется неожиданный вывод — никогда не имей дела с теми, кто тебя не ценит и не любит (без исключений и компромиссов). Иначе сам не заметишь, как станешь безликой шестеренкой чужого бизнеса.
Приложение: несколько технических фактов о TempleOSНа данный момент исходники этой ОС составляют более 150 000 строчек кода (включая собственный компилятор).
Система использует собственный компилятор Holy-C («ниггеры» произносят этот язык, намеренно коверкая как «холи щит») — это диалект языков семейства C/C++.
Это изначально 64-битная система и по своей архитектуре во многом воспроизводящая Commodore 64. Вся TempleOS полностью размещается в кольце ring-0 и использует Single-Address-Mapping.
Для взаимодействия (интерпроцессинга) с другими программами и процессами требуется прямая перезапись содержимого участков памяти этих самых программ. Дешево и сердито — кредо всей ОС.
Никаких драйверов нет и не нужно — все обращение к железу можно осуществлять напрямую (если вы сможете, конечно). Все это напоминает Commodore 64, где все зиждется на честном слове и вашем глубоком понимании происходящего.
Поддержки сети нет и не будет, равно как и USB, — по довольно витиеватым религиозным причинам (нет времени объяснять, но ЦРУ и уже знакомые нам «ниггеры» фигурируют в этой длинной истории).
Есть множество встроенных игр разной степени тупости.
У системы нет аналогов пейджинга страниц и файла подкачки, характерных для современных ОС, она загружает и держит в памяти все открытые и запущенные программы. Поэтому в readme.txt Бог довольно цинично советует прикупить «как можно больше оперативки».
В качестве файловой системы используется открытая FAT32 с дополнительной самописной поддержкой метафайлов в качестве расширения.
Встроенный архиватор — все файлы физически хранятся на диске уже заархивированными и запароленными (нет времени объяснять почему).
У системы есть своя самописная графическая оболочка (что-то типа X-ов в *nix), а также параллельный режим командой строки, где в качестве оболочки выступает прикрученный туда компилятор языка «холи щит» (как бы круто это ни звучало, но это всего лишь вольная вариация на тему шелла Ch).
У ОС за все время ее существования чуть больше 50 000 скачиваний (Терри переживает, что ЦРУ в том числе невозбранно скачивает его ОС для изучения, но пока ничего не может поделать с этим коварством).
Система поставляется с полным открытым исходным кодом в виде public domain и написана на собственном диалекте С. Вы можете использовать ее и модифицировать как угодно на свой страх и риск (если, конечно, выучите «холи щит», то есть преодолеете барьер, воздвигнутый создателем ОС как раз против праздного любопытства разного рода «ниггеров» из ЦРУ).
«Холи щит» в TempleOS сочетается с ассемблерными вставками и низкоуровневым программированием контролеров устройств. Видимо, именно это та причина, по которой Терри так ненавидит UEFI.
Всем своим хэйтерам Терри советует смириться, по его данным, «существование этой системы было предсказано в Библии много веков тому назад».
Часть II Страна советов: о программистской карьере
ГЛАВА 8. Вся правда о собеседованиях в Google: за пределами NDA
В пятницу 9 июля 2007 года на многих калифорнийских автобанах появились рекламные щиты с довольно странным содержанием. На их большом полотне не было никаких опознавательных знаков или каких-то фирменных логотипов, все, что было размещено, — лишь загадочный текст:
{Первое 10-значное простое число, найденное в последовательности разрядов e}.com.
Непосвященные обыватели в недоумении проезжали мимо, ведь данное сообщение предназначалось лишь тем, кто способен его понять, — тем программистам, у которых развитое чувство любопытства удачно сочеталось с сообразительностью. Конечно, для решения этого ребуса проще всего составить программу, которая могла бы перебирать значения константы е и проверять все ее 10-значные значения на факт их соответствия простому числу. Найденное число, очевидно, было частью URL-адреса, полный адрес которого можно получить, просто добавив к нему суффикс доменной зоны .com. Попав на заветный сайт, умники натыкались на вторую зубодробительную задачу, где требовалось выявить скрытую закономерность в наборе якобы случайных цифр. И только если искомое число было найдено и требуемое действие совершено, счастливчик попадал на скрытую страницу со следующим сообщением на своем экране:
Одна из вещей, которые мы усвоили, создавая Google: то, что ищешь, всегда легче найти, если оно само ищет тебя. Мы ищем лучших в мире инженеров. И вот ты здесь. Нетрудно догадаться, что к нам каждый день поступает множество резюме, и мы придумали этот нехитрый процесс нашего знакомства, чтобы улучшить отношение сигнал/шум.
Подобные сюрреалистические послания от этого именитого работодателя посылаются в мир с завидным постоянством как на неприметных растяжках перед крупными мировыми учебными заведениями, в скрытой рекламе на телевидении, так до сих пор избирательно предлагаются по какому-то неведомому для обычных смертных алгоритму при входе в свой обычный почтовый ящик GMail.
* * *Как заявляет популярная ныне уже и на своей бывшей родине в России американская писательница Айн Рэнд: «Двумя абсолютными величинами и основой системы ценностей у любого обычного человека являются вовсе не смерть, государство или налоги, а именно его жизнь и работа». Раскрывая эту мысль — настоящая работа не только гармонично развивает личность, принося ей глубокое удовлетворение и общественную пользу, но и обеспечивает то качество жизни, которое позволяет поднимать планку своих устремлений на новый уровень.
Неудивительно, что в связи с этими, в общем-то, очевидными установками многие отечественные специалисты хотели бы попробовать свои силы в крупнейших мировых ИT-компаниях, которые с лихвой как удовлетворяют самые смелые профессиональные амбиции, так и обеспечивают безусловно высокий материальный уровень жизни.
В последние годы одна из крупнейших мировых компьютерных компаний Google демонстрирует рекордные в своей истории темпы найма. В среднем компания получает в год около миллиона анкет от соискателей, но несмотря на это, на момент написания этих строк в ней оставались открытыми около 900 свободных позиций, для которых шел активный поиск и подбор кандидатов по всему миру. Google привлекает практически всех: сисадминов, дизайнеров, тестеров и архитекторов ПО и баз данных и особенно — программистов (носители родных для компании языков C/C++/C# и Python здесь особенно в почете). Традиционно в этом потоке свежей крови весьма ощутимую долю новобранцев составляют выходцы из Восточной Европы и России, которые славятся своей советской математической школой и высоким качеством компьютерного образования, подтверждаемого неоднократными победами на международных профильных турнирах.
Если вы когда-нибудь подумывали попробовать свои силы в Google, именно сейчас настал наиболее благоприятный для этого момент. Увеличивающийся наем, с одной стороны, и ухудшающаяся местная экономическо-политическая конъюнктура, с другой, — все это подталкивает попытать удачу в далекой и легендарной поисковой компании. На фоне практически полного отсутствия русскоязычных материалов на подобную тему я хочу в меру своих сил помочь сделать этот первый и психологически сложный шаг для карьеры в международной компании, для чего предлагаю подробное интервью о деталях прохождения подобного собеседования. Сразу подчеркиваю: я не имею никакого отношения к Google, и предоставляемая мною информация носит неофициальный и, возможно, отчасти субъективный характер. Я лишь делаю попытку последовательно описать весь цикл прохождения трудоустройства от начала до конца, учитывая корпоративную специфику именно Google. Кроме того, я постараюсь обобщить в художественной форме опыт прохождения аналогичных интервью сразу у нескольких сотен других кандидатов, чтобы представить максимально усредненную и достоверную картину этой процедуры.
У меня нет связанных рук благодаря стандартным условиям неразглашения вопросов и задач (NDA), также я буду стремиться излишне не детализировать процедуру найма, но постараюсь выделить типичные закономерности и последовательности подобных собеседований, которые в плане обобщающей информации помогут вам правильно расставить акценты и приоритеты, скорректировать свои ожидания в сторону большей реальности.