Ich beginne gerade damit, Github zu verwenden, um meinen Code potenziellen Arbeitgebern zu präsentieren. Der Hauptzweck meines Githubs besteht wirklich nur darin, Arbeitgebern meine Programmierfähigkeiten zu zeigen.
Was ist das Richtige, wenn ich einen Codeblock von einer Website wie Stackoverflow kopiere und einfüge? Soll ich eine Art Kommentar hinzufügen?
Hier ist ein Beispiel
Ich suche nach einer schnellen Möglichkeit, die Obergrenze einer ganzzahligen Division zu berechnen und eine Antwort in meinen Code zu kopieren und einzufügen und auf Github hochzuladen. Soll es etwa so aussehen?
q = (x + y - 1) / y;//taken from https://stackoverflow.com/questions/2745074/fast-ceiling-of-an-integer-division-in-c-c
Oder ich möchte eine Funktion, die Floats mit Double vergleicht
/*function found at https://stackoverflow.com/questions/17333/most-effective-way-for-float-and-double-comparison*/
bool AreSame(double a, double b)
{
return fabs(a - b) < EPSILON;
}
Bei der Arbeit kenne ich andere Leute, die von Stack Overflow kopieren, um ein Problem zu lösen, und ich halte das nicht für unmoralisch. Aber ich fühle mich unfair, wenn ich es kopiere, es auf meinen Github stelle und es verwende, um eingestellt zu werden.
Überlegungen:
Die obigen Beispiele sind ziemlich klein, aber ich habe größere Codesegmente gesehen, die auf anderen Seiten angeboten wurden . Ich meine, ich werde kein vollständiges Programm kopieren und es wie mein eigenes aussehen lassen, aber wo ist die Grenze von "inspiriert durch den Code eines anderen" zum Kopieren überschritten? Ich denke nicht daran, Variablen zu ändern, um es wirklich besser zu machen.
Also ich stelle 2 Fragen
Aus meiner Sicht ist das Kopieren von Code eine absolut gültige Sache, solange es das vorliegende Problem löst, dh wenn Sie das vorliegende Problem ändern, damit der Code passt, ist dies kein guter Ansatz. Eine Lösung zu finden, die in 5 Minuten funktioniert, ist effizienter als eine Lösung zu schreiben, die in 5 Stunden funktioniert. Solange Sie verstehen, wie der Code funktioniert (wie Sie erwähnt haben).
Es ist richtig, die Quelle anzugeben, von der Sie es kopiert haben. Wenn Sie eine Quelle verwendet, aber den Code geändert haben, sollten Sie dennoch angeben, dass Sie ihn als Inspiration verwendet haben.
Nun zum Format des Zitats. Wirklich, es spielt keine Rolle, solange Sie in Ihrem gesamten Code konsistent sind. Ein Arbeitgeber wird gerne sehen, dass Sie gründlich, ethisch und konsequent sind und einen Kodierungsstandard befolgen können. (Stellen Sie sicher, dass der kopierte Code auch in Ihren eigenen Codierungsstandard passt: Einrückung, Groß- und Kleinschreibung, Klammerpositionen, Leerzeichen usw.)
Ich habe vor einiger Zeit eine Metafrage beantwortet und eine ähnliche Frage gestellt .
Stack Overflow präsentiert Wissen. Genau wie ein Buch. Wenn Sie Wissen aus einem Buch gewinnen, müssen Sie dieses Wissen nicht zitieren. Du zitierst dein Gymnasiumbuch zum Gebrauch der englischen Sprache auch nicht mit jedem Wort, das du tippst, oder?
Wenn Sie jetzt wörtlich zitieren, brauchen Sie Zitate. Aber nur auf etwas, das tatsächlich kreativen Wert hat. Wenn ich Shakespeare zitiere, dann besser richtig. Aber jemand hat vorher "Guten Morgen" gesagt. Und ich werde seinen Namen sicher nicht jeden Morgen etwa 10-20 Mal erwähnen.
Ihre Beispiele sind Dinge, die wirklich nur Allgemeinwissen sind. Fließkommawerte vergleichen? Etwas aus zwei ganzen Zahlen berechnen? Das sind keine Dinge, die es wert sind, zugeschrieben zu werden. Das machen alle. Es ist offensichtlich, dass niemand gerade eine Programmierung implantiert hatte. Wir haben es alle irgendwo und von jemandem gelernt.
Wenn Sie tatsächlich etwas von Stack Overflow lernen (und mir ist klar, dass dies nicht jeder tut), müssen Sie es nicht wörtlich kopieren. Sie werden es an Ihre Bedürfnisse anpassen, auch wenn Ihre Bedürfnisse nur andere Variablennamen oder Klammern sind. Und wenn Sie das Gelernte anpassen, müssen Sie es niemandem zuschreiben. Es ist Ihr Produkt, auch wenn Sie Hilfe bei der Erstellung hatten. Wir alle haben Hilfe beim Erschaffen von Dingen. Niemand kann Dinge aus dem Nichts erschaffen.
Als professioneller Softwareentwickler gehört es dazu, Softwarelizenzen und die Wiederverwendung von Code im Griff zu haben. Wenn Sie sich an diese Regeln halten, können Sie gegenüber einem Personalchef leicht argumentieren, dass Sie die Standardverfahren befolgt haben.
Jede Website hat eine andere Lizenz, aber diese Empfehlung wird gegeben, wenn Code von Stack Overflow (oder einer beliebigen Stack Exchange-Site) abgerufen wird:
Aber um Ihre Arbeit zukunftssicher zu machen, empfehlen wir Ihnen, eines dieser beiden Dinge oder beides zu tun:
A) Fügen Sie Ihrem Code einen Kommentar hinzu, der auf den Beitrag verweist, in dem Sie ihn gefunden haben, oder
B) Halten Sie sich an das MIT, wie es normalerweise verwendet wird, indem Sie den vollständigen Lizenztext in Ihre Quelle aufnehmen
Sie machen Option A bereits, richtig? Dies ist nur ein Standardverfahren, wenn es darum geht, Code im Internet zu finden – ein Hyperlink-Kommentar stellt sicher, dass Sie später debuggen können. Aber unter den neuen Bedingungen ist ein Hyperlink-Kommentar mehr als nur pragmatisch, es ist ein Huttipp und ein Revier, das sicherstellt, dass Sie die Bedingungen eines Mitwirkenden eingehalten haben
Im Allgemeinen ist die Verwendung von Code aus dem Internet in Ordnung, aber ich würde Sie davor warnen, es zu übertreiben. Wenn jede Funktion in Ihrem Repository ein Zitat zu Stack Overflow enthält, würde ich Ihre Fähigkeit in Frage stellen, spezifischere Probleme zu lösen.
Sabine
Brandin
Ajasja
Dan
Doyle Lewis
* Search through an array of objects to see if a given index matches a given value * http://stackoverflow.com/questions/4742903/php-find-entry-by-object-property-from-a-array-of-objects
Ich habe die Methode leicht von dem geändert, was dort ist, aber wenn ich oder ein anderer Entwickler jemals Hilfe bei dem brauche, was vor sich geht und warum Ich habe diesen Code gewählt, wir wissen, wo wir suchen müssen.Brandin
Brandin
Doyle Lewis