Leetcode 집착에 대한 나의 뜨거운 의견
Source: Dev.to
Introduction
LeetCode는 기술 면접을 준비하는 많은 개발자들에게 지배적인 초점이 되었습니다. 알고리즘 문제를 푸는 것이 특정 기술을 연마하는 데 도움이 될 수 있지만, 수천 개의 문제를 파고드는 현재 문화는 그 진정한 가치에 대한 우려를 낳고 있습니다.
The Problem with the LeetCode Obsession
- Efficiency: 최신 AI는 많은 LeetCode 문제를 몇 분 안에 풀 수 있지만, 우리는 여전히 반복적인 패턴에 수많은 시간을 소비합니다.
- Retention: 대부분의 사람들은 몇 달 전에 풀었던 문제의 정확한 해법을 기억하지 못합니다. 연습은 진정한 이해보다는 암기에 가까워집니다.
- Opportunity Cost: 끝없는 면접 퍼즐에 쓰는 시간을 운영 체제 학습, AI 탐구, 오픈소스 기여, 자동화 구축, 실제 애플리케이션 스케일링 등 더 깊고 실용적인 지식을 제공하는 분야에 투자할 수 있습니다.
What Matters More Than Solving Hundreds of Problems
Real‑World Skills
- Linux, 시스템 내부 구조, 오케스트레이션 도구 학습.
- 오픈소스 프로젝트에 기여하고 유용한 유틸리티 구축.
- 프로덕션 급 애플리케이션을 설계, 배포, 스케일링.
Competitive Programming (When It’s Fun)
Codeforces, CodeChef, AtCoder와 같은 플랫폼은 도전적인 대회를 제공하며, 경쟁을 즐기는 사람들에게 보람을 줍니다. 그러나 “기업이 요구한다”는 이유만으로 이를 추구하면 번아웃으로 이어질 수 있습니다.
Learning Data Structures and Algorithms (DSA) vs. Grinding
- Fundamentals are essential: 트리, 그래프, 재귀, 해시맵, 연결 리스트에 대한 이해는 가치가 있으며 컴퓨터 과학의 기초입니다.
- Depth over breadth: 이러한 개념을 파악하기 위해 잘 선택된 몇 개의 문제를 푸는 것이 유익합니다.
- Diminishing returns: 수백·수천 개의 유사한 문제를 푸는 것은 초기 학습 단계 이후에는 거의 도움이 되지 않으며, 종종 기계적인 암기에 그칩니다.
The Cultural Issue
현재 사고방식은 “상위 100개 면접 질문 풀기”를 엔지니어링 능력의 궁극적인 기준으로 여깁니다. 이러한 인식은
- 퍼즐 풀이를 실제 시스템 지식보다 우선시한다.
- 호기심 기반 학습보다 체크리스트식 사고를 조장한다.
- 면접 준비를 기술 개발이 아닌 배지 수집 활동으로 만든다.
Personal Reflection
나는 DSA 시트를 따라 수년간 모든 문제를 풀고, 노트를 정리하고, 나중에 다시 검토했습니다. 결국 홈랩을 구축하고, Linux 설정을 커스터마이징하며, 오픈소스에 기여하는 동료들을 만나게 되었고, 그들의 작업이 또 다른 LeetCode 문제 묶음보다 훨씬 흥미로웠습니다. 돌아보니 실제 프로젝트에 집중했어야 내 시간 활용이 더 좋았다는 것을 깨달았습니다.
Takeaway
당신에게는 두 가지 길이 있습니다:
- 전통적인 경로를 따르기 – 수많은 면접 퍼즐을 풀고 “체크박스”를 완료한 개발자 무리와 합류하기.
- 스스로에게 흥미로운 것을 추구하기 – 시스템을 구축하고, 새로운 기술을 배우며, 그 과정에서 즐거움을 찾기.
즐거움과 지속적인 성장을 가져다줄 길을 선택하세요. 즐거운 시간 보내세요.