Ich möchte Geoffs nachdenklicher Antwort etwas mehr Breite geben . Insbesondere möchte ich Ihnen etwas mehr Einblick in den Wert Ihrer Programmierbemühungen geben als in Ihre Forschungsbemühungen in Ihrer frühen Karriere als Akademiker.
Sie werden feststellen, dass die Fähigkeit, Software zu schreiben, um Ihre wissenschaftliche Forschung zu erweitern, Sie zu einem wertvollen Mitglied fast jedes Forschungsteams macht. Diese Zeit wird jedoch von Ihren akademischen Kollegen oder denjenigen, die für akademische Positionen eingestellt werden, nicht unbedingt als "wertvoll" angesehen.
Aus einer 2011 in Princeton durchgeführten Forschungsumfrage "Ein Überblick über die Praxis der Computerwissenschaft" :
Wissenschaftler verbringen viel Zeit mit der Programmierung von Forschungszeit. Im Durchschnitt werden nach Schätzungen von Wissenschaftlern 35% ihrer Forschungszeit für die Programmierung / Entwicklung von Software aufgewendet. Während anfangs einige Zeit für das erneute Schreiben von Code aufgewendet wird, wird ein beträchtlicher Teil der Zeit für viele langwierige Aktivitäten aufgewendet. Zum Beispiel mussten Forscher in Politik und Soziologie, die R / Stata verwendeten, umfangreiche Programmierungen durchführen, um Volkszählungsdaten in Formate nachzurüsten, die einzelne Pakete in R / Stata verstanden. Einige Forscher der chemischen Verfahrenstechnik mussten undokumentierten Legacy-Code, der lange nach Abschluss der ursprünglichen Autoren eine Flammensimulation durchführte, rückentwickeln, um den Code an neuere Brennstoffe anzupassen ... Trotzdem war eine große Mehrheit dieser Forscher der Ansicht, dass "sie verbringen Sie mehr Zeit mit Programmieren als sie sollten "
Das bedeutet nicht, dass es keine gute Idee ist, eine Kernbibliothek oder Anwendungen zu implementieren oder neu zu gestalten. Wenn Sie jedoch ernsthafte Softwareentwicklungen durchführen möchten (mehr als 25% Ihrer Zeit mit Code arbeiten), behalten Sie diese drei bei Gedanken im Kopf.
Komplexität und Risiko wachsen exponentiell mit der Projektgröße und der Anzahl der Entwickler. Solange Sie nicht mit größeren Softwareteilen oder Entwicklerteams geschrieben oder gearbeitet haben, die über Ihr Labor hinausgehen, wird es für Sie schwierig sein, dies richtig einzuschätzen und den Aufwand richtig vorherzusagen.
Du musst gut sein. Sowohl als Programmierer als auch als Anwendungswissenschaftler ist eine gewisse Reife erforderlich, um nützliche Software zu schreiben. Sie müssen die wichtigen Merkmale kennen, wo die numerischen Risiken liegen, und in der Lage sein, den Programmieraufwand für einen bestimmten Satz von Merkmalen und die Robustheit vorherzusagen. Der einzige Weg, um gut zu werden, besteht natürlich darin, Zeit mit Projekten zu verbringen, bei denen Sie nicht die Führung übernehmen oder die sicher scheitern oder verzögert werden können, was mich zu meinem letzten Punkt bringt.
Obwohl viele Forschungslabors und Industriepositionen Wert auf Programmiererfahrung legen, kann wissenschaftliche Programmierung einen potenziellen Nachteil für Ihre akademische Karriere darstellen, selbst wenn Ihre Software der Wissenschaft mehr zugute kommt als Ihre Arbeiten. Die ganze Zeit verbringen Sie damit, zu lernen, wie man gut programmiert, programmiert, Ihren Code dokumentiert und ihn robust macht. Dies führt zu Papieren, die nicht geschrieben werden. Ein Berater wird hier nicht immer das Wohl seines Schülers berücksichtigen, da dies einer der Fälle ist, in denen der Schüler Arbeit leisten kann, die der Beratergruppe zugute kommt, ohne die Anzahl der Zitate des Schülers zu verbessern. Suchen Sie einen oder mehrere vertrauenswürdige Mentoren in dem Bereich auf, an dem Sie interessiert sind, und stellen Sie sicher, dass Sie ein klares Verständnis dafür haben, welche Beiträge als wertvoll angesehen werden. akademia.stackexchange.com ist ein ausgezeichneter Ort, um eine Folgefrage zu stellen.
Als Fußnote: Die Anzahl der Ein-Mann-Projekte, die jedes Rechenfeld erheblich voranbringen, nimmt stetig ab, sei es ein Anwendungsbereich oder etwas Technischeres wie die dichte lineare Algebra. Immer mehr Softwarepakete, die das "Brot und Butter" der Computerforschung bilden, sind 10 Jahre oder älter. Wissenschaftlicher Code, der diesen Reifegrad nicht erreicht hat, weist tendenziell mehr Fehler, weniger Funktionen und eine spärliche Dokumentation auf. Vermeiden Sie es, mit unreifem Code zu arbeiten, der nicht aktiv unterstützt wird, unabhängig davon, wie alt er ist.