코딩을 배울 때 기술을 향상시키는 가장 좋은 방법은 코딩 문제를 직접 해결해 보는 것이다. 다양한 유형의 문제와 퍼즐을 푸는 것은 더 나은 문제 해결 방법을 알려주고, 프로그래밍 언어의 복잡성을 배울 수 있다. 나아가 면접을 준비하고 새로운 알고리즘을 배우는 데에도 도움이 된다.
직접 코딩 문제를 풀면서 코딩 실력을 향상시키고 싶다면, 미국 코딩 교육 비영리 조직인 ‘프리코드캠프’(freeCodeCamp)가 소개한 가장 인기 있는 ‘코딩 챌린지 웹사이트 TOP 10’을 방문해 보자. 먼저, 프리코드캠프 선정 ‘코딩 챌린지 웹사이트 TOP 10’ 중 1~5위까지 소개한다.
![탑코더는 온라인 경쟁 프로그래밍을 위한 독창적인 플랫폼 중 하나다. [사진출처=탑코더 홈페이지]](/news/data/2022/07/15/p179564958682826_711.jpg)
1. 탑코더(TopCoder)
탑코더는 온라인 경쟁 프로그래밍을 위한 독창적인 플랫폼 중 하나다. 코드 편집기를 사용해 온라인에서 직접 풀 수 있는 과거의 알고리즘 문제 목록을 제공한다. 인기 있는 싱글 라운드 매치는 한 달에 몇 번 특정 시간에 제공된다.
탑코더의 상위 실력자들은 경쟁력 있는 프로그래머이며, 정기적으로 프로그래밍 대회에 참가하고 있다. 최고 실력자 페트르 미트리체프(Petr Mitrichev)가 매주 알고리즘(Algorithms)이라는 제목의 블로그를 운영하며 코딩 대회, 알고리즘, 수학 등에 대해 글을 쓴다.
![코더바이트에서는 무료로 문제에 도전할 수 있다. 무료 챌린지 화면 [사진출처=코더바이트 홈페이지]](/news/data/2022/07/15/p179564958682826_591.jpg)
2. 코더바이트(Coderbyte)
코더바이트는 온라인에서 직접 해결할 수 있는 200개 이상의 코딩 문제를 제공한다. 도전 과제는 쉬운 것(문자열에서 가장 큰 단어 찾기)부터 어려운 것(그래프의 최대 카디널리티 일치 인쇄)까지 다양하다. 또한 알고리즘 자습서, 소개 비디오, 인터뷰 준비 과정 모음을 제공한다. 해커랭크(HackerRank)나 기타 비슷한 웹사이트와는 달리 코더바이트가 제공하는 솔루션과 다른 사용자가 제공하는 솔루션을 함께 볼 수 있다.
3. 프로젝트 오일러(Project euler)
프로젝트 오일러는 컴퓨터 과학과 수학 영역에서 많은 도전 과제를 제공한다. 프로그래밍으로 수학 문제를 해결하는 사이트로 현재 760여개의 문제가 업로드 돼 있다. 국가별 랭킹도 제공하고 단계별 상도 수여한다. 프로그랭밍 언어는 무엇을 써도 상관없다. 문제마다 난이도가 나눠져 있다.
4. 해커랭크(HackerRank)
해커랭크는 알고리즘, 수학, SQL, 함수형 프로그래밍, AI 등과 같은 여러 다른 도메인에 대한 과제를 제공한다. 모든 문제를 온라인에서 직접 해결할 수 있다. 모든 챌린지에 대한 토론과 리더보드를 제공하며, 대부분의 챌린지에는 문제에 대해 자세히 설명하고 솔루션을 마련하기 위해 접근하는 방법을 설명하는 사설이 함께 제공된다. 현재의 문제를 해결하지 않으면 다른 사람의 솔루션을 볼 수 없다. 문제를 풀기 전에 사설을 확인하려고 하면 문제 해결의 요점을 전혀 알 수 없다.
5. 코드셰프(CodeChef)
코드쉐프는 수백 가지 도전 과제를 제공하는 인도 기반의 경쟁 프로그래밍 웹사이트다. 온라인 편집기에서 코드를 작성하고 기술 수준에 따라 다른 범주로 분리된 도전 모음을 볼 수 있다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]