Моя реакция на этот невероятно распространенный вопрос.
[IMG alt="Ого, у него несколько мониторов. Это наверняка полезно.
Смотрите, он пишет код и смотрит на страницу «Начало работы». Берем."]https://habrastorage.org/r/w1560/ge...d83be0671c44af35e519cd76b64e28d.jpeg[/IMG]Ого, у него несколько мониторов. Это наверняка полезно. Смотрите, он пишет код и смотрит на страницу «Начало работы». Берем.
Заголовок этой статьи отсылает к популярному вопросу с Quora*, основные ответы на который свелись к следующему: «Это не так, уровень безработицы составляет 3,6%», «Слишком много разработчиков и недостаточно инженеров» и «Это естественное следствие микроэкономической теории». Возможно, было бы полезно подробнее остановиться на всех этих суждениях, но я подумал, что было бы намного интереснее взглянуть на самый популярный ответ:
Если серьезно, то вернемся к ответу про микроэкономику. На оплату работы сильно влияют спрос и предложение. Хотя существует очень высокий спрос на инженеров-программистов (SE), сейчас только в США насчитывается 4,4 миллиона SE-специалистов без работы. Другими словами, инженеры-программисты - не такая уж редкость, и ученая степень в области компьютерных наук не является «золотым билетом», на который рассчитывают некоторые люди. Я думаю, что популярность информатики и рост количества курсов для начинающих по программированию являются свидетельством того, насколько эта область знаний стала популярной.
… хотя, честно говоря, вы, наверное, тоже хотите именно этого.
Может быть, вы вместо этого решите обратиться к другу. Может быть, вы обратитесь напрямую в HR или решите сделать то, что делают миллионы других людей, и просто выберете тактику indeed-easy-apply (быстрая подача заявок в большое количество компаний).
Интересно, что с ними случилось..?
Итак, первый звонок.
В некоторых задачах в стиле leetcode вы можете использовать массив вместо hashmap. Но не надейтесь на это во всех ситуациях. Некоторые из простейших задач собеседований связаны с использованием hashmap для подсчетов… вы не сможете просто брать и использовать действительно большой массив.
У вас может быть четыре собеседования за один день. Скажем, одно стартовое, два технических (но сложнее, чем то, что вы делали раньше), и последнее - проектирование системы.
Мудрый зрелый человек будет относиться к процессу собеседования на инженера-программиста как к учебному опыту. Ему понравится узнавать о компаниях. Воспринимайте это как часть исследования, взаимодействия с ключевыми игроками и овладения искусством написания кода на бумажке. Представьте, что это игра.
Тут я оставляю ссылки, чтобы не засорять тело статьи: *, **, ***, ****.
[IMG alt="Ого, у него несколько мониторов. Это наверняка полезно.
Смотрите, он пишет код и смотрит на страницу «Начало работы». Берем."]https://habrastorage.org/r/w1560/ge...d83be0671c44af35e519cd76b64e28d.jpeg[/IMG]Ого, у него несколько мониторов. Это наверняка полезно. Смотрите, он пишет код и смотрит на страницу «Начало работы». Берем.
Заголовок этой статьи отсылает к популярному вопросу с Quora*, основные ответы на который свелись к следующему: «Это не так, уровень безработицы составляет 3,6%», «Слишком много разработчиков и недостаточно инженеров» и «Это естественное следствие микроэкономической теории». Возможно, было бы полезно подробнее остановиться на всех этих суждениях, но я подумал, что было бы намного интереснее взглянуть на самый популярный ответ:
Вместо того, чтобы давать шаблонный ответ о разнице между разработчиками и инженерами (Software Engineer), эта цитата высмеивает весь процесс собеседования. Если развернуть другие темы в том вопросе, то можно увидеть споры о том, является ли процесс собеседования на позицию SE некорректным.«Я был без работы много месяцев. Ждал, надеясь, что однажды меня возьмут на работу, не требуя от меня написания кода от руки на бумаге.
Спустя 7 месяцев я понял - другого выхода нет. И теперь я могу писать код на бумаге даже во сне. Компании стоят в очереди, чтобы пообщаться со мной. Они готовы отправить мне цветы и даже отправить водителя за мной...
Но нет, ничего не изменилось».
Нераскрыт Неразвенчаев, инженер-менеджер в компании "НеСкажуДев".
Если серьезно, то вернемся к ответу про микроэкономику. На оплату работы сильно влияют спрос и предложение. Хотя существует очень высокий спрос на инженеров-программистов (SE), сейчас только в США насчитывается 4,4 миллиона SE-специалистов без работы. Другими словами, инженеры-программисты - не такая уж редкость, и ученая степень в области компьютерных наук не является «золотым билетом», на который рассчитывают некоторые люди. Я думаю, что популярность информатики и рост количества курсов для начинающих по программированию являются свидетельством того, насколько эта область знаний стала популярной.
Другие возможные причины, по которым вам может быть трудно найти работу инженера-программиста:
- В большинстве компаний, с которыми я общался, требуется как минимум три собеседования, чтобы устроиться на работу. Об этом довольно подробно рассказывается в этой статье BBC**.
- Из-за отсутствия хороших общепринятых норм, собеседования с кодингом являются «чаще всего субъективными». Обычно у вас есть от 30 минут до 1 часа, чтобы решить задачу по кодингу, которая оценит ваше понимание структур данных и алгоритмов. Независимо от того, считаете ли вы это хорошей проверкой, как сторонники, так и критики согласятся, что такой тест - далеко не то, что вы будете делать «в поле».
- ПО очень разное. Вы можете быть фронтенд-разработчиком интерфейса, превращая блоки в веб-приложение. Вы можете быть бэкенд-инженером, который очень тесно работает с оборудованием. Вы можете работать в компании, которая лечит рак. Вы можете работать в компании, которая вызывает рак. Существует невероятное количество областей и ролей, поэтому мы сталкиваемся с тем же сценарием, с которым сталкиваемся на свиданиях: компании будут искать очень, очень конкретного кандидата с точным набором навыков. Но такой подход чаще всего не работает.
- Возможно, я первый в истории человек, который на это пожалуется, но на собеседовании с кодингом обычно можно выбрать язык. Одним из недостатков этого является то, что инженер, интервьюирующий вас (если это человек, а не робот), не будет знаком со всеми из них. Если вы проводите собеседование на незнакомом языке и у вас есть какие-либо проблемы, скорее всего, интервьюер не сможет вам помочь.
Чего ожидать от собеседования?
Вы можете следовать любой из «стартовых стратегий». Может быть, отдел кадров компании свяжется с вами через LinkedIn; возможно, вы решите довериться стороннему рекрутеру. Ваш опыт поиска работы может варьироваться в зависимости от сторонних рекрутеров (так называемых «хедхантеров»). Но, говоря прямо, есть причина, по которой у хедхантеров сформировалась плохая репутация. Некоторые из них действительно очень плохи, в первую очередь для вас. Такие плохие рекрутеры будут пытаться навязать вам компанию, которая вам не подходит, они будут «стрелять из всех орудий», навязывать вас всем и каждому. И они не будут задумываться о ваших интересах. От оффера они хотят только денег.… хотя, честно говоря, вы, наверное, тоже хотите именно этого.
Может быть, вы вместо этого решите обратиться к другу. Может быть, вы обратитесь напрямую в HR или решите сделать то, что делают миллионы других людей, и просто выберете тактику indeed-easy-apply (быстрая подача заявок в большое количество компаний).
Первый звонок с HR
Многие технологические компании пытаются делать все «прямо сейчас», и некоторые из них довольно непоследовательны. Одна компания доставляла медикаменты с помощью небольших дронов. Другая пыталась помешать оказанию медицинской помощи, заставляя клиентов ежемесячно платить сотни долларов за приемы большего количества врачей. Самая странная компания, с которой я когда-либо общался, создавала приложение для знакомств… как если бы люди платили за приложение, в котором вы смахиваете вправо, чтобы определить потенциальные совпадения.Интересно, что с ними случилось..?
Итак, первый звонок.
- HR спросит, «Сейчас удобное время для общения?». Если бы это было не лучшее время, то, вероятно, вы бы не взяли трубку. Я пропустил первое собеседование, когда мне нужно было прочистить туалет;
- HR попросит вас рассказать о себе;
- HR может спросить, что вы ожидаете на своей новой работе. Хороший ответ на этот вопрос «Вашу компанию». Однажды я ответил на этот вопрос так: «Не работать с автомобильной промышленностью». В ответ мне сказали, что недавно получили контракт с автопромом. Это было одно из самых неловких интервью, которые у меня были;
- HR действительно попытается представить свою компанию;
- HR может задать действительно интересные вопросы, например, какой был ваш любимый проект или каковы ваши ценности, но кажется, что это бывает довольно редко.
Автоматизированный тест по кодингу
Это мой наименее любимый аспект интервью. Некоторые компании предлагают пройти автоматизированный тест по кодингу, чтобы перейти к следующему этапу. Я думаю, было бы гораздо разумнее, если бы компании просили вас сделать это сразу после подачи заявки, а затем переводили бы вас в отдел кадров, если вы прошли. Они могут попросить HR просмотреть ваше резюме, отправить вам ссылку, если они сочтут, что вы соответствуете требованиям, а затем общаться 30 минут, если вы сдали.Кодинг-интервью
А вот и суть дела. Об этом шаге написаны целые книги.- Выберите язык программирования, с которым вы знакомы. Большинство компаний предоставят вам выбор, что для меня немного безумно, учитывая, как вы можете использовать непонятный язык, который никто в компании не использует;
- Вот хорошее руководство***;
- Вот этот ресурс даже круче, чем корги****;
- Да, это правда, что вы можете просто вспомнить распространенные структуры данных, если застряли на проблеме. И тоже правда, что хэш-таблицы (hashmap) обычно являются частью решения. Но не стоит просто вытаскивать hashmap из ниоткуда. Одно из моих первых собеседований по кодингу прошло примерно так:
Hashmap - полезный инструмент, особенно в таких случаях, но это не панацея. Вы не просто неожиданно применяете hashmap, а затем рушите каждое интервью. Ведь потом, наконец, вы встретите босса, который сможет противодействовать hashmap («О нет, думаю, я лучше выберу основной подход: связанный список!»).Интервьюер: Я хочу, чтобы вы создали сжатую строку. Например, вы можете превратить aaaabbc в a4b2c1. Вы можете превратить a в a1
Я: *сразу приступает к кодингу* Давайте воспользуемся hashmap
Интервьюер: Э ... как вы думаете, вы ..
Я: Хорошо, мы сделали hashmap. Теперь давайте продолжим...
В некоторых задачах в стиле leetcode вы можете использовать массив вместо hashmap. Но не надейтесь на это во всех ситуациях. Некоторые из простейших задач собеседований связаны с использованием hashmap для подсчетов… вы не сможете просто брать и использовать действительно большой массив.
- Это помогает узнать некоторые полезные вызовы, такие как std::sort или что-то еще, эквиваленты на других языках;
- Лучший опыт собеседования похож на парное программирование, когда вы двое ориентируетесь на идеи друг друга. Наихудшие собеседования проходят в формате того, что другой человек молча вас осуждает.
Финальное(ые) интервью
Это та часть, где все становится немного… хардкорно.У вас может быть четыре собеседования за один день. Скажем, одно стартовое, два технических (но сложнее, чем то, что вы делали раньше), и последнее - проектирование системы.
Положительное отношение
Я сам не могу думать об этом в такой парадигме. Но зрелый человек мог бы. Наверное.Мудрый зрелый человек будет относиться к процессу собеседования на инженера-программиста как к учебному опыту. Ему понравится узнавать о компаниях. Воспринимайте это как часть исследования, взаимодействия с ключевыми игроками и овладения искусством написания кода на бумажке. Представьте, что это игра.
Тут я оставляю ссылки, чтобы не засорять тело статьи: *, **, ***, ****.
«Почему, если создание ПО настолько востребовано, так сложно найти работу инженером (SE)?»
Моя реакция на этот невероятно распространенный вопрос . Ого, у него несколько мониторов. Это наверняка полезно. Смотрите, он пишет код и смотрит на страницу «Начало работы». Берем. Заголовок этой...
habr.com