첫 개념 연습 문제를 구현했다면, 그다음 몇 개의 연습 문제는 그 위에 쌓아 올려야 해요.
basics 개념 말고는 선수 개념이 없는 연습 문제를 세 개에서 다섯 개 정도 두는 게 좋아요.
좋은 선택지는 여러분 언어의 핵심 기본 요소나 데이터 타입이에요. 예를 들어 불리언, 기본 숫자 타입, 문자열, 아톰 같은 것들이죠.
다른 트랙의 개념 연습 문제를 살펴보고 여러분 트랙에 맞는 게 있는지 확인해 볼 만해요.
개념을 도입한다고 해서 그 개념을 하나도 빠짐없이 완벽하게 설명해야 하는 건 아니에요. 복잡한 부분은 언제든 미뤄도 돼요. 언어에 상황에 따라 유용한 숫자 타입이 열두 개쯤 있을 수도 있어요. 연습 문제에서는 가장 많이 쓰는 정수 타입과 가장 많이 쓰는 실수 타입만 소개하면서, 다른 타입들도 있다고 언급만 해도 돼요.
핵심 데이터 타입 중에는 곧바로 소개하기에 너무 복잡한 것도 있어요. 예를 들어 문자열이 문자의 배열일 수도 있죠. 그런 경우에는 문자열 소개를 미루고, 문자를 위한 개념 연습 문제와 배열을 위한 개념 연습 문제를 따로 설계해야 해요. 그런 다음 두 연습 문제를 선수 문제로 두는 문자열 연습 문제를 추가하면 돼요.
때로는 연습 문제를 만들다 보면 생각보다 복잡하다는 걸 깨닫게 돼요. 그건 전혀 문제없어요. 선수 개념으로 가르쳐야 할 개념을 메모해 두세요. 그런 다음 그런 연습 문제가 이미 있다고 가정하고, 그 단순화를 염두에 두고 작업하던 연습 문제를 마무리해요. 그리고 돌아가서 선수 개념을 위한 새 연습 문제를 만들어요. 선수 연습 문제가 추가될 때까지는 연습 문제를 wip로 표시해 두는 걸 잊지 마세요.
이 시점에 생길 수 있는 또 다른 일은 순환 의존성입니다. 두 개념을 소개해야 하는데, 각 개념이 서로에게 의존하는 경우죠. 이런 경우에는 스텁을 사용할 수 있어요. 그러면 의존하는 개념이 있다고 설명하되, 아직 그것을 이해할 필요는 없다고 안심시켜 줄 수 있어요. 또 다른 방법은 학생이 그 고비를 넘길 만큼만 최소한으로 소개하고, 그 개념은 나중에 더 깊이 다룰 거라고 안심시켜 주는 거예요.
트랙에 맞지 않아서 연습 문제를 구현하지 않기로 했다면(예: 고수준 트랙에 저수준 연습 문제가 있는 경우), 그 문제를 _제외_로 표시해 주세요. 그러려면 트랙의 config.json 파일에 있는 exercises.foregone 배열에 그 연습 문제의 슬러그를 추가해요.
연습 문제를 구현하지 않기로 한 선택을 분명히 해 주는 것 말고도, 모든 도구(configlet 같은)가 제외한 연습 문제를 무시해요.
더 자세한 내용은 문서를 참고하세요.