Не пишите демо для интервью, если вы можете избежать его; представить существующий код или проекты, если вы можете.
Демонстрации и примеры кода важны по многим причинам (которые варьируются в зависимости от рецензента), но в основном они показывают потенциальным работодателям вид кода, который вы пишете в дикой природе, и тип проблем, которые вы хотите решить. Они также помогают продемонстрировать ваш уровень интереса к ремеслу разработки программного обеспечения.
Гораздо лучше представить некоторый код, который вы уже написали для предыдущего проекта или игры, которой вы гордитесь, или которая демонстрирует умное решение проблемы - что-нибудь интересное или сложное или которое может служить основа для хорошей дискуссии.
Написание кода явно для отправки в качестве примера кода имеет тенденцию выглядеть как надуманный и поддельный; Например, может быть удивительно легко сказать, что программист думал, что потенциальный работодатель захочет увидеть «хорошо документированный» код и, таким образом, поставить действительно подробные комментарии ко всему, стремясь к тому, что они считают совершенством. Реальный код не идеален, у него есть бородавки и неровные края, и когда вы пишете код явно для демонстрационной отправки, вы склонны его так сильно полировать, что становится очевидным, что вы его не написали, потому что вам понравилось его написание. Вы просто хотели работу.
Тем не менее, если у вас нет какой-либо работы, которую вы можете отправить - либо потому, что вы ее еще не написали, либо потому, что ваша предыдущая работа не позволяет вам отправить какой-либо код (в соответствии с NDA), - у вас нет Вариантов много, но написать что-то новое. В этом сценарии я бы посоветовал вам сосредоточиться на написании этой вещи ради себя и забыть о том, что «хотят» работодатели. Напишите игру, потому что вы хотите написать игру. Напишите классную демонстрацию технологий, потому что вы хотите изучить эту технологию, потому что это то, что вас интересует.
- Насколько важна модульность кода?
- Насколько важно продемонстрировать типичную реализацию алгоритма?
- Насколько важно включить новые функции?
- Насколько важна играбельность?
- Должен ли я дать привилегию читабельности кода или оптимизации кода?
- Насколько важна кодовая документация?
Ответы на все эти мелкие вопросы, к сожалению, «это зависит» (за исключением читабельности - я думаю, что вы должны предпочесть удобочитаемость в целом, особенно для «демонстрационного кода»). Некоторые работодатели могут захотеть увидеть, как вы реализуете быструю сортировку. Другие могут не заботиться. Другие просто попросят вас переопределить быструю сортировку на доске во время интервью.
Не сосредотачивайтесь на том, что, по вашему мнению, хотят работодатели , потому что разные работодатели и даже разные люди, которые могут просматривать ваш код, захотят разных вещей. Вместо этого сосредоточьтесь на том, что вы хотите продемонстрировать о себе , потому что у вас гораздо больше контроля над этим, и это принесет вам больше пользы в долгосрочной перспективе.