Ich bin ein Student, der als wissenschaftlicher Mitarbeiter für eine Universität arbeitet, hauptsächlich zusammen mit einem Betreuer. Obwohl ich mein eigenes Projekt habe, muss ich meinen Vorgesetzten in meiner Arbeit bei seiner Hauptforschung unterstützen.
Kürzlich hat mir mein Vorgesetzter ein kleines Codierungsprojekt zugewiesen, das die Datenanalyse für Experimente beschleunigen und uns beiden zugute kommen würde. Ich würde gerne Code schreiben, der seine und meine Arbeit vereinfacht, ebenso wie mein Job als sein Assistent. Ich bin jedoch besorgt, dass der Code, den ich geschrieben habe, in der gesamten Forschungsgruppe verbreitet und verwendet wird. Dieses Gefühl ist darauf zurückzuführen, dass dieses Codierungsprojekt während eines Gruppengesprächs entstand, zu dem ich, mein Vorgesetzter und ein anderer Forscher gehörten, der darauf hinwies, dass ein solches Programm ihm und anderen in der Abteilung Zeit und Energie sparen würde.
Meine zwei Fragen
Habe ich das berechtigte Gefühl, von dem anderen Forscher ausgenutzt zu werden, um diesen Code zu schreiben, oder bin ich egoistisch?
Kann ich meinen Code vor der Verwendung durch andere schützen, ohne Spannungen/Feinde zu erzeugen?
Ich glaube, dass meine Energie und Zeit in erster Linie für die Arbeit meines Vorgesetzten und für meine eigene reserviert sind. Dies ist Code, der relativ einfach zu schreiben ist, aber ziemlich zeitintensiv ist. Ich sehe, wenn der andere Forscher diese Abkürzung in der Datenanalyse haben möchte, könnte er sie selbst schreiben. Es würde mich nicht so sehr stören, wenn das Projekt direkt von meinem Vorgesetzten kommt, sondern explizit für uns. Wenn es später geteilt würde, wäre ich nicht so zwiegespalten. Vielmehr ist der Forscher, der das Projekt vorangetrieben hat, weit entfernt von meiner Arbeit.
Wie würde ich andernfalls sicherstellen, dass ich Anerkennung dafür erhalte, falls sich dieser Code auf andere Forscher ausbreitet? Ich betreibe eine Weiterbildung mit dieser Abteilung und möchte meinen Ruf als bedeutendes Mitglied der Forschungsgruppe für die Zulassung verbessern. Vielleicht bin ich zu kleinlich oder egoistisch in Bezug auf die Auswirkungen dieses Kodex. Dies ist das erste Mal, dass ich Code für etwas geschrieben habe, das über den Unterricht hinausgeht, und ich möchte die Situation richtig angehen.
Bearbeiten
Danke an alle, die mir gezeigt haben, dass ich wirklich, wirklich idiotisch war. Die meisten dieser Kommentare sind sinnvoll oder haben mir den Kopf versohlt, den ich brauchte. In der Lage zu sein, andere Industrien zu verbessern, ist ein großer Punkt meines Interesses an diesem Bereich, also machte es klar, dass ich ein Heuchler war, als ich es von außen sah. Mir ist klar, dass ich meine Denkweise ändern muss, wenn ich in Zukunft Forschung betreiben möchte. In der Zwischenzeit werde ich den Code so weit wie möglich diversifizieren, um so vielen wie möglich zu helfen. Danke allen für den Input.
Habe ich das berechtigte Gefühl, von dem anderen Forscher ausgenutzt zu werden, um diesen Code zu schreiben, oder bin ich egoistisch?
Nein, Sie werden nicht "ausgenutzt" - wenn ich Sie richtig verstehe, würde dieser Kodex auch Ihnen und Ihrem Vorgesetzten zugute kommen. Dass es auch anderen zugute kommt, ist eine gute Sache .
Kann ich meinen Code vor der Verwendung durch andere schützen, ohne Spannungen/Feinde zu erzeugen?
Sie können es möglicherweise schützen, obwohl dies unwahrscheinlich ist, da Sie für die Universität arbeiten und diese die Arbeit wahrscheinlich sowieso "besitzt". Aber ich denke, selbst der Versuch, dies zu tun, wird wahrscheinlich "Spannung/Feinde" verursachen, wie Sie es ausdrücken.
Warum? Denn Sie haben buchstäblich nichts zu gewinnen, wenn Sie diesen Code anderen in der Forschungsgruppe vorenthalten – alles, was es tut, ist, andere zu verletzen, was es so aussehen lässt, als ob dies Ihre Absicht gewesen wäre. Und das ist ziemlich wahrscheinlich, die Leute zu ärgern.
Ich betreibe eine Weiterbildung mit dieser Abteilung und möchte meinen Ruf als bedeutendes Mitglied der Forschungsgruppe für die Zulassung verbessern.
Hier ist es anders herum – wenn Sie etwas Sinnvolles im Kontext der Forschungsgruppe schaffen, möchten Sie , dass andere davon profitieren. Je mehr Mitglieder davon profitieren, desto größer ist die Wirkung. Je mehr Leute du versuchst, es davon abzuhalten, desto mehr Leute wirst du haben, die Leuten (wie denen, die an der Aufnahme beteiligt sind) sagen, dass du ein egoistisches Kind bist, das kein Teamplayer ist.
Da dies das erste Mal ist, dass Sie "Code für etwas über die Klassenarbeit hinaus schreiben", denke ich, dass es wichtig ist, einige der Grundprinzipien dessen zu lernen, was es bedeutet, Software für Geld zu schreiben, da ich denke, sobald Sie diese verstanden haben, die Antwort auf Ihre Fragen fließen ziemlich natürlich.
Erstes Prinzip: Wenn Sie jemand dafür bezahlt, Code zu schreiben, impliziert das zwei Dinge: Erstens, dass Sie etwas schreiben, um ein Problem zu lösen oder ein Bedürfnis zu erfüllen, das er hat; zweitens, dass sie es besitzen und damit machen können, was sie wollen. Dieses Prinzip ist in den Vereinigten Staaten rechtlich als Work-For-Hire bekannt .
Zweites Prinzip: Der Code, den Sie geschrieben haben, ist nichts Besonderes - es gibt buchstäblich Millionen anderer Leute da draußen, die denselben oder besseren Code hätten produzieren können, um dasselbe Problem zu lösen.
Wenn Sie diese zusammennehmen, werden Sie feststellen, dass es erstens nicht Ihr Code ist (er gehört Ihrem Vorgesetzten oder dem Labor oder der Universität oder wem auch immer) und dass der Code nicht besonders wertvoll ist (alles es lohnt sich, jemanden zu bezahlen, der es umschreibt). Da Ihr Projekt ein "kleines Programmierprojekt" war, das von einem wissenschaftlichen Mitarbeiter geschrieben wurde, ist der Wiederbeschaffungswert eigentlich eher gering.
Jetzt, da Sie sehen, dass der Code selbst nur einen begrenzten Wert hat, müssen Sie verstehen, wo Sie dem Prozess tatsächlichen Wert hinzufügen (damit Sie lernen können, wie Sie mehr Wert hinzufügen – und im Gegenzug mehr Vergütung erhalten).
Ein Entwickler schafft einen Mehrwert für eine Organisation, indem er in der Lage ist:
Da Ihr Ziel darin besteht, „Anerkennung zu erhalten“ und „[Ihren] Ruf zu verbessern“, und da dies Formen der Vergütung sind, müssen Sie sich darauf konzentrieren, einen tatsächlichen Mehrwert zu schaffen.
Um einen Mehrwert in Ihrer Situation zu schaffen, sollten Sie jeden potenziellen Benutzer umarmen. Da jeder von ihnen ein etwas anderes Problem zu lösen hat, entwickeln Sie beide ein Fachwissen zur Lösung dieser Art von Problemen (Nr. 1) und entwickeln eine Software, die viele verschiedene Probleme lösen kann (Nr. 3), einschließlich der für Benutzer, die Sie noch nicht identifiziert haben. Jeder von ihnen wird Ihren Code auch anders ausführen, was (hoffentlich) zu einer Software führt, die stabiler und skalierbarer ist, als wenn sie nur für einen einzelnen Benutzer entwickelt worden wäre (#2).
Da Sie sich mit dieser Abteilung weiterbilden möchten - stellen Sie sich vor, wie hilfreich es für Ihre Bewerbung wäre, wenn 2 oder 3 (oder mehr) Forscher beschreiben würden, wie Sie eine Bewerbung erstellt haben, die ihnen geholfen hat, viel Zeit zu sparen, wie Sie es konnten schnell ihr Problem verstehen und es in eine funktionierende und performante Software übersetzen. Das scheint eine wertvolle Sache für Sie zu sein, die Sie aus diesem Prozess gewinnen können.
Ich bin auch ein Forschungsprogrammierer, der in der Wissenschaft arbeitet. Wir haben das Glück, in einem Bereich tätig zu sein, in dem das Teilen von Daten und Methoden die Norm ist. Ich, alle meine Kollegen, und ich wette, Sie auch, haben alle von jahrzehntelanger früherer Forschung profitiert, die veröffentlicht und uns zur Verfügung gestellt wurde. Sie treibt den wissenschaftlichen Fortschritt voran.
Es ist jedoch vollkommen vernünftig, eine gewisse Anerkennung für Ihre Arbeit zu wünschen. Ich würde vorschlagen, ein Github-Konto einzurichten und Ihre Arbeit dort zu veröffentlichen, mit einer kleinen Anleitung zur Verwendung. Wenn Ihre Arbeit von anderen Forschern verwendet wird, ist dies für Ihre Karriere weitaus besser, als nur von Ihrem PI auf die Schulter geklopft zu werden. In Bewerbungsschreiben an Graduate Schools über die Auswirkungen eines von Ihnen veröffentlichten Datenanalyse-Tools sprechen zu können, wird sehr gut aussehen.
Ich glaube nicht, dass Sie Ihren Code vor Ihren Kollegen schützen können. Universitäten haben normalerweise einige ziemlich strenge Klauseln zum geistigen Eigentum in ihren Arbeitsverträgen. Dies kann jedoch auch von dem Land abhängen, in dem Sie sich befinden.
Aber am Ende denke ich, dass Sie ein Mitarbeiter der Universität sind und Ihr Vorgesetzter Ihnen aufgetragen hat, etwas zu produzieren. Dieses Etwas wird am Ende wahrscheinlich der Universität gehören. Sie werden wahrscheinlich der Tatsache ins Auge sehen müssen, dass etwas, das Sie anstelle Ihrer Arbeit für jemand anderen geschaffen haben, nicht Ihnen gehört.
Sie könnten argumentieren, dass diese Aufgabe außerhalb Ihres Vertrags liegt, aber ich glaube nicht wirklich, dass dies hier funktionieren wird und die Beziehung zu Ihrem Vorgesetzten ernsthaft beeinträchtigen könnte.
Wenn der Code nicht bereits unter einer Lizenz existiert und Sie Ihren Vorgesetzten davon überzeugen, diesen Code zu verwenden, sehe ich keine Möglichkeit, Ihren Code zu schützen.
Zunächst einmal, wenn Sie nur wegen des Geldes als RA arbeiten, müssen Sie sich keine Sorgen machen, da Ihr Arbeitgeber sowieso Ihren Code besitzt, wie in den obigen Antworten ausführlich behandelt.
Aber ich gehe davon aus, dass Sie auch in die Forschung investiert sind und den Wunsch haben, sich als Forscher einen Namen zu machen. In diesem Fall ist es wichtig zu verstehen, dass die Hauptwährung in der Forschungsgemeinschaft Reputation und Sichtbarkeit sind. Das gemeinsame Verfassen und Präsentieren von Forschungsarbeiten ist eine großartige Möglichkeit, Ihren akademischen Ruf zu stärken, aber die Veröffentlichung von nützlichem und weit verbreitetem Quellcode ist eine andere.
Es ist möglich, Ihren Code unter einer Lizenz zu veröffentlichen, die andere dazu zwingt , Sie anzuerkennen, wenn sie Ihren Code verwenden, aber ich rate Ihnen von diesem Kurs ab, da er Ihre Benutzer unnötig verärgert und die Wahrscheinlichkeit einer Übernahme verringert. Setzen Sie Ihren Namen in einen Kommentar am Anfang der wichtigsten Quelldateien und fügen Sie eine freundliche Notiz in den Code/die README-Datei ein, etwa „Wenn Sie diesen Code verwenden, bestätigen Sie bitte Person XXX und zitieren Sie Papier YYY!“ ist in der Regel ausreichend.
Daher sollten Sie standardmäßig möchten, dass Ihr Code so weit wie möglich verbreitet und verwendet wird!
Allerdings gibt es manchmal gute Gründe, den Code privat zu halten:
Fazit: Sie sollten Ihren Code von so vielen Menschen wie möglich verwenden lassen , aber sprechen Sie mit Ihrem Vorgesetzten über Ihre Bedenken und bitten Sie um Erlaubnis, bevor Sie den Code auf einem öffentlichen GitHub veröffentlichen oder an andere weitergeben.
stdout
ist das in Ordnung; wenn es für nachgelagerte Software gemein ist, es zu konsumieren, schreiben Sie es anstderr
Sie sollten sich freuen, dass Sie die Möglichkeit haben, ein solches Projekt in Ihren Lebenslauf aufzunehmen. Wenn Sie dies nutzen, wird dies definitiv ein Gesprächsthema für alle zukünftigen Jobaussichten sein. Im Großen und Ganzen werden Sie in fünf Jahren nicht einmal mehr an das Projekt denken
Um Ihre Frage tatsächlich zu beantworten: Anbieter schützen ihren Code, indem sie die Binärdatei des Codes (z. B. eine ausführbare Datei) verteilen, die in einem Texteditor nicht interpretiert werden kann
Um den Punkt zu demonstrieren, wenn das Programm in Go geschrieben ist und Sie myProgram.go verteilen, dann wird Ihr Code geteilt, wenn Sie myProgram als ausführbare Unix-Datei oder exe-Datei versenden, dann kann es nicht interpretiert werden
Bei Javascript kann die Verschleierung durch Minimierung Ihrer Datei erfolgen. Dadurch werden alle Ihre Funktionen und Variablen in einem schwieriger lesbaren Format dargestellt. Beispiel: "myFunctionToSendOutAnEmail()" würde in "a()" geändert. Minimierte JS-Dateien haben die Erweiterung myProgram.min.js im Gegensatz zu myProgram.js
Solar-Mike
Benutzer107417
Erwan
zr00