Sort:  

미니프로젝트라는 것이 있습니다.
큰 프로젝트를 하기 전에 feasibility 검토하거나, 효율적인 구조를 위해서
퀵 코딩으로 감을 잡습니다.
코딩을 하기 전에는 어떤 일이 생길지 예상하기가 매우 어렵습니다.

git commit 을 의미있는 단위로 나누는 것도 연습합니다.
안되면 다시 reset 하고 또 해보고... 그런 연습이 도움이 되는 것 같습니다.

프로젝트에서 코드를 작성하는 경우에도
리팩토링을 연습하는 것이 중요합니다. 언젠간 해야할 일이 올테니까요...