배경
작년에 저는 대학의 물리학 연구 그룹에서 인턴쉽을했습니다. 이 그룹에서 우리는 주로 LabVIEW 를 사용 하여 설정 제어, 데이터 수집 및 데이터 분석을위한 프로그램을 작성했습니다. 처음 두 가지 목적으로는 꽤 괜찮은 편이지만 데이터 분석에서는 정말 고통 스럽습니다. 게다가 모든 사람이 대부분 독학을했기 때문에 작성된 코드는 일반적으로 상당히 엉망이었습니다 (모든 박사가 모든 것을 처음부터 다시 작성하기로 결정한 것은 당연합니다). 버전 제어는 알려지지 않았으며 IT 부서의 엄격한 소프트웨어 및 네트워크 규정으로 인해 설정할 수 없었습니다.
자, 실제로 모든 것이 놀랍도록 잘 풀 렸습니다.하지만 자연 과학자들은 어떻게 소프트웨어를 개발합니까?
질문
몇 가지 구체적인 질문 :
- 과학 소프트웨어, 특히 데이터 분석을 개발하는 데 어떤 언어 / 환경을 사용 했습니까? 어떤 도서관? (예 : 플로팅에 무엇을 사용합니까?)
- 프로그래밍에 대한 특별한 배경이없는 사람들을위한 교육이 있었습니까?
- 버전 관리 및 버그 추적과 같은 것이 있습니까?
- 개별 과학자들 (특히 물리학 자들은 고집이 센 사람들입니다!)을 너무 많이 방해하지 않고 프로그래밍을위한 적절한 환경을 만들려고 노력하는 방법은 무엇입니까?
지금까지의 답변 요약
지금까지의 답변 (또는 나의 해석) : (2008-10-11)
- 가장 널리 사용되는 것으로 보이는 언어 / 패키지 :
- 버전 관리는 거의 모든 응답자가 사용합니다. 버그 추적 및 기타 프로세스는 훨씬 덜 일반적입니다.
- Software Carpentry 과정은 과학자에게 프로그래밍 및 개발 기술을 가르치는 좋은 방법입니다.
- 개선하는 방법?
- 사람들이 엄격한 프로토콜을 따르도록 강요하지 마십시오.
- 환경을 직접 설정하고 다른 사람들에게 이점을 보여주십시오. 버전 관리, 버그 추적 등을 직접 시작하도록 도와주세요.
- 다른 사람의 코드를 검토하는 것이 도움이 될 수 있지만 모든 사람이 그것을 고맙게 여기는 것은 아닙니다.