Czy mogę słusznie zgłosić to jako swój własny projekt, jeśli otrzymałem pomoc online? [Zamknięte]

9

Zasadniczo jestem nowy w programowaniu sieciowym w Pythonie, więc poszedłem na samouczek online, aby się o tym dowiedzieć. Korzystając z tego, czego nauczono w tym samouczku (tworzenie gniazda, podłączanie do portów itp.), Zmodyfikowałem kod, tak że utworzyłem program, w którym dwa komputery mogą wysyłać do siebie wiadomości.

Gdybym miał ubiegać się o pracę i pokazać ją moim ankieterom, czy kod dla niej byłby technicznie mój? Można śmiało powiedzieć, że nie zmodyfikowałem kodu tak bardzo; Co jednak, jeśli na przykład zmodyfikowałbym go w grę typu kółko i krzyżyk, w której dwóch użytkowników gra ze sobą na różnych komputerach, czy kod byłby wtedy mój? Po prostu nie chcę wyglądać na plagiatora, dlatego pytam.

Brad Guy
źródło
9
Robert ma rację, ale dla jasności: to nie jest negatywne. „Zacząłem od kodu z początku samouczka języka Python i zmieniłem go w to!” ... z perspektywy pracy może to być postrzegane jako tak dobre lub lepsze, niż gdybyś zaczął od zera. Jeśli zacząłeś od kodu innej osoby, oznacza to, że możesz czytać inny kod, oprócz rozszerzania, refaktoryzacji, ponownego celowania itp. Posiadanie czegoś własnego jest w przypadku większości zadań nie dużym celem - i jeśli pokaże im, od czego zacząłeś i co z tego zrobiłeś, jeszcze lepiej!
BrianH
Ile kodu dodałeś lub odjąłeś? Jeśli zacząłeś od 100 linii kodu z samouczka i masz 110 linii - prawdopodobnie nie. Jeśli masz 1000 linii, tak, to twoje, ale mów o tym, jak je dostałeś, i podaj, gdzie uzyskałeś pomoc. (Tak, wiem, że linie kodu nie są świetną miarą, ale mogą dać pomysł).
1
Głosuję za zamknięciem tego pytania jako nie na temat, ponieważ dotyczy ono kwestii etycznych, które są nie na temat dla programistów.
durron597,

Odpowiedzi:

11

Nie.

Możesz jednak twierdzić, że zmodyfikowałeś kod, dzięki czemu stworzyłeś program, w którym dwa komputery mogą wysyłać do siebie wiadomości. Możesz też twierdzić, że zmodyfikowałeś go w coś w rodzaju kółko i krzyżyk, w którym dwóch użytkowników gra ze sobą na różnych komputerach.

Po prostu zgodnie z prawdą reprezentuj ilość pracy, którą w to wkładasz. Nie możesz rościć sobie prawa własności do niektórych projektów w Internecie, jeśli inne wykonały część pracy.

Robert Harvey
źródło
1

Wybrałbym klasyczną linię „to zależy” .

Jak już powiedziałeś, że nie zmodyfikowałeś go zbyt wiele, jestem w pełni po stronie Roberta. To nie twój projekt.

Ale z drugiej strony: wszyscy programiści lubimy dyskutować, badać, a czasem kopiować i wklejać nasze projekty. Fiddeling z kodem innych ludzi jest dość powszechny. Jeśli dużo go zmodyfikujesz, włożysz w to trochę wysiłku, udostępniając nowe funkcje lub inne podejście do problemu, to Twój kod.

Trzymaj się prawdy o ilości pracy, którą wykonałeś naprawdę sam i jestem pewien, że nikt nie nazwie cię plagiatem.

mhr
źródło
1

Jeśli zmodyfikowałeś czyjś kod, aby zrobić coś, co chciałeś, byłoby nieuczciwe twierdzić, że kod jest „twój”. Jest to raczej program utworzony na podstawie istniejącego kodu.

Być może zauważyłeś, że wielu programistów używa kodu innych osób. Cały czas. Biblioteki i interfejsy API to zasadniczo sformalizowany sposób korzystania z kodu utworzonego przez kogoś we własnym projekcie. Chociaż to, co zrobiłeś, nie było tym samym, co użycie biblioteki lub interfejsu API, ma ten sam efekt.

W przypadku prostego programu P2P możesz twierdzić, że napisałeś aplikację do przesyłania wiadomości, która wykorzystuje implementację prostych protokołów internetowych przez innego programistę. Możesz śmiało nazwać to swoim programem, powinieneś po prostu przyznać kredyt każdemu, kto napisał pożyczone części. I najlepiej byłoby dodawać komentarze do kodu, podając źródło, aby inni mogli go znaleźć, jeśli zajdzie taka potrzeba.

W przypadku gry napisałeś grę. Możesz zgłosić to jako swój kod. Ta gra następnie wykorzystuje zestaw funkcji, które otrzymałeś z innego źródła, aby umożliwić funkcjonalność dla wielu graczy. Znów powinieneś prawdopodobnie umieścić źródło tego kodu przynajmniej w komentarzach w kodzie. Jednak w tej sytuacji możesz prawdopodobnie uniknąć niepotrzebnego mówienia tego innym osobom poza kodem, ponieważ tak naprawdę napisałeś grę.

Wielu programistów polega na bibliotekach, aby radzić sobie z bardziej złożonymi problemami, z którymi się borykają. Rzeczy takie jak protokoły sieciowe, grafika i zaawansowana matematyka są używane przez wiele osób, więc istnieją biblioteki, które wykonują wszystkie te czynności, różnią się między sobą. Korzystanie z tego rodzaju kodu jest nie tylko całkowicie dopuszczalne, ale także normalne.

Jeśli powiesz „to jest klient IM” lub „to gra wideo”, nikt nie będzie zaskoczony, jeśli kod sieci pochodzi od strony trzeciej. Tylko nie twierdz, że jesteś jedynym autorem wszystkich części kodu i powinieneś być w porządku.

Należy jednak rozważyć inną możliwość: czy dany kod jest chroniony przez jakiekolwiek warunki użytkowania? Do tego momentu mówiłem o kodzie, który jest udostępniany albo bez warunków, albo z bardzo otwartymi warunkami. Jeśli jednak autor ma jakieś bardziej szczegółowe warunki, zastosuj się do nich . Jeśli zamierzali kodować go wyłącznie do celów edukacyjnych, to użycie go w jakimkolwiek innym celu nie jest w porządku. Istnieją różne ograniczenia, które mogą nakładać na ten kod, więc uważaj, jak go używasz.

zeel
źródło
Jest to całkowicie poza punktem, z wyjątkiem ostatniego akapitu. Ponowne użycie kodu za pomocą bibliotek różni się (pod względem etycznym i prawnym) od ponownego użycia kodu za pomocą funkcji kopiuj i wklej.
amon
Nie bardzo, ponieważ w gruncie rzeczy kompilator i tak kopiuje / wkleja. Nie ma prawdziwej różnicy, w końcu są to po prostu sekwencje poleceń procesora. Jeśli chodzi o „etycznie i prawnie”, o tym jest mój ostatni akapit. Tak długo, jak oryginalny twórca jest w stanie korzystać z kodu, jest to w zasadzie to samo, co korzystanie z biblioteki.
zeel