Могу ли я по праву заявить, что это мой собственный проект, если я получу помощь онлайн? [закрыто]


9

По сути, я новичок в сетевом программировании на Python, поэтому я пошел в онлайн-учебник, чтобы узнать об этом. Используя то, чему научили в этом руководстве (создание сокета, подключение к портам и т. Д.), Я изменил код так, что создал программу, в которой два компьютера могут отправлять сообщения друг другу.

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


9
Роберт прав, но просто для ясности: это не минус. «Я начал с некоторого кода из начального учебника по Python и превратил его в это!» ... с точки зрения работы это можно рассматривать как хорошее или лучшее, чем если бы вы начали с нуля. Если вы начали с кода от кого-то другого, это означает, что вы можете читать код других пользователей, в дополнение к расширению, рефакторингу, повторному назначению и т. Д. Наличие чего-то «своего» для большинства задач не является большой целью - и если вы может показать им, с чего вы начали и что из этого сделали, даже лучше!
BrianH

Сколько кода вы добавили или вычли? Если вы начали с 100 строк кода из учебника, и у вас есть 110 строк - вероятно, нет. Если у вас есть 1000 строк, да, это ваши, но поговорите о том, как вы их получили, и укажите, где вы получили помощь. (Да, я знаю, что строки кода не очень хорошая метрика, но она может дать представление).

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

Ответы:


11

Нет.

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

Просто правдиво представляйте объем работы, который вы вложили в него. Вы не можете претендовать на право собственности на какой-либо проект в Интернете, если другие сделали часть работы.


1

Я бы пошел с классической линией «это зависит» .

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

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

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


1

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

Теперь вы, возможно, заметили, что многие программисты используют код других людей. Все время. Библиотеки и API - это, по сути, формализованный способ использования кода, созданного кем-то в вашем собственном проекте. Хотя то, что вы сделали, не то же самое, что использование библиотеки или API, оно имеет тот же эффект.

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

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

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

Если вы скажете «это клиент для обмена мгновенными сообщениями» или «это видеоигра», никто не удивится, если сетевой код получен от третьей стороны. Только не утверждайте, что вы являетесь единственным автором всех частей кода, и с вами все будет в порядке.

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


Это совершенно не имеет значения, за исключением последнего абзаца. Повторное использование кода через библиотеки весьма отличается (этически и юридически) от повторного использования кода посредством копирования и вставки.
Амон

Не совсем, так как по сути компилятор в любом случае просто копирует / вставляет. Разницы нет, в конце концов, это просто последовательности команд процессора. Что касается «этически и юридически», это то, о чем мой последний абзац. Пока исходный создатель в порядке с вашим использованием кода, это по сути то же самое, что и использование библиотеки.
Zeel
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.