Рубрики
Без рубрики

Хороший программист против среднего программиста – и зачем задавать вопросы и обращать внимание на детали.

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

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

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

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

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

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

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

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

Один из моих самых используемых советов – Поиск пробелов в требованиях Анкет Я нашел и узнал это за то время, что —

Хорошие разработчики обладают ломами требований на куски и поиск пробелов,

Что очень важно для производства качественного программного обеспечения.

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

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

Это Гипотетическое интервью Чтобы продемонстрировать мой совет, но он очень близок к настоящему интервью.

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

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

Интервьюер: Можете ли вы написать сценарий для архивирования файлов старше 30 дней и который можно запустить в 1 -й день месяца, используя работу Cron?

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

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

Выглядит хорошо, верно?

Но держитесь за что -то, не хватает:

  1. Он не исключал архивные файлы, созданные самим скриптом, что означает в Сценарий в следующем месяце также будет включать в себя архив прошлого месяца. Если вы не отслеживаете, вы поймете эту проблему только тогда, когда вам нужно что -то извлечь из архива.
  2. Он не думал о двух противоречивых частях в этом сценарии, поиске файлов старше 30 дней и запустив их 1 -го числа каждого месяца. Поскольку цель сценария здесь состоит в том, чтобы сделать резервное копирование данных в прошлом месяце, а месяц могут быть любым из 28, 29, 30 или 31 дня. Поэтому, если вы запустите этот скрипт 1 марта, он не будет архивировать никаких файлов, потому что все они меньше 30 дней, потому что февраль обычно длится 28 дней.
  3. Его скрипт не был удалял файлы после архивации, хотя это не было указано как часть требования; Это неявное требование, пока интервьюер специально не упомянул, чтобы не делать этого.

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

Это ключевое различие между хорошим программистом и средним программистом

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

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

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

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

Мне нравится задавать такой вопрос, который не очень специфичен для домена и очень общий характер. Это дает не только возможность оценить опыт кандидата на любую конкретную технологию, такую как Perl , Python В Java , или Bash Script но также и его общий процесс мышления.

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

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

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

Одна из интересных задач – Попросите разработчика написать код, чтобы прочитать файл; A Хороший программист всегда задает вопросы о содержании файла, таких как бинарный или текст.

Если текст, то что такое кодирование, в то время как средний разработчик просто записывает код для чтения файла.

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

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

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

Излишне упоминать, что второй программист (хороший программист) был немного более умным и практичным и смог заполнить некоторые из этих пробелов.

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

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

Вот несколько дополнительных вопросов для вашей практики:

1) Напишите функцию WordWrap (), которая может взять строку и сломать ее на основе размера экрана?

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

Поскольку мобильные телефоны или смартфоны имеют разнообразные размеры экрана, обертывание слов на основе размера экрана была общей задачей.

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

Теперь вы можете использовать этот вопрос для Android и ios Интервью, поскольку размеры смартфонов все еще не являются едиными.

2) Напишите функцию, чтобы заменить заданный символ из строки на Java?

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

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

  1. Как спроектировать торговый автомат? ( Решение )
  2. Как проверить, является ли строка вращением другой заданной строки? ( Решение )
  3. Как считать возникновение данного символа в строке? ( Решение )
  4. Как распечатать первый не повторный символ из строки? ( Решение )
  5. Как преобразовать данную строку в int, как atoi () ? ( Решение )
  6. Как вы реализуете алгоритм сортировки ведра? ( Решение )
  7. Как вы реализуете алгоритм подсчета? ( Решение )
  8. Как удалить дубликаты из массива на месте? ( Решение )
  9. Как вымените массив на месте на Java? ( Решение )
  10. Как дубликаты удаляются из массива без использования библиотеки? ( Решение )
  11. Как реализуется алгоритм сортировки Radix? ( Решение )
  12. Как поменять два числа без использования третьей переменной? ( Решение )
  13. Как проверить, перекрываются ли два прямоугольника друг с другом? ( Решение )
  14. Как вы проектируете торговый автомат? ( Решение )
  15. Как найти недостающее число в данном целочисленном массиве от 1 до 101? ( Решение )
  16. Как найти дубликат номер в данном целочисленном массиве? ( Решение )
  17. Как найти дубликаты чисел в массиве, если он содержит несколько дубликатов? ( Решение )
  18. Разница между стабильным и нестабильным алгоритмом сортировки? ( Ответ )
  19. Как реализуется итеративный алгоритм QuickSort? ( Решение )
  20. Как найти самое большое и наименьшее число в несортированном целочисленном массиве? ( Решение )

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

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

Дальнейшее обучение Структуры данных и алгоритмы: глубокое погружение с использованием Java 10 книг, чтобы подготовить технические программы/кодирование собеседования 10 книг по алгоритму Каждый программист должен прочитать 5 лучших структур данных и книг алгоритма для разработчиков Java От 0 до 1: структуры данных и алгоритмы в Java Структура данных и анализ алгоритмов — 20+ Проблемы кодирования на основе строк из интервью \ 20+ связанных списков проблем из интервью 20+ основных алгоритмов, основанные на проблемах, из интервью

Заключительные заметки

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

Если вам нужны еще несколько вопросов на практике, вы также можете проверить эти дополнительные 50 вопросов программирования для телефонные интервью И эти книги и Курсы Для более тщательной подготовки.

Всего наилучшего для вашего интервью по кодированию.

Оригинал: “https://dev.to/javinpaul/good-programmers-vs-average-programmer-and-why-asking-questions-and-paying-attention-to-details-matters-j3h”