코딩 챌린지는 목적과 형태에 따라 다양하게 분류될 수 있습니다.
코딩 챌린지의 주요 유형
-
알고리즘 / 인터뷰 준비: LeetCode, HackerRank 등 자료 구조 및 알고리즘(DSA) 학습 및 기술 면접 준비에 활용됩니다.
-
휴일 대회: Advent of Code처럼 코딩을 즐기는 이벤트로, 저자는 Ruby용 CLI 도구를 개발하기도 했습니다.
-
학습 지향 및 언어별 연습: Ruby, JavaScript, TypeScript 등 특정 언어의 숙련도 향상이나 새로운 개념 습득에 유용합니다.
-
엔지니어링 지향 및 “나만의 X 만들기”: 특정 시스템이나 도구를 직접 구축하며 설계 및 구현 역량을 강화합니다.
-
경쟁 프로그래밍, 코드 골프, Kata, 프로그래밍 게임: 문제 해결 능력, 코드 효율성, 간결성을 겨루거나 게임 형식으로 즐기는 활동입니다.
저자는 보안, 데이터, 수학 분야 챌린지나 게임/오디오/비주얼 크리에이티브 코딩(예: Ruby 프레임워크, Sonic Pi)과 같은 개방형 활동은 목록에서 제외했습니다.
코딩 챌린지의 가치와 대안
코딩 챌린지는 코드를 즐겁게 작성하고 학습을 보완하는 좋은 방법이며, FAANG 면접 준비에 필수적일 수 있습니다.
그러나 다음과 같은 경우 최적의 선택이 아닐 수 있습니다.
-
시간 제약: 개발 역량 향상을 위한 시간이 제한적일 때.
-
시장성 우려: 경쟁적 시장에서 직업 안정성을 확보하고자 할 때.
-
다른 성장 목표: 코딩 챌린지로 얻기 어려운 특정 기술(예: 프런트엔드 SPA 프레임워크 내부)을 배우고 싶을 때.
이러한 상황에서는 자신의 작업을 공개적으로 공유하는 것이 효과적인 대안이 됩니다. 이는 코딩 챌린지 못지않게 즐거울 수 있으며, 다음 활동들을 포함합니다.
-
블로그 게시물 작성 및 공유: 지식과 경험을 나누고 소셜 미디어에 확산합니다.
-
짧은 콘텐츠 공유: TIL, 유용한 Gem/핵심/자원 등을 공유합니다.
-
오픈 소스 프로젝트 기여: 사용하는 프로젝트에 참여하여 실질적인 가치를 더합니다.
이러한 활동을 통해 학습과 네트워킹을 효과적으로 수행하며 개발자로서의 성장을 도모할 수 있습니다.