코딩수련
[edit]
1.1 방법 #
코딩수련을 할 때 아래의 항목을 적용해 보면 좋습니다. 특별한 순서는 없지만, '위에서 부터 점진적으로 적용을 해 나가면 어떨까?'라는 관점으로 썼습니다.
- 처음에는 가장 빨리 풀 수 있는 방법을 찾아서 하면 좋다.
- 소스를 저장해 놓으면 좋다.
- 소스를 쉽게 볼 수 있도록 하면 좋다.
- 소스를 저장해 놓으면 좋다.
- 코딩수련을 하면서, 한 후에 느낀 점들을 생각해 보고, 기록한다.
- PlusMinusInteresting 를 하면 좋다.
- 회고를 하면 좋다.
- PlusMinusInteresting 를 하면 좋다.
- 반복해서 풀면 좋다.
- 다양한 방법을 사용해 보면 좋다.
- 다양한 알고리즘을 사용한다.
- 다양한 방법론을 사용한다.
- 다양한 알고리즘을 사용한다.
- 페어로 풀면 좋다.
- 다양한 사람들과 하면 좋다.
- 다양한 사람들과 하면 좋다.
- 테스트를 넣으면 좋다.
- 테스트 유닛을 사용하면 좋다.
- 테스트를 먼저 작성하는 방식을 사용하면 좋다.
- TDD를 사용하면 좋다.
- 테스트 유닛을 사용하면 좋다.
- 여러 가지 언어를 사용하면 좋다.
- 처음에는 기존에 풀었던 알고리즘을 사용하면 좋다.
- 그 언어가 가지고 있는 특징을 사용하면 좋다.(이 것이 가장 빨리 풀 수 있는 방법이 된다.)
- 처음에는 기존에 풀었던 알고리즘을 사용하면 좋다.
- 다양한 방법을 사용해 보면 좋다.
[edit]
2 코딩수련문제들 #
- 코딩수련문제들 : 코딩수련에 사용하거나 사용해보고 싶은 문제들을 모았습니다.
CodingDojoKata : 코딩도장에서 사용했던 문제들입니다.
대안언어축제2006/공통문제집합 : 대안언어축제2006에서 사용한 공통문제 집합입니다.
제로위키/문제분류 : 중앙대학교 제로페이지에 있는 문제들입니다.
- http://bossavit.com/cgi-bin/dojo.pl?ProposedKatas
- HowToUVA : 다양한 알고리즘 문제를 볼 수 있습니다.
[edit]
3 참고 #
코딩수련은 아래 코딩도장을 모방해서 시작한 것입니다. 집단으로 코딩수련을 할 때 코딩도장 방식을 그대로 따르는 것에 대해서는 아직 정리되지 않았습니다. 하지만, 거의 동일한 목적을 향하고 있다고 생각합니다.(아직은 코딩수련이 보다 간단한 목표를 지향하고 있습니다.) 코딩도장의 특징을 이해하는 것은 코딩수련을 이해하는데 큰 도움이 됩니다.
[edit]
3.1.1 코딩도장의 특징 #
- 코드 없이 토론하지 않는다
책을 보고 토론하거나 하는 모임은 이미 많이 있다 (몸으로 수행하라)
- 만든 결과물만 갖고 이야기하지 않고 만드는 과정을 직접 체험한다
각자 만들어 온 코드만 갖고 토론하거나 하기보다 그 코드를 만든 과정을 통해 많은 것을 배운다
- 같은 문제(카타)를 여러번 풀어본다
- 한가지 언어에 국한되어 있지 않다
여러 언어를 쓰는 것에서 더 많은 학습의 기회가 있다고 믿는다. 현재까지 코딩도장에서 사용했던 언어는 C, C++, Python, Java, Io, Haskell, Ruby, Smalltalk 등
- 가능하면 모든 코드는 테스트 코드를 포함하도록 한다
꼭 구현 과정이 TDD일 필요는 없으나 최소한의 테스트 코드는 있는 것이 좋다
- 카타는 평균적인 프로그래머가 처음 풀었을 때 TDD를 사용해서 최대 1시간 내에 여유있게 풀 수 있어야 한다
어려운 문제를 하나 푸는 것보다 그 시간에 쉬운 문제를 여러번 푸는 것을 장려한다.







