문제 해결 기술을 계속 연습하는 것이 중요하다고 생각합니다. 내 자신의 미니 프로젝트를 작성하는 것은 한 가지 방법이지만, 다른 방법은 온라인에 게시 된 문제를 시도하고 해결하는 것입니다. 영리한 알고리즘을 적용하여 해결해야하는 흥미로운 프로그래밍 퀴즈를 온라인에서 쉽게 찾을 수 있습니다. Project Euler 는 잘 알려진 예입니다.
그러나 많은 실제 프로젝트에서 소프트웨어 설계 , 특히 초기 단계에서 큰 영향을 미치며 이후 단계에서 일반 알고리즘만큼 쉽게 조정할 수는 없습니다. 이러한 기술을 향상시키기 위해 디자인 문제 모음을 찾고 있습니다.
"디자인"이라고 말하면 소프트웨어 솔루션의 추상적 인 디자인을 의미합니다. 예를 들어 어떤 모듈이 있고 모듈 간의 종속성, 프로그램에서 데이터가 흐르는 방식, 데이터 저장에 필요한 데이터 종류 등이 있습니다. 설계 문제는 모든 프로젝트의 초기 단계에서 해결해야하는 문제이지만 솔루션은 단일 코드 줄이없는 화이트 보드 다이어그램입니다.
물론 이러한 종류의 문제에는 하나의 올바른 해결책이 없지만 문제에 접근하는 데 사용할 수있는 일반적인 솔루션의 장단점을 표시하는 모든 장소에 특히 만족합니다.