Lý lịch
Năm ngoái, tôi đã thực tập trong một nhóm nghiên cứu vật lý tại một trường đại học. Trong nhóm này, chúng tôi chủ yếu sử dụng LabVIEW để viết các chương trình kiểm soát thiết lập của chúng tôi, thực hiện việc thu thập dữ liệu và phân tích dữ liệu của chúng tôi. Đối với hai mục đích đầu tiên, điều đó hoạt động khá ổn, nhưng đối với phân tích dữ liệu, đó là một nỗi đau thực sự. Trên hết, mọi người hầu hết đều tự học, vì vậy mã được viết ra nhìn chung khá lộn xộn (không có gì lạ khi mọi tiến sĩ đều nhanh chóng quyết định viết lại mọi thứ từ đầu). Kiểm soát phiên bản không xác định và không thể thiết lập do các quy định nghiêm ngặt về phần mềm và mạng từ bộ phận CNTT.
Bây giờ, mọi thứ thực sự diễn ra ổn một cách đáng ngạc nhiên, nhưng làm thế nào để những người trong ngành khoa học tự nhiên phát triển phần mềm của họ?
Câu hỏi
Một số câu hỏi cụ thể:
- Bạn đã sử dụng những ngôn ngữ / môi trường nào để phát triển phần mềm khoa học, đặc biệt là phân tích dữ liệu? Những thư viện nào? (ví dụ, bạn sử dụng gì để lập kế hoạch?)
- Có khóa đào tạo nào dành cho những người không có kiến thức nền tảng về lập trình không?
- Bạn có bất cứ điều gì như kiểm soát phiên bản và theo dõi lỗi không?
- Làm thế nào bạn sẽ cố gắng tạo ra một môi trường tốt cho lập trình, mà không làm cản trở quá nhiều đến các nhà khoa học cá nhân (đặc biệt là các nhà vật lý là những người cứng đầu!)
Tóm tắt các câu trả lời cho đến nay
Các câu trả lời (hoặc cách giải thích của tôi về chúng) cho đến nay: (2008-10-11)
- Các ngôn ngữ / gói dường như được sử dụng rộng rãi nhất:
- Kiểm soát phiên bản được sử dụng bởi gần như tất cả người trả lời; theo dõi lỗi và các quy trình khác ít phổ biến hơn nhiều.
- Khóa học Nghề mộc phần mềm là một cách tốt để dạy các kỹ thuật lập trình và phát triển cho các nhà khoa học.
- Làm thế nào để cải thiện mọi thứ?
- Đừng ép buộc mọi người tuân theo các giao thức nghiêm ngặt.
- Tự thiết lập môi trường và thể hiện lợi ích cho người khác. Giúp họ bắt đầu tự làm việc với kiểm soát phiên bản, theo dõi lỗi, v.v.
- Xem lại mã của người khác có thể hữu ích, nhưng lưu ý rằng không phải ai cũng có thể đánh giá cao điều đó.