Как объяснить проект потенциальному работодателю

Как объяснить проект потенциальному работодателю
Как объяснить проект потенциальному работодателю - kitera @ Unsplash

На прошлой неделе я пошел на собеседование для младшего программиста и упомянул, что работаю над проектом со своим приятелем. Завтра они хотели бы увидеть этот проект, чтобы решить, брать меня на работу или нет. Поэтому мне было интересно:

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

Проект находится на C# и уже 6 месяцев является хобби-проектом. Не вдаваясь в подробности:

  • это сетевая программа
  • это сервер/клиент, где клиенты в конечном итоге подключаются друг к другу
  • есть синхронизация данных между клиентами
  • мы используем файлы для хранения информации о разных клиентах, которые также синхронизируются
  • программа в целом разделена на несколько разных проектов (некоторые из них входят в .dll)
  • позже проект будет обрабатывать несколько уровней отображения данных пользователю (имеется в виду cmd, окно и т. д.)

Я дал зеленый свет этому с моим приятелем, и это нормально, чтобы показать. Моя идея состояла в том, чтобы показать ту оболочку (cmd), которая у нас работает, и верхние уровни иерархии, те, с которыми оболочка взаимодействует напрямую. В частности, это три класса: один, который подключается и обменивается данными с сервером, один, который обрабатывает синхронизацию, и один, который обрабатывает синхронизируемые объекты. Я попытаюсь подробно остановиться на том, как мы храним объекты и как это передается классу синхронизатора. Затем обсудите на более высоком уровне, как мы синхронизируем данные, заканчивая некоторыми подробностями о том, как это делается. По сути, начните с абстрактного слоя и углубитесь в детали того, где происходит волшебство.

Но мне интересно, как это будет понятно тому, кто никогда раньше не видел наш проект. Как это покажет, что я лучше или хуже программиста, чем мой следующий? Они программисты, поэтому я думаю, что они поймут основы и смогут следовать функциям и тому, что делает код. Но я знаю, что у меня проблемы с пониманием общей картины проекта, тем более за 1-2 часа. Кроме того, я бы не знал, как решить, хороший это программист или плохой, если бы не увидел плохой код. Итак, мой вопрос:

  1. Является ли вышеизложенная идея чем-то, над чем можно поработать? (сверху > снизу)
  2. Должен ли я больше сосредоточиться на алгоритмах?
  3. Должен ли я попытаться построить диаграмму UML или какое-либо другое визуальное представление проекта?

Любые другие идеи?

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

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

Надеюсь, ваша работа будет выглядеть так же хорошо или лучше, чем у вашего приятеля ;)


LetsCodeIt, 29 мая 2023 г., 10:35