Posso legittimamente rivendicare questo come mio progetto se ho ricevuto aiuto online? [chiuso]


9

Fondamentalmente sono nuovo alla programmazione di rete in Python, quindi ho seguito un tutorial online per scoprirlo. Usando ciò che è stato insegnato nel tutorial (creazione di un socket, connessione alle porte, ecc.), Ho modificato il codice in modo da creare un programma in cui due computer possono scambiarsi messaggi.

Se dovessi candidarmi per un lavoro e mostrarlo ai miei intervistatori, il codice sarebbe tecnicamente mio? È giusto dire che non ho modificato il codice di così tanto; Tuttavia, cosa accadrebbe se, ad esempio, lo modificassi in qualcosa di simile a un gioco tic-tac-toe, in cui due utenti si giocano a vicenda da PC diversi, il codice sarebbe il mio? Non voglio sembrare un plagio quindi, perché lo chiedo.


9
Robert ha ragione, ma solo per essere chiari: questo non è un aspetto negativo. "Ho iniziato con un po 'di codice da un tutorial iniziale di Python e l'ho trasformato in questo!" ... dal punto di vista del lavoro, questo può essere visto come buono o migliore rispetto a quando si è partiti da zero. Se hai iniziato con il codice di qualcun altro, ciò significa che puoi leggere il codice di altri, oltre a espandere, refactoring, ri-proposizione, ecc. Avere qualcosa di "tuo" è, per la maggior parte dei lavori, non il grande obiettivo - e se tu puoi mostrare loro con cosa hai iniziato e cosa ne hai ricavato, ancora meglio!
BrianH,

Quanto codice hai aggiunto o sottratto? Se hai iniziato con 100 righe di codice dal tutorial e hai 110 righe, probabilmente no. Se hai 1000 linee, sì, è tuo ma parla di come le hai ottenute e menziona dove hai ricevuto aiuto. (Sì, so che le righe di codice non sono una grande metrica, ma possono dare un'idea).

1
Sto votando per chiudere questa domanda come fuori tema perché si tratta di una domanda etica fuori tema per i programmatori.
durron597,

Risposte:


11

No.

Ma puoi affermare di aver modificato il codice in modo da creare un programma in cui due computer possono scambiarsi messaggi. Oppure puoi affermare di averlo modificato in qualcosa di simile a un gioco tic-tac-toe, in cui due utenti si giocano a vicenda da PC diversi.

Rappresenta semplicemente la quantità di lavoro che ci metti dentro. Non puoi rivendicare la proprietà di alcuni progetti su Internet se altri hanno svolto parte del lavoro.


1

Vorrei andare con la linea classica "dipende" .

Come hai già detto che non l'hai modificato molto, sono completamente dalla parte di Roberts. Non è il tuo progetto.

Ma dall'altro lato: a tutti gli sviluppatori piace discutere, ricercare e talvolta copiare e incollare i nostri progetti. Giocare con il codice di altre persone è abbastanza comune. Se lo modifichi molto, mettiti qualche sforzo, fornendo nuove funzionalità o un approccio diverso al problema, allora è il tuo codice.

Rimani fedele alla verità sulla quantità di lavoro che hai fatto davvero da solo e sono sicuro che nessuno ti chiamerà un plagio.


1

Se quello che hai fatto è stato modificare il codice di qualcuno per fare qualcosa che volevi, sarebbe disonesto affermare che il tuo codice era "tuo". Piuttosto, è un programma creato in base al codice esistente.

Ora potresti aver notato che molti programmatori usano il codice di altre persone. Tutto il tempo. Le librerie e le API sono essenzialmente un modo formalizzato di usare il codice creato da qualcuno nel tuo progetto. Mentre quello che hai fatto non è stato lo stesso di usare una libreria o API, ha lo stesso effetto.

Nel caso del semplice programma P2P puoi affermare di aver scritto un'applicazione di messaggistica che utilizza un'altra implementazione da parte dei programmatori di semplici protocolli Web. Puoi andare avanti e chiamarlo il tuo programma, dovresti solo dare credito a chiunque abbia scritto le parti prese in prestito. E sarebbe meglio aggiungere commenti al codice citando la fonte, quindi altri possono trovarlo se necessario.

E nel caso del gioco, hai scritto un gioco. Puoi richiederlo come codice. Questo gioco utilizza quindi una serie di funzioni ottenute da un'altra fonte per abilitare la funzionalità multiplayer. Ancora una volta, dovresti probabilmente posizionare la fonte di quel codice almeno nei commenti nel tuo codice. Tuttavia, in questa situazione, puoi probabilmente evitare di dirlo esplicitamente ad altri al di fuori del codice, come hai davvero scritto il gioco.

Molti sviluppatori si affidano alle librerie per affrontare alcuni dei problemi più complessi che devono affrontare. Cose come i protocolli di rete, la grafica e la matematica avanzata sono utilizzate da molte persone, quindi ci sono librerie che fanno tutte quelle cose che variano bene. L'utilizzo di questo tipo di codice non è solo completamente accettabile, ma anche normale.

Se dici "questo è un client di messaggistica istantanea" o "questo è un videogioco" nessuno sarà sorpreso se il codice di rete proviene da una terza parte. Non pretendere di essere l'unico autore di tutte le parti del codice e dovresti andare bene.

Tuttavia, dovresti esaminare un'altra possibilità: il codice in questione è protetto da condizioni d'uso? A questo punto ho parlato di codice reso disponibile senza termini o termini molto aperti. Tuttavia, se l'autore ha alcuni termini più specifici, seguili . Se intendessero solo il codice o per scopi educativi, non va bene usarlo a qualunque titolo oltre. Esistono tutti i tipi di limitazioni che possono applicare a quel codice, quindi fai attenzione a come lo usi.


Questo è totalmente oltre il punto, tranne per l'ultimo paragrafo. Il riutilizzo del codice tramite le librerie è abbastanza diverso (eticamente e legalmente) dal riutilizzo del codice tramite copia e incolla.
amon,

Non proprio, dato che in sostanza il compilatore è comunque solo copia / incolla. Non c'è vera differenza, alla fine sono solo sequenze di comandi del processore. Per quanto riguarda "eticamente e legalmente" questo è il mio ultimo paragrafo. Finché il creatore originale è d'accordo con l'uso del codice, è essenzialmente lo stesso dell'uso di una libreria.
zeel
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.