पृष्ठभूमि
पिछले साल, मैंने एक विश्वविद्यालय में भौतिकी अनुसंधान समूह में इंटर्नशिप किया। इस समूह में, हम ज्यादातर अपने सेटअप को नियंत्रित करने, डेटा अधिग्रहण करने और हमारे डेटा का विश्लेषण करने के लिए प्रोग्राम लिखने के लिए LabVIEW का उपयोग करते थे। पहले दो उद्देश्यों के लिए, जो काफी ठीक काम करता है, लेकिन डेटा विश्लेषण के लिए, यह एक वास्तविक दर्द है। उसके शीर्ष पर, हर कोई ज्यादातर स्वयं-सिखाया गया था, इसलिए जो कोड लिखा गया था वह आम तौर पर काफी गड़बड़ था (कोई आश्चर्य नहीं कि हर पीएचडी ने जल्दी से खरोंच से सब कुछ फिर से लिखने का फैसला किया)। संस्करण नियंत्रण अज्ञात था, और आईटी विभाग के सख्त सॉफ्टवेयर और नेटवर्क नियमों के कारण स्थापित करना असंभव था।
अब, चीजें वास्तव में आश्चर्यजनक रूप से ठीक हुईं, लेकिन प्राकृतिक विज्ञान के लोग अपने सॉफ्टवेयर का विकास कैसे करते हैं?
प्रशन
कुछ ठोस सवाल:
- आपने वैज्ञानिक सॉफ़्टवेयर, विशेष रूप से डेटा विश्लेषण के विकास के लिए किन भाषाओं / वातावरण का उपयोग किया है? क्या पुस्तकालय? (उदाहरण के लिए, आप प्लॉटिंग के लिए क्या उपयोग करते हैं?)
- क्या प्रोग्रामिंग में किसी महत्वपूर्ण पृष्ठभूमि के बिना लोगों के लिए कोई प्रशिक्षण था?
- क्या आपके पास संस्करण नियंत्रण और बग ट्रैकिंग जैसे कुछ भी था?
- व्यक्तिगत वैज्ञानिकों (विशेषकर भौतिक विज्ञानी जिद्दी लोग हैं) के रास्ते में बहुत अधिक आए बिना, आप प्रोग्रामिंग के लिए एक सभ्य वातावरण बनाने की कोशिश कैसे करेंगे!
इस प्रकार उत्तर का सारांश
इस प्रकार के उत्तर (या मेरी व्याख्या) अब तक: (2008-10-11)
- सबसे व्यापक रूप से इस्तेमाल होने वाली भाषाएँ / पैकेज:
- संस्करण नियंत्रण का उपयोग लगभग सभी उत्तरदाताओं द्वारा किया जाता है; बग ट्रैकिंग और अन्य प्रक्रियाएं बहुत कम आम हैं।
- सॉफ्टवेयर बढ़ईगीरी पाठ्यक्रम वैज्ञानिकों को प्रोग्रामिंग और विकास तकनीक सिखाने का एक अच्छा तरीका है।
- चीजों को कैसे सुधारें?
- लोगों को सख्त प्रोटोकॉल का पालन करने के लिए मजबूर न करें।
- स्वयं एक वातावरण स्थापित करें, और दूसरों को लाभ दिखाएं। उन्हें स्वयं संस्करण नियंत्रण, बग ट्रैकिंग आदि के साथ काम करना शुरू करने में मदद करें।
- अन्य लोगों के कोड की समीक्षा करने से मदद मिल सकती है, लेकिन इस बात से अवगत रहें कि हर कोई इसकी सराहना नहीं कर सकता है।