Мой первый успешный опыт собеседования
Сегодня я хочу рассказать о том, как 15 лет назад я получил свою первую работу, не имея ни опыта, ни знаний английского языка. У меня был только диплом колледжа, и я столкнулся с серьезной задачей, которая возникает у всех вчерашних выпускников: как успешно устроиться на работу.
Дело было в 2009 году. Меня пригласили на собеседование в Skype и поставили задачу: за неделю написать игру «Крестики-нолики» для iOS. Указали на документацию Apple, которая была доступна только на английском.
На тот момент я не знал английского языка и не имел опыта работы с macOS и Xcode. Поскольку у меня не было макинтоша, мне пришлось установить хакинтош.
Естественно, с первого раза установить систему не удалось, и мне пришлось изрядно помучиться. Однако я все же одолел снежного барса (Mac OS X Snow Leopard), и все необходимые устройства удалось заставить работать.
Таким образом, мне удалось установить хакинтош, и за неделю я смог создать полноценное приложение с игрой, используя поиск в Google и его корявый на то время перевод. Это было время до появления ChatGPT и других ассистентов, и, конечно, мне никто не помогал в этом процессе.
Я справился быстрее и лучше других кандидатов, и в результате меня приняли на работу.
Спустя три года меня сократили, и я перешел на фриланс. Там, буквально через месяц, я нашел вторую работу. После завершения проекта мне предложили постоянное трудоустройство, и это произошло без формального собеседования — скорее, это было знакомство с командой.
В поисках работы: Разочарование и новые реалии собеседований
Сейчас, когда мне приходится работать и одновременно искать новою работу, многое изменилось. В последние полтора года я столкнулся с трудностями, несмотря на 15 лет опыта работы и успешное окончание вуза в 2013 году. На первом месяце поиска я думал, что с таким опытом меня сразу «с руками оторвут», ведь везде утверждают, что специалистов не хватает. Но я был слишком самонадеян.
Собеседования с HR я проходил успешно, но заваливал этап технического собеседования. В отличие от моего первого опыта, сейчас работодатели не фокусируются на реальных знаниях и навыках; скорее, они просто начитались различных умных книжек и теперь требуют от кандидатов знаний, которые зачастую далеки от реальных потребностей на рабочем месте. Раньше мы решали «Задачи о переправе», и это казалось абсурдным даже тогда (и, к слову, я тоже с успехом их проваливал — странно, правда?). Но теперь работодатели придумали нечто еще более абсурдное — технические собеседования-экзамены, которые, как и «Задачи о переправе», не отражают настоящих навыков кандидатов и, кроме того, превращаются в лотерею. Поскольку вопросы, которые будут заданы на этих собеседованиях, заранее неизвестны, и к ним невозможно подготовиться.
Такие собеседования сосредоточены на узком наборе теоретических вопросов и задач, которые не всегда имеют практическое применение. Они не дают представления о том, как кандидат будет справляться с реальными задачами на рабочем месте.
Интуиция разработчика: Применение паттернов в контексте проекта
Современные работодатели все чаще требуют от кандидатов знаний паттернов проектирования и принципов SOLID, и часто задают вопросы по этим темам на технических собеседованиях.
Я не тот человек, который зубрит теорию без конца, не применяя её на практике. Поэтому мне порой трудно вспомнить все нюансы, но интуитивно я следую этим принципам.
Некоторые кандидаты могут легко рассказать о принципах SOLID и паттернах проектирования, и даже решают задачи на LeetCode, но на практике их код зачастую выглядит как «индуский» — затруднительный для понимания. Другие же могут злоупотреблять теорией до такой степени, что их решения становятся практически неотлаживаемыми.
Важно находить разумный баланс в использовании всех подходов. Не следует слепо следовать принципам, изобретенными «Бандой Четырех», и другим авторами. Эти принципы существуют для того, чтобы помочь нам в разработке качественного программного обеспечения, но их не стоит воспринимать как абсолютные догмы. Ключевым моментом является учет контекста и реальных потребностей проекта, а не механическое следование правилам.
Хороший разработчик интуитивно понимает, когда и как применять различные паттерны и принципы для создания понятного, поддерживаемого и эффективного кода.
В конечном итоге, наша цель — не только следовать теоретическим рамкам, но и создавать работающие решения, которые приносят пользу. Каждый проект уникален, и важно находить баланс между теорией и практикой для достижения наилучших результатов.
Почему HR отсекают опытных специалистов: Проблема поверхностных собеседований
Часто HR отсеивают опытных специалистов, предпочитая тех, кто умеет красиво говорить и легко поддерживать разговор, но не всегда может применить свои знания на практике. Это приводит к тому, что, когда нанятый кандидат совершает ошибки, они разводят руками и говорят: «Мы ищем, стараемся изо всех сил, но нормальных специалистов так и нет». В итоге вакансии могут оставаться открытыми годами, лишь время от времени обновляясь на сайтах, создавая иллюзию активности, хотя они существуют уже очень давно.
Баланс знаний и практики: как избежать выгорания и оставаться актуальным специалистом
Знания и навыки важны, но они должны быть подкреплены умением применять их в реальных условиях. Мы живем в эпоху, когда не обязательно запоминать всё наизусть — на помощь приходят такие инструменты, как Google, ChatGPT и удобные IDE. Зачем превращаться в теоретика, если можно быть эффективным и даже более продуктивным, чем тот, кто полагается исключительно на теорию, при этом сохраняя полноценную жизнь? Главное — находить баланс между теоретическими знаниями и практическим применением, что позволяет успешно справляться с задачами и поддерживать качество жизни.
Теоретики, которые зациклены только на теории, часто испытывают эмоциональное выгорание. Они не развиваются и не адаптируются к новым технологиям, поскольку просто не успевают всё запомнить, что приводит к снижению их эффективности. В конечном итоге они могут знать одно, а в реальной работе применяется уже совершенно другое. Поэтому вместо того, чтобы становиться теоретиком, который всё знает наизусть, лучше искать баланс между обучением и практическим опытом. Это позволит не только оставаться актуальным специалистом, но и сохранять интерес к работе и жизни в целом.
Выборочная память: как не перегружать мозг и использовать технологии для успеха
Нет смысла зубрить все подряд, надрывая свой мозг. Лучше запоминать только то, что действительно необходимо для решения текущих задач, ведь удерживать всё в голове невозможно. Когда задачи меняются и нужно что-то вспомнить или узнать, на помощь приходят наши верные друзья — компьютеры. Они созданы для того, чтобы помогать нам запоминать, вспоминать и узнавать как важное, так и несущественное. Компьютеры можно считать продолжением нашего мозга, их можно рассматривать как усилитель и даже ускоритель умственных процессов.
Объединенные в сеть интернет компьютеры представляют собой огромное хранилище знаний и опыта. Хотя для некоторых интернет может казаться помойкой, стоит знать, что и в помойке можно найти жемчужину. Если вы считаете иначе, возможно, IT — это не для вас. Главное здесь — уметь использовать доступные ресурсы и находить полезную информацию в любом контексте.
Переосмысляем технические собеседования: от теории к практике
Технические собеседования необходимо адаптировать к современным условиям, предоставляя кандидатам доступ к поисковым системам и искусственному интеллекту, таким как ChatGPT, а также полноценным интегрированным средам разработки (IDE). Использование простых досок или веб-приложений, которые лишь демонстрируют код в реальном времени и ограничиваются подсветкой синтаксиса или элементарным текстовым редактором, стало нецелесообразным.
Такой подход превращает техническое собеседование в экзамен, который не позволяет кандидатам продемонстрировать свои реальные способности. Ведь основная цель технических собеседований заключается в умении формулировать вопросы, искать на них ответы и решать конкретные практические задачи.
Задачи из LeetCode и подобных платформ не отражают реальную практическую работу: никто не сортирует деревья и не разворачивает связанные списки в повседневной деятельности.
Нужно включать практические задачи, связанные с реальными проектами или сценариями, которые сотрудники могут встретить в процессе работы. Например, это могут быть задачи на решение проблем, которые часто возникают при разработке программного обеспечения.
Таким образом, для более объективной и справедливой оценки кандидатов необходимо переосмыслить формат технических собеседований, сделав их более адаптивными к реальным условиям работы. Также следует рассмотреть возможность отказа от традиционных собеседований в пользу испытательного срока, позволяющего оценить навыки и способности кандидата на практике.
Испытательный срок предоставляет возможность не только оценить технические знания и умения, но и лучше понять, как кандидат взаимодействует с командой, справляется с задачами и адаптируется к корпоративной культуре. Это поможет работодателям принять более обоснованное решение о найме, а кандидатам — продемонстрировать свои истинные возможности.
AVX
Вот действительно важная мысль, которую нужно вдалбливать всем начинающим айтишникам. Разве что добавлю (в принципе про это тоже сказано) - не нужно всё знать, нужно знать где найти необходимую информацию и уметь это делать эффективно.