Игорь Савчук - Отъявленный программист: лайфхакинг из первых рук
Клянусь своим хвостом, это работает. Утверждаю как матерый грызун, ибо в период с 2008 по 2010 год я собеседовался в дюжине стран и контор как по телефону, так и очно — это всегда срабатывало. Первое впечатление было всегда не в мою пользу (и я смирился с этим), ну уж потом на выходе я и сам не знал, как сделать так, чтоб они все отстали. Ибо их (офферов) много, а я — один.
Поэтому рекомендую постоянно тестировать свои способности и навыки, чтобы находить в себе свои личные сильные стороны (то, что вы делаете лучше всего, а в идеале лучше остальных) и развивать их, целенаправленно прокачивая. Не хвататься за первое попавшееся предложение, а мыслить стратегически, не сиюминутным рублем... вот я (ну о ком мне еще говорить, как не о себе?) на протяжении десятков лет, сидя в своей деревне, нес существенные финансовые потери. Ну, пусть не десятков. Но лет пятнадцать — точно. Зато теперь прицениваюсь к самолетам (реактивным) и смотрю, сколько стоит аренда места в ангаре. На дом еще не скопил, но квартиру могу купить в любом штате свободно, только не хочу терять мобильность. До сих пор воспринимаю зарплату как мелкие карманные деньги, работая на далеко не самой оплачиваемой работе, но зато на своем месте, где я всему активно учусь и развиваюсь. Но у меня свой собственный расчет. Он — дальновидный.
Подводя итог: основная стратегия, о которой я тут втираю, — это не тянуть свои скилзы под абстрактные требования, а, наоборот, развивать в себе свои лучшие качества. «Не стоит прогибаться под изменчивый мир — пусть лучше он прогнется под нас». Сначала стоит достоверно выяснить, что у вас получается лучше всего (в идеале лучше, чем у большинства), а затем — интенсивно копать в этом направлении.
Если говорить предельно кратко, чем отличается типичное американское собеседование от российского?
В России на собеседованиях часто пытаются раздавить, любой ценой показать, что ты ничего не понимаешь, — чтобы снизить зарплату. Людей там не ценят так, как деньги. Здесь, в США, чаще всего наоборот: если видят, что ты стоящий специалист, в тебя вцепляются мертвецкой хваткой и больше не отпускают, предлагая лучшие условия на рынке и идя во всем навстречу. Что же касается наболевшего — это общая специфика РФ, — там мало продуктовых компаний и еще меньше компаний, в которых постоянно появляются линейки принципиально новых продуктов (принципиально новых не технологически, а написанных «с нуля» без «легаси»). Поэтому в РФ разгребание «застоялых говен» входит в job description по умолчанию.
Образование и карьера
Невольно выходим на тему образования, которая всегда актуальна для любого айтишника. Для начала — есть ли у тебя высшее образование в области ИТ?
Институтов я не кончал. Я сделал свой выбор и бросил вуз сразу после поступления. До сих пор не знаю, что я упустил и как сложилась бы моя жизнь, поступи я иначе. История не знает сослагательного наклонения.
Сейчас с этим проще — самообразование становится очевидным трендом. Диплом — ничто, знания — все. Откуда сегодня можно черпать качественную информацию?
К примеру, на YouTube можно найти множество видеозаписей лекций по computer science от различных лекторов из самых различных мировых вузов. По части информатики с большим отрывом лидирует арабский мир, причем, что показательно, лекции почти всегда на английском. За ними следуют США (с большим отрывом от остальных).
При этом легко видеть, что не все лекторы одинаковы: одни объясняют вещи глубоко и понятно, другие же — ущербно и загадочно: у таких можно только вызубрить, сдать и забыть, поскольку пользоваться этим все равно не получится.
Отмечу, что кроме знаний институт дает еще и связи, а связи решают все. Потому что после вузов народ разбегается кто куда, а разбежавшись, тянет к себе своих. Впрочем, это сильно зависит от конкретного вуза и страны.
В наше время также доступно огромное количество книг...
Хороших книг и раньше было немного, и даже сегодня их чуть меньше, чем совсем ничего, а классика так и остается классикой. Например, в семидесятых была одна «Книга Дракона», а сейчас доступны десятки качественных вариаций на тему, но в них от 70 % до 90 % — это пересечения и повторения, а потому первую книгу читаем вдумчиво, остальные бегло пролистываем в поисках различий.
Опять же, давай поможем новому поколению сделать первый шаг в эту самую классику. Взять, например, известную книгу Кнута — не все способны понимать изложение алгоритмов, описанных в ней, хотя, знаю, многие усердно штурмовали их. Конкретный пример: Heap sort — несложный, в общем-то, алгоритм, который можно в пять минут объяснить на пальцах, но я столкнулся с тем, что некоторые коллеги не понимают его в наукообразном изложении Кнута. Как правильно грызть гранит науки? — вопрос на миллион для профессионального грызуна Мыщъха.
Нужно заказывать похожие или аналогичные книги с Амазона, где их очень много. К примеру, сейчас я углубился в теорию CS и постоянно покупаю кучу разных книг. Большинство из них давно не переиздавались, но можно купить б/у. Среди них попадаются очень и очень хорошие. Вас какие алгоритмы вообще интересуют? Алгоритмов много и все из разных предметных областей, но книг, их описывающих, — еще больше.
Взять, например, упомянутого Кнута. Да, у него изложение своеобразное. Но статьи, на которые он ссылается в своей книге, зачастую описывают эти же алгоритмы намного понятнее и доступнее. Многие из этих статей опубликованы в журналах, которых сейчас уже не достать, но сборники таких статей часто доступны в виде отдельных книг. Например, вот: Computer Algorithms: String Pattern Matching Strategies (ISBN-10: 0818654627). В этой книге один и тот же алгоритм последовательно описывается разными авторами и по-разному, что существенно облегчает понимание новичку.
Насколько я могу судить, молодое поколение не очень-то много читает, судя по всему, потерявшись в этом информационном изобилии.
Согласен. Но сейчас, по крайней мере, есть документация. Есть SDK и куча примеров. А вот в свое время, чтобы заставить CD-ROM проигрывать диски, мне пришлось дизассемблировать пару программплееров, реконструируя протокол, причем так приходилось делать не только мне одному. Информацию собирали буквально по крупицам. Ассемблер x86 я изучал в досовском debug.com путем анализа воздействия команды из реальной программы на флаги, память и регистры процессора.
Но у моих предшественников и этого не было. Пионеры информатики не могли почерпнуть знания в книгах, поскольку эти книги им еще предстояло написать. По сути, с тех пор ничего не изменилось, просто линия фронта сместилась. Да, сейчас можно набрать в Гугл вопрос: как развернуть список на Java/.NET/C и получить готовый код для «копи-пасты». Зачастую, даже несильно кривой и рабочий. Но если спросить Гугл, «как написать Гугл», то ничего полезного он все равно не скажет, так как непрерывно совершенствуется, а над проблемой поиска бьются лучшие умы человечества. Лет через надцать об этом можно будет прочитать так же свободно, как сейчас мы читаем принципы построения компиляторов в «Книге Дракона», в результате чего создается огромное множество новых языков и технологий, которые не только создаются, но и выживают в конкурентной борьбе.
Кстати, давайте побухтим о молодежи. В чем отличие молодежи от «олдскул», как ты видишь?
Если бы во многих вопросах молодежь не клала меня на лопатки, я бы бухтел. А так у нас просто разделение труда и совершенно разные подходы к решению задач. Я по старой привычке сначала включаю мозги, затем внезапно вспоминаю, что Гугл рулит. И минут через полчаса рожаю ответ.
В это время молодые коллеги через свои фейсбуки и твиттеры быстро-быстро находят того, кто знает ответ, и уже через три минуты уходят пить кофе. Да, у них другой стиль. Они более социальные. Они не привыкли по умолчанию полагаться лишь на самих себя, потому что у них онлайн 24/7 и куча друзей в контактах. Почему сразу НЕТ, если ДА?
Вот тут фильм вышел на экраны (к моменту публикации интервью уже зашел) Edge of tomorrow. Фильм — фигня, но там инопланетяне только на первый взгляд индивидуальные особи, а на самом деле это единый организм со своим мозгом и нервной системой. Вот таким организмом и стало современное поколение. Это же МЕГА-МОЗГ планетарных масштабов, круче, чем Солярис.
Возвращаясь к началу: нас читает множество молодых и начинающих айтишников, которые делают свои первые шаги в ИТ в направлении к упомянутому тобой мега-мозгу. Какие бы общие советы ты им дал? Что необходимо для взлета карьеры в ИТ?