Fork me on GitHub

들어가며

여기 꿈이 있다.

컴퓨터가 여구를 혁명적으로 바꾸었고, 혁명은 지금 시작단계다. 매일 전세계 과학자와 공학자들이 너무 크거가, 너무 작거나, 너무 빠르거나, 너무 비싸거나, 너무 위험하거나, 혹은 너무 어려워서 어느 방식이든지 연구하기 어려운 것들을 연구하기 위해서 컴퓨터를 사용한다.

지금 현실이 여기 있다.

매일 전세계 과학자들과 공학자들이 컴퓨터와 씨름하면서 시간을 낭비하고 있다. 얼마 걸리지 않을 작업이 몇 시간, 몇일이 걸리지만, 많은 것들은 결코 작동하지 않는다. 그리고 심지어 동작을 해도, 결과가 얼마나 신뢰성이 있는지에 대해서 많은 과학자들이 확신을 하지 못한다.

연구자들이 느끼는 대부분의 고통은 체계적으로 소프트웨어를 어떻게 개발하는지, 만약 프로그램이 잘 동작한다면 어떻게 작업결과를 전자우편을 통해서 전달하는 것을 제외하고 동료와 공유하는지, 혹은 지금까지 연구한 것을 어떻게 기록하는지 잘 모른다는 사실에 기인하다. 이러한 유감스러운 문제가 지속되는 이유는 다음 4가지에 기인한다.

  • 공간과 시간이 없다. (No room, no time) 모든 사람의 교육과정은 이미 꽉 차 있다. - 단순하게 다른 교육과정을 빼지 않고 컴퓨팅에 대해서 추가할 공간이 없다.
  • 표준이 없다.(No standards) 검수자와 연구기금을 관리하는 기관에서 소프트웨어를 정확하게 작성한 것인지 확인하지 낞고, 프로그램을 작성하는데 얼마나 걸리는지 혹은 임기까지 계산하지 않는다. 그래서 과학자들이 더 잘할 동기가 없다.
  • 장님이 장님을 인도한다.(The blind leading the blind) 선임 연구자는 본인 스스로 어떻게 하는지 모르는 것을 다음 세대 연구자에게 어떻게 하라고 가르칠 수 없다.
  • 대형 메인프레임 컴퓨터 숭배(The cult of big iron) 거의 모든 사람들이 사용하는 기본적인 기술보다는 정치가와 대학 총장이 첫 날 자랑하는 것에 관심과 자금이 대부분이 들어간다.

소프트웨어 공방(Software Carpentry)의 목적은 과학자와 공학자에게 어떻게 적은 시간으로 덜 수고스럽게 많은 작업을 할 수 있는지 보여준다. '10년 봄 이래로 100여번의 이틀 워크샵을 통해서 4천명 이상의 학습자가 본 학습과정을 거쳐갔다. 다음에 어떻게 도움이 될 수 있는지 사례가 있다.

  • 잘못된 파일을 덮어쓴 적이 있다면, 버젼 관리(version control)를 어떻게 사용하는지 보여줄 것이다.
  • 동일한 명령어를 반복해서 타이핑하는데 여러 시간을 소비한적이 있다면, 간단한 스크립크로 어떻게 작업을 자동화하는지 보여줄 것이다.
  • 지난 주에 작성한 정말 동작하는 프로그램을 이해하는데 오후를 보낸적이 있다면, 코드를 잘게 쪼개서 읽고, 디버그하고, 기능을 개선하기 쉽게 모듈화하는 것을 보여줄 것이다.

우리는 누구인가

소프트웨어 공방(Software Carpentry)은 공개 소프트웨어 프로젝트다. 강사는 자발적으로 참여한 자원봉사자이고, 모든 학습자료는 크리에이티브 커먼즈 라이센스(Creative Commons - Attribution License)로 자유로이 이용가능하다. 따라서, 원 출처를 밝히기만 하면, 학습자료를 재사용하고, 다른 학습자료와 섞어서도 사용할 수 있다.

다른 공개된 자발적인 프로젝트와 마찬가지로, 소프트웨어 공방(Software Carpentry) 프로젝트는 확대되기 위해서 여러분의 도움이 필요하다. 만약 버그가 있다면, GitHub 저장소에 보고해주세요. 만약 워크샵을 개최하고자 한다면, 전자우편으로 연락주세요. 만약 교육을 하고자 한다면,
강사 훈련 과정이 있습니다. 만약 학습과정이나 연습문제를 집필하고자 한다면, 전자우편으로 연락주세요.

좀더 많은 정보가 필요하다면, 소프트웨어 공방(Software Carpentry) 웹사이트 혹은 모범사례 논문을 읽거나, 가장 최근의 블로그 포스팅을 참고하세요.

감사의 글

소프트웨어 공방(Software Carpentry)은 다음의 관대한 지원으로 가능하게 되었다.

이 과정의 첫번째 버젼을 만들고 지도하는데 도움을 주신 Brent Gorda에게 특별한 감사의 말씀을 전한다.

이책은 ENIAC컴퓨터의 원조 프로그래머들에게 헌정한다.
Betty Jennings, Betty Snyder, Fran Bilas, Kay McNulty, Marlyn Wescoff, Ruth Lichterman