Мой ответ на невероятно распространенный вопрос

Заголовок этого сообщения был популярным вопросом Quora, на который популярные ответы сводились к следующему: это не так, уровень безработицы составляет 3,6%, слишком много разработчиков и недостаточно инженеров и это естественное следствие микроэкономическая теория . Возможно, было бы полезно подробнее остановиться на последнем, но я подумал, что было бы намного интереснее взглянуть на самый популярный ответ:

«Я был без работы много месяцев. Ждали, надеясь, что однажды меня возьмут на работу, не требуя от меня белой доски. Да, это хуже, чем водная доска.

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

Ничего не изменилось »
- Аравинд Акшан, инженер-менеджер [НЕРАСКРЫТО]

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

Если серьезно, то стоит обсудить ответ об экономике. На оплату работы сильно влияют спрос и предложение. Хотя существует очень высокий спрос на инженеров-программистов, сейчас только в Соединенных Штатах насчитывается 4,4 миллиона разработчиков программного обеспечения [Отредактировано. В исходном предложении говорилось: «4,4 миллиона инженеров-программистов»]. Другими словами, инженеры-программисты - не такая уж редкость, и ученая степень в области компьютерных наук не является золотым билетом, на который можно рассчитывать. Я думаю, что популярность информатики и рост количества курсов для начинающих по программированию являются свидетельством того, насколько широко эта область знаний стала общепринятой.

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

  • В большинстве компаний, с которыми я проходил собеседование, требуется как минимум три собеседования, чтобы устроиться на работу. Об этом довольно подробно рассказывается здесь, в статье Би-би-си.
  • Из-за отсутствия лучшего описания собеседования по техническому кодированию являются «их собственной игрой». Обычно у вас есть от 30 минут до часа, чтобы решить вопрос о кодировании, который оценивает ваше понимание структур данных и алгоритмов. Независимо от того, считаете ли вы это хорошим тестом, как сторонники, так и критики согласятся, что это не то, что вы на самом деле делаете в поле - это просто тест.
  • Программное обеспечение ШИРОКО. Вы можете быть разработчиком внешнего интерфейса, превращая каркасы в веб-приложение. Вы можете быть внутренним инженером, который очень тесно работает с оборудованием. Вы можете работать в компании, которая лечит рак. Вы можете работать в компании, которая вызывает рак. У вас может быть невероятное количество областей и ролей, поэтому мы сталкиваемся с тем же сценарием, с которым сталкиваемся при свиданиях: компании будут искать очень, очень конкретного кандидата с точным набором навыков, а иногда что-то просто не работает. из
  • Возможно, я первый в истории человек, страдающий желчью, который на это пожалуется, но на собеседовании по кодированию обычно предоставляется выбор языка. Одним из недостатков этого является то, что инженер, интервьюирующий вас, если он / она человек, не будет знаком со всеми из них. Если вы проводите собеседование на незнакомом языке и у вас есть какие-либо проблемы, возможно, они не смогут вам помочь.

Чего ожидать от собеседования?

Вы можете следовать множеству «дебютных стратегий». Может быть, отдел кадров компании сначала свяжется с вами через LinkedIn; возможно, вы решите довериться стороннему рекрутеру. Ваш опыт может варьироваться в зависимости от сторонних рекрутеров (также называемых «хедхантерами»), но, говоря прямо, есть причина, по которой у них такая плохая репутация. Некоторые из них действительно очень плохие. Плохие будут пытаться создать вам компанию, которая вам не подходит, они будут «стрелять из дробовика» всем и каждому, и они не будут иметь в виду ваши интересы. От договоренности они хотят денег.

… Хотя, честно говоря, вы, наверное, тоже этого хотите.

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

Первый звонок в HR

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

Интересно, что с ними случилось?

  • Они спросят, «сейчас еще хорошее время». Если бы это было не лучшее время, то, вероятно, вам не стоило бы брать трубку. Я пропустил первое собеседование, когда мне нужно было прочистить туалет
  • Они попросят вас рассказать о себе
  • Они могут спросить, что вы ищете в своей следующей роли. Хороший ответ на этот вопрос, вероятно, - это вариант «в основном ваша компания». Однажды я ответил на это, сказав, что все, что я действительно хотел, - это не работать в какой-то конкретной отрасли (скажем, для примера, что это была автомобильная промышленность). Они сказали, что недавно приобрели контракт с автопромом. Это было одно из самых неловких интервью, которые у меня были
  • Они действительно попытаются представить свою компанию
  • Они могут задать действительно интересные вопросы, например, какой был ваш любимый проект или каковы ваши ценности, но я считаю, что это довольно редко.

Может показаться, что первоначальный вызов HR - всего лишь формальность, но на самом деле это может стать первым препятствием. Представитель отдела кадров может попросить вас рассказать о ваших навыках, записать несколько заметок, а затем решить, подходите вы или нет.

Автоматический тест на кодирование

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

Кодирование интервью

Это действительно суть дела. Об этом шаге написаны целые книги.

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

Интервьюер: Я хочу, чтобы вы создали сжатую строку. Например, вы можете превратить aaaabbc в a4b2c1. Вы можете превратить a в a1
Я: * сразу же начинает кодирование * Давайте воспользуемся хэш-картой
Опрашивающий: Э ... ну как вы думаете, вы ..
Я: Хорошо, мы сделали хэш-карта. Теперь давайте сделаем несколько выводов для печати

Хэш-карта - полезный инструмент, особенно в таких случаях, но это не ролевая игра. Вы не просто немедленно вызываете хэш-карту, а затем сокрушаете каждое интервью, пока, наконец, не встретите босса, который может противостоять хэш-карте («о нет, думаю, я лучше выберу свой последний ход: связанный список!»).

В некоторых задачах в стиле leetcode вы можете обойтись без использования массива вместо хэш-карты (и вы можете использовать размер 26, вычитая «a»). Не надейтесь на это во всем. Некоторые из простейших задач собеседования включают использование хэш-карты для подсчета, а затем переход оттуда ... нельзя просто использовать действительно большой массив, не поднимая бровей.

  • Это помогает узнать некоторые полезные вызовы, такие как std :: sort или что-то еще, черт возьми, эквивалент на других языках
  • Лучший опыт собеседования похож на парное программирование, когда вы двое на самом деле, кажется, отсылаете друг от друга идеи. Наихудшие собеседования просто предполагают, что другой человек молча вас осуждает

Заключительное интервью

Это та часть, где все становится немного… хардкорно.

У вас может быть четыре собеседования за один день. Может быть, один поведенческий, может быть, два технических, но сложнее, чем то, что вы видели раньше… и, может быть, один - проектирование системы.

Положительное отношение

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

Я не думаю об этом так, но зрелый человек мог бы. Делайте то, что я говорю, а не то, что я делаю.

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