Чего вы можете узнать из первого интервью 30-летнего кодирования

1656486136 chego vy mozhete uznat iz pervogo intervyu 30 letnego kodirovaniya

от Шона Чой

Пройдя путь от шеф-повара-ветерана ВМС США до программиста

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

В этой статье я хочу применить другой подход и поделиться совсем другим личным опытом подготовки 30-летнего повара-ветерана ВМС США к его первому интервью с программированием.

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

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

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

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

17Lim9DNkHO77zj86rVvg2qBmJQACWWrffom
Случайное изображение шеф-повара с Pixabay

Почему внезапное изменение карьеры?

Насколько провокационно звучит название, члены моей семьи были в шоке, когда мой младший брат, 30-летний ветеран ВМС США, год назад опубликовал новость о том, что он вернется в колледж на специальность компьютерные науки. .

Дело не в том, что мой брат сделал неудачную карьеру повара. Фактически он окончил Кулинарный институт Америки, являющийся одной из самых престижных школ кулинарного искусства в Соединенных Штатах, и сумел получить достаточно хорошо оплачиваемую работу кулинарного менеджера в технологической компании Силиконовой долины.

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

Он знал, что он не сможет продолжать долго, и ему нужна карьера, которая была бы менее требовательна физически. С детства он разбирался в технике и считал, что для него было бы хорошей идеей вернуться в школу, чтобы изучить программирование. Таким образом, он присоединился к 2-летней программе в Университете штата Орегон, чтобы получить степень бакалавра по информатике.

Подготовка к первому интервью по кодированию

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

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

D79bApBHaf4rzjDb6wt3qGlXRv7Kysqy4J2G
Книга для взлома интервью с кодировкой

После просмотра книги несколько дней, это был первый разговор.

брат: Как я могу запомнить решение всех 189 вопросов программирования?

я: «Вы этого не делаете и не должны. Вы должны изучить алгоритмы и структуры данных, стоящих по каждому вопросу».

брат: «Но очень много алгоритмов и структур данных, которые нужно изучить, и у меня не хватает времени. Позвольте мне сначала попытаться запомнить эти проблемы».

я: «Я могу вас заверить, что проблем больше, чем алгоритмов…»

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

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

Первое интервью с кодировкой…

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

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

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

Столкновение с невидимой проблемой

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

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

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

Чрезмерное предпочтение одному языку перед другим

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

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

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

Это случилось и с моим братом. Он был лучше знаком с C++ и JavaScript, и когда я попросил его реализовать простую библиотечную функцию, такую ​​как функция мощности, он исчез и не мог думать ни о чем больше, чем о наивной реализации.

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

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

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

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

Говорить слишком мало

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

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

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

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

Конечно, предлагать неправильный подход плохо. Поэтому всегда думайте, прежде чем что-либо предлагать. Поэтому предложение, которое я предложил, состоит в том думайте вслух, но будьте четкими и структурированными в том, что вы говорите.

Чрезмерная самоуверенность

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

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

В большинстве случаев, когда люди видят проблему, о которой они знают, они бездумно просматривают код. И чаще всего это происходит с лёгкими вопросами.

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

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

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

Последние мнения

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

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

Спасибо, что прочли мою статью, и пожалуйста, поделитесь своим опытом! Я уверен, что они будут очень мотивировать всех!

Добавить комментарий

Ваш адрес email не будет опубликован.