Geoff'un düşünceli cevabına biraz daha genişlik vermek istiyorum . Özellikle, bir akademik olarak erken kariyerinizdeki araştırma çabalarınızın aksine, programlama çabalarınızın değeri hakkında biraz daha perspektif vermek istiyorum.
Bilimsel araştırmanızı artırmak için yazılım yazabilmenin sizi neredeyse her araştırma ekibinin değerli bir üyesi haline getireceğini göreceksiniz. Ancak, bu kez akademik akranlarınız veya akademik görevler için çalışanlar tarafından mutlaka “değerli” olarak değerlendirilmeyecektir.
Princeton'da yapılan "Araştırma Bilimi Uygulaması Araştırması" başlıklı 2011 araştırma anketinden :
Bilim adamları önemli miktarda araştırma süresi programlama harcıyorlar. Bilim adamları, araştırma sürelerinin% 35'inin yazılım programlama / geliştirme için harcadığını tahmin ediyorlar. Başlangıçta kodun yeniden yazılması için biraz zaman harcanırken, birçok sıkıcı aktivitede zamanın önemli bir kısmı harcanır. Örneğin, Politika ve Sosyoloji alanında R / Stata kullanan araştırmacılar, nüfus sayımı verilerini R / Stata'daki bireysel paketlerin anladığı formatlara uyarlamak için hatırı sayılır bir programlama yapmak zorundaydı. Kimya Mühendisliği'ndeki bazı araştırmacılar, orijinal yazarlar mezun olduktan sonra, kodu daha yeni yakıtlara uyarlamak için alev simülasyonu yapan belgesiz eski kodu tersine çevirmek zorunda kaldı ... Buna rağmen, bu araştırmacıların büyük bir çoğunluğu " programlama gereğinden daha fazla zaman harcamak, "
Bu, çekirdek bir kitaplığı veya uygulamaları uygulamanın veya yeniden tasarlamanın iyi bir fikir olmadığı anlamına gelmez, ancak ciddi bir yazılım geliştirmeye (zamanınızın% 25'inden fazlasıyla kodla çalışacaksanız) bu üçünü saklayın düşünceler akılda.
Karmaşıklık ve risk, proje büyüklüğü ve geliştirici sayısı ile katlanarak artar. Laboratuvarınızın ötesine uzanan daha büyük yazılım parçaları veya geliştirici ekipleri yazana veya üzerinde çalışana kadar, bunun iyi bir şekilde takdir edilmesi ve çabaların doğru bir şekilde tahmin edilmesi zor olacaktır.
İyi olmalısın. Yararlı yazılımlar yazmak hem programcı hem de uygulama bilimcisi olarak belirli bir olgunluk gerektirir . Önemli özelliklerin ne olduğunu, sayısal risklerin nerede olduğunu bilmeniz ve belirli bir özellik ve sağlamlık için programlama çabasını tahmin edebilmeniz gerekir. Tabii ki, iyi olmanın tek yolu, lider olmadığınız veya güvenli bir şekilde başarısız olabileceği veya geciktirilebilecek projelere zaman harcamaktır ve bu da beni son noktaya getiriyor.
Birçok araştırma laboratuvarı ve endüstriyel pozisyon çok değerli programlama deneyimine sahip olsa da, bilimsel programlama, yazılımınız bilimden makalelerinizden daha fazla yarar sağlasa bile akademik kariyeriniz için potansiyel bir zarar görevi görebilir. Bunca zaman, iyi programlamayı, programlamayı, kodunuzu belgelemeyi ve sağlamlaştırmayı öğrenmek için harcarsınız, yazılmamış makalelere dönüşür. Bir danışman, öğrencilerinin her zaman çıkarlarını göz önünde bulundurmayacaktır, çünkü bu, öğrencinin atıf sayısından faydalanmadan danışman grubuna fayda sağlayan iş sağlayabileceği durumlardan biridir. İlgilendiğiniz alanda bir veya daha fazla güvenilir mentor arayın ve hangi katkıların değerli olduğu konusunda net bir anlayışa sahip olduğunuzdan emin olun. academia.stackexchange.com bu konuda bir soru sormak için mükemmel bir yerdir.
Bir dipnot olarak: herhangi bir hesaplama alanını önemli ölçüde ilerleten tek kişilik çaba projelerinin sayısı, bir uygulama alanı veya yoğun doğrusal cebir gibi daha teknik bir şey olsun, sürekli olarak azalmaktadır. Hesaplamalı araştırmanın "ekmek ve tereyağı" nı oluşturan yazılım paketlerinin sayısı 10 yaş ve üzerindedir. Bu olgunluk düzeyine ulaşmamış bilimsel kodlar daha fazla hataya, daha az özelliğe ve seyrek belgelere sahip olma eğilimindedir. Kaç yaşında olduğuna bakılmaksızın aktif olarak desteklenmeyen olgunlaşmamış kodlarla çalışmaktan kaçının.