REINFORCED_SC Telegram 47
Как смотреть в код

Это продолжение предыдущего поста.

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

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

Для начала: необходимо чтобы вы сами были знакомы с платформой/языком, на котором исполнен проект. Нужно это чтобы отличить авто-генерированный и glue-код от того, который автор написал сам. А то будете как дурак копаться в node_modules и восторгаться талантом, а человек просто не знает что node_modules добавляют в .gitignore. Fail. Так что в целевой платформе надо шарить хотя бы в общих чертах.

Дальше всё довольно просто: гуляем по директориям, оцениваем насколько всё логично и уместно организовано.

Логично: это когда человек может разложить код по полочкам так, чтобы не запутаться самому и не запутать других. Это отличный навык. Говорит о наличии системного мышления и способности "посмотреть сверху". Если всё хаотично рассовано по директорям — это флажочек о небрежности и непоследовательности. Необходимо уточнить у автора лично что за фигня.

Уместно: когда человек может организовать проект в соответствии с принятыми практиками для платформы, на которой работает. Это говорит о способности читать и усваивать стандарты разработки, а не воевать с ними. Если человек всё же воюет со стандартами разработки, то он будет обязан защитить своё решение и по фактам обосновать почему так лучше. В личном разговоре. Убедит — молодец. Не убедит — плохо.

Пытаемся въехать в проблематику и общий дизайн решения. Если удалось понять дизайн — ищем в нём огрехи и фиксируем вопрос для личного разговора. Если дизайн понять не удалось — кандидату же хуже. Будем заставлять рисовать дизайн на доске и объяснять почему так. Для проформы можно выбрать несколько совершенно рандомных файлов, притащить их кандидату и пытать на тему зачем они нужны и почему без них нельзя. Только смотрите не обосритесь, а то притащите код, сгенеренный фреймворком — стыдно потом будет. Хотя толковый кандидат и за генерированный код сможет пояснить.

Дальше надо составить общее понимание о том, как человек пишет. Откройте 10 рандомных файлов из разных точек проекта. Посмотрите насколько код в целом вменяем, написаны ли комменты, соблюдены ли naming conventions. Смотрите, используются ли фишки платформы и правильно ли они используются. Например в C# можно смотреть using-и, lock-и, системные атрибуты, правильную перегрузку equality members, корректное использование EF, ASP .NET MVC и иже с ними. Если понимания не сложилось — откройте ещё 10 файлов. И так далее, пока не сложится. Все возникающие вопросы записывайте в блокнотик и откладывайте до личного разговора.

Так же стоит обратить внимание на unit-тесты и сборочные скрипты. Если они есть — это win. Если проект собирается и выкладывается через github actions — это flawless victory. Если при этом ещё и прогоняются тесты — это fatality. Человек шарит за CI/CD, тестирование и — самое крутое — умеет это настраивать и использовать. А если у него есть понимание зачем это надо (уточняется в лично разговоре) — делайте оффер.

Важно понять следующее: не надо вчитываться и анализировать какие-то отдельные строчки. Всё равно досконально не разберётесь. Надо прочитать по диагонали и подбить тем для разговора с кандидатом на час-другой. Если глаз намётан, то на это уходит не более 10 минут. О чём говорить после просмотра репозитория — в следующем посте.

Не переключайтесь.



tgoop.com/reinforced_sc/47
Create:
Last Update:

Как смотреть в код

Это продолжение предыдущего поста.

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

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

Для начала: необходимо чтобы вы сами были знакомы с платформой/языком, на котором исполнен проект. Нужно это чтобы отличить авто-генерированный и glue-код от того, который автор написал сам. А то будете как дурак копаться в node_modules и восторгаться талантом, а человек просто не знает что node_modules добавляют в .gitignore. Fail. Так что в целевой платформе надо шарить хотя бы в общих чертах.

Дальше всё довольно просто: гуляем по директориям, оцениваем насколько всё логично и уместно организовано.

Логично: это когда человек может разложить код по полочкам так, чтобы не запутаться самому и не запутать других. Это отличный навык. Говорит о наличии системного мышления и способности "посмотреть сверху". Если всё хаотично рассовано по директорям — это флажочек о небрежности и непоследовательности. Необходимо уточнить у автора лично что за фигня.

Уместно: когда человек может организовать проект в соответствии с принятыми практиками для платформы, на которой работает. Это говорит о способности читать и усваивать стандарты разработки, а не воевать с ними. Если человек всё же воюет со стандартами разработки, то он будет обязан защитить своё решение и по фактам обосновать почему так лучше. В личном разговоре. Убедит — молодец. Не убедит — плохо.

Пытаемся въехать в проблематику и общий дизайн решения. Если удалось понять дизайн — ищем в нём огрехи и фиксируем вопрос для личного разговора. Если дизайн понять не удалось — кандидату же хуже. Будем заставлять рисовать дизайн на доске и объяснять почему так. Для проформы можно выбрать несколько совершенно рандомных файлов, притащить их кандидату и пытать на тему зачем они нужны и почему без них нельзя. Только смотрите не обосритесь, а то притащите код, сгенеренный фреймворком — стыдно потом будет. Хотя толковый кандидат и за генерированный код сможет пояснить.

Дальше надо составить общее понимание о том, как человек пишет. Откройте 10 рандомных файлов из разных точек проекта. Посмотрите насколько код в целом вменяем, написаны ли комменты, соблюдены ли naming conventions. Смотрите, используются ли фишки платформы и правильно ли они используются. Например в C# можно смотреть using-и, lock-и, системные атрибуты, правильную перегрузку equality members, корректное использование EF, ASP .NET MVC и иже с ними. Если понимания не сложилось — откройте ещё 10 файлов. И так далее, пока не сложится. Все возникающие вопросы записывайте в блокнотик и откладывайте до личного разговора.

Так же стоит обратить внимание на unit-тесты и сборочные скрипты. Если они есть — это win. Если проект собирается и выкладывается через github actions — это flawless victory. Если при этом ещё и прогоняются тесты — это fatality. Человек шарит за CI/CD, тестирование и — самое крутое — умеет это настраивать и использовать. А если у него есть понимание зачем это надо (уточняется в лично разговоре) — делайте оффер.

Важно понять следующее: не надо вчитываться и анализировать какие-то отдельные строчки. Всё равно досконально не разберётесь. Надо прочитать по диагонали и подбить тем для разговора с кандидатом на час-другой. Если глаз намётан, то на это уходит не более 10 минут. О чём говорить после просмотра репозитория — в следующем посте.

Не переключайтесь.

BY Novikov on Soapbox


Share with your friend now:
tgoop.com/reinforced_sc/47

View MORE
Open in Telegram


Telegram News

Date: |

End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” To edit your name or bio, click the Menu icon and select “Manage Channel.” More>>
from us


Telegram Novikov on Soapbox
FROM American