Посмотрите на скриншот ниже.

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

Разработчик Google - это не тот, кто работает в Google. И он не из тех, кто готовится к работе в Google.

Разработчик Google - это тот, кто в своей работе в значительной степени полагается на поисковые запросы Google.

Я знаю многих старших разработчиков, которые могут набирать код во сне. Они знают свои API наизусть. Такой опыт приходит не только с гением программирования. Это происходит из-за длительного использования уникальных технических инструментов и языковых стеков.

Эти старшие разработчики всегда будут ненавидеть разработчиков Google, которые не могут написать ни одной строчки кода без Google.

Но это не просто использование Google для написания кода.

Чем занимается разработчик Google:

Разработчик Google - не тупой программист. Он просто борется с множеством ограничений.

Разработчик Google - существо любопытное.

Даже несмотря на то, что у него очень блестящая квалификация (университетское образование), он в основном полагается на Google из-за постоянно меняющихся отраслевых потребностей в технических стеках. В отличие от своих старших, он никогда не получает удовольствия от знания каждого API наизусть, потому что ему приходится постоянно изучать новые языки и наборы инструментов.

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

Однако в большинстве случаев разработчик Google заканчивал разработку программного обеспечения через курсы и учебные пособия. Может быть, отличная книга, но не более того. Если ему довелось учиться в университете, он не выполнял много практических заданий.

Его ясность концепций позволила ему устроиться на работу в программирование. Но ему все еще не хватает практических навыков или он слишком ленив, чтобы справиться с ними, опасаясь, что его стек может скоро измениться. Это, в первую очередь, делает его плодовитым (изначально принудительным) разработчиком Google.

Возьмите любой из них: Git, командная строка, vi, сценарии оболочки - все, что сигнализирует о навыках программирования для магловских (нетехнических) смертных - плодовитый разработчик Google не хорош в любом из них. Он часто использует StackOverflow для копирования этих команд.

Если вы хотите проверить: это одни из самых высоких голосов на StackOverflow.

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

Разработчик Google не носит шляпы.

Но дайте ему конкретную задачу по программированию, и он засияет. Он найдет лучшее решение в кратчайшие сроки. Эта способность почти ставит его в разряд вундеркинда.

Поиск - его основной инструмент в работе. Дайте ему любую проблему, и хотя он знает решение наизусть, он:

  • Нечаянно запускается с Google.
  • Заканчивается на StackOverflow (даже на Reddit)
  • Копипаст, юнит-тест, демонстрация, исправление, повторение.

Если вы заметили, это была полная реализация!

Согласны с тем, что существуют различные виды испытаний и изменений конструкции, которые необходимо добавить в список выше. Затем есть обзоры, запросы на вытягивание, операции слияния и циклы выпуска.

И они часто выполняются вместе с руководителями / старшими разработчиками / DevOps. Обычно это те, кто в команде думает / взламывает шляпы.

Разработчик Google не носит шляпы.

Разработчика Google гораздо чаще признают, чем награждают.

Но все эти шляпники выполняют свою работу на основе реализации, сделанной разработчиком Google.

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

Разработчика Google гораздо чаще признают, чем награждают.

Не то чтобы пожилые люди не участвовали в этом - они всегда строят костяк кодовой базы, на которой разработчик Google строит свой замок. Его тоже часто наставляют. Но это единовременное вложение.

Проницательные старшие разработчики даже уклоняются от этой ответственности, полностью перекладывая рабочую нагрузку на плечи разработчиков Google, а позже крадут доверие.

Что такое карьера разработчика Google?

Он является универсалом в процессе становления, если промышленность не разорит его.

Разработчик Google редко может вызвать доверие у коллег и старшего поколения. Технические решения принимаются руководителями групп и архитекторами.

На собраниях, когда он поднимает вопросы о существующем состоянии кодекса, его слышат, но его проблемы редко принимаются. Независимо от того, насколько важна его проблема, спринт-доски всегда продиктованы руководителями - теми, кому доверяет руководство.

Если он предлагает возможную реализацию, старшие ребята отвлекают его, чтобы сосредоточиться на требовании.

Сделайте это после 5 встреч, затем отмените. Не торопись, чувак!

Он бежит, как сумасшедший ученый, пытаясь спасти мир от рук надвигающегося апокалипсиса, часто чтобы стать сбитым посланником.

Это не похоже на то, что разработчик Google не видит очевидных шаблонов проектирования или создает хорошие решения. Просто эти вещи для него второстепенные. Его первая линия атаки - это самый низкий уровень битов и байтов. И ему это удается постоянно, без чьей-либо помощи.

Разработчик Google - универсал в процессе становления, если только индустрия его не разорит.

Он остается исполнителем на всю жизнь в компании, если не произойдет перестановка в команде, которая де-факто сделает его старшим руководителем.

А как насчет обращения в другие компании?

Еще одна возможность - подать заявку в другие компании и пройти собеседование. Но здесь снова мешает его привычка сначала искать решение в Google.

Он знает основные реалии каждой библиотеки и фреймворка. Но серьезных представительских навыков ему не хватает. Это часто затуманивает его истинный потенциал в интервью.

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

Пример:

В: Каков ваш опыт разработки на основе пакетов?

Ответ разработчика Google: В нашем проекте у нас было более 500 зависимостей, и библиотеки A и B пришлось понизить с 7.2 - ›6.3 и 3.4 -› 2.2. Это исследование заняло у меня около 2 дней!

Ожидаемый ответ: Ад зависимости - это сложная задача, которую нужно оценить в своих циклах разработки.

Решение: Кандидат имеет опыт, тоже актуальный. Но он плохо оценивает влияние выбранного решения. Его нельзя нанять в качестве старшего разработчика.

Единственный возможный выход:

Если современные разработчики Google захотят повторить подход своих старших к успеху, они вряд ли добьются успеха.

Штатные старшие разработчики компетентны - в этом нет сомнений. У них были свои уродливые дни. Они заняли незаменимые позиции не только благодаря навыкам программирования, но и благодаря человеческим навыкам.

Самый важный из них - твердость. Твердость к своей работе, стойкость к своей команде, стойкость к цели своей организации.

Однако, если современные разработчики Google захотят повторить подход своих старших сотрудников, они вряд ли добьются успеха в рамках одной и той же организации. Даже в другой организации, потому что индустрия программного обеспечения сильно изменилась за последнее десятилетие.

Меньше всего им нужно копировать старших.

Я никогда не позволял учебе мешать моему образованию.

- Марк Твен

Более крупные организации застывают в иерархии.

Меньшие по размеру имеют меньший срок хранения. Основатели делают их достаточно большими, чтобы продавать их, только чтобы уплыть на тропический остров. У старшего разработчика стартапа нет долгосрочного будущего, если только основатель не его друг.

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

Чтобы добиться успеха, разработчик Google должен вырваться из порочного круга модерации со стороны старших руководителей, всеобъемлющих процессов и застойных структур.

И его единственное оружие - это то, что старшие разработчики часто использовали против него: упорство.

Это оружие необходимо использовать вместе с инструментом, с которым родился разработчик Google: Поиск.

Единственное, что нужно разработчику Google:

Если вы можете решить какую-либо проблему с помощью Google + StackOverflow, вам нужно больше таких проблем.

Они сказали: если вам нужно искать в Google все проблемы программирования, значит, вы плохой программист.

Я говорю: если вы можете найти решение какой-либо проблемы с помощью Google + StackOverflow, вам нужно больше таких проблем.

Поначалу они могли не иметь смысла вместе. Но когда у вас их много, появляется смысл создавать реальные решения.

Вам больше не нужно придумывать те проблемы, которые создают основатели, не желающие получать степень магистра делового администрирования, чтобы создать стартап из пепла.

Только сегодня вы искали в Google наиболее эффективную структуру данных для перебора каждого элемента массива и поиска нужного элемента.

for element in mySortedArray {
     //Cracking the code interview: I know it's O(log n)
     //Google Developer: This is not a FAAMG interview. Back off.
}

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

  • Найдите API, который предоставляет самые живописные метки / зараженные вирусом места / самые любимые изображения Insta. Я знаю, что это шаблон, но как только вы углубитесь, возникнут насущные проблемы, и вскоре вы окажетесь на золотом руднике.
  • Создайте окно поиска, запустите запрос, используйте приведенный выше код, чтобы просмотреть 50 результатов и показать их пользователю.
  • Корабль.

Итак, у вас есть решение SAAS. В этом отношении, когда родился Google, все было не так уж и иначе.

Я знаю, что все это кажется намного проще, чем есть на самом деле.

На самом деле я показал выше трюк, который советовал Стив Джобс: Уловка состоит в том, чтобы уменьшить масштаб.

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

Типичный основатель без технического образования начинает с поиска в Google:

Как создать стартап в социальных сетях

В конце концов, он нанимает агентство в Азии за 15 долларов в час, но ему отказывает зевающий инвестор, который видел то же самое тысячу раз.

Самое важное правило парсинга дерева: контролируйте количество ветвей, которые вы должны перебирать.

Разработчик Google уже знает сложную часть - он просто не осознает этого сам. Когда он строит через поисковые маршруты, он, естественно, сталкивается с множеством дублирований. Это потому, что Интернет, изобилующий форумами, показывает все конфликты идей и мнений. Когда он проектирует желаемое дерево, начиная с корня через поиск ветвлений, у него гораздо меньше шансов потерпеть неудачу, чем у невежественного основателя.

Это рекурсивно, требует больших усилий, довольно громоздко. Но если нужно знать, что это дерево с самого начала.

Следует помнить самое важное правило анализа дерева: вы контролируете количество ветвей, которые необходимо перебрать, чтобы получить все нужные вам плоды.

Заключение:

Все успешные учредители искали. Единственная разница заключалась в том, что это не всегда было в Google.

Если вам все еще нужно название для уникального карьерного пути, которым может следовать разработчик Google: это побочное предпринимательство.

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

Разработчик Google должен применить его к своему самому важному умению: Поиск. Делая это, он может объединять программы, модули и системы. Этого можно достичь только путем неустанной реализации.

Будь то Сергей + Ларри, Безос или Билл Гейтс - все крупные технологические основатели сами кодировали основные решения. Даже Стив Джобс, не являющийся программистом, проводил бессонные ночи, совершенствуя дизайн каждого устройства до последнего миллиметра. Все они без устали искали. Единственная разница заключалась в том, что их поисковые запросы не выполнялись в Google.

Они были разработчиками.

В недалеком будущем очень немногие разработчики будут работать на других.

За исключением тех, кто умеет гуглить, но не знает, что с этим делать.





Подробнее в программировании: