На прошлой неделе я пошел на собеседование для младшего программиста и упомянул, что работаю над проектом со своим приятелем. Завтра они хотели бы увидеть этот проект, чтобы решить, брать меня на работу или нет. Поэтому мне было интересно:
Проект находится на C# и уже 6 месяцев является хобби-проектом. Не вдаваясь в подробности:
Я дал зеленый свет этому с моим приятелем, и это нормально, чтобы показать. Моя идея состояла в том, чтобы показать ту оболочку (cmd), которая у нас работает, и верхние уровни иерархии, те, с которыми оболочка взаимодействует напрямую. В частности, это три класса: один, который подключается и обменивается данными с сервером, один, который обрабатывает синхронизацию, и один, который обрабатывает синхронизируемые объекты. Я попытаюсь подробно остановиться на том, как мы храним объекты и как это передается классу синхронизатора. Затем обсудите на более высоком уровне, как мы синхронизируем данные, заканчивая некоторыми подробностями о том, как это делается. По сути, начните с абстрактного слоя и углубитесь в детали того, где происходит волшебство.
Но мне интересно, как это будет понятно тому, кто никогда раньше не видел наш проект. Как это покажет, что я лучше или хуже программиста, чем мой следующий? Они программисты, поэтому я думаю, что они поймут основы и смогут следовать функциям и тому, что делает код. Но я знаю, что у меня проблемы с пониманием общей картины проекта, тем более за 1-2 часа. Кроме того, я бы не знал, как решить, хороший это программист или плохой, если бы не увидел плохой код. Итак, мой вопрос:
Любые другие идеи?
Дайте общее описание проблемы, которую вы пытаетесь решить, и как вы к этому пришли. Схема основных частей и их взаимодействия будет полезна для такого типа приложений. Они покупают вас, а не приложение. Это может быть что-то, что им совершенно не нужно, но они хотят посмотреть, насколько хорошо оно сконструировано.
Как только вы начнете показывать им свой код, у них должно возникнуть много вопросов, и они начнут направлять то, что хотят увидеть. Будьте готовы определить, какие участки кода были написаны хорошо, а над какими еще предстоит поработать. Они наверняка спросят, сколько времени ушло на написание определенных участков кода.
Надеюсь, ваша работа будет выглядеть так же хорошо или лучше, чем у вашего приятеля ;)