Antti Laaksonen의 Competitive Programmer's Handbook PDF, 해커뉴스에서 경쟁 프로그래밍 의미 논쟁 촉발
- Antti Laaksonen이 2018년 7월 3일 초안으로 공개한 Competitive Programmer's Handbook PDF임. 알고리즘 기초 기법과 그래프 알고리즘 두 부분으로 구성됨.
- 1부는 시간복잡도, 정렬, 자료구조, 완전탐색, 그리디, 동적계획법, 분할상환분석, 구간질의, 비트조작을 다룸.
- 2부는 그래프 기초와 순회, 최단경로(벨만-포드 등)를 다룸.
- Springer가 다듬은 정식판(DOI 10.1007/978-3-031-61794-2)과 함께 풀 문제집 cses.fi/problemset/가 공개됨.
- 해커뉴스에는 2017년 3월 이후 최소 네 차례 올라온 재게시물이며, 이번 논의는 코딩 인터뷰와 LLM 시대에 경쟁 프로그래밍이 무슨 의미인지로 번짐.
Hacker News opinions
leetcode 아직도 인터뷰에서 쓰이냐? 나는 계속 쓰이길 바람. 이 업계는 이제 좀 문을 걸어잠가야 함. 20년 동안 오픈소스 지지했던 내 입장에서 180도 바뀐 거임.
닫힌 소스로 가도 소용없음. 바이너리를 안전한 enclave로 암호화하지 않는 한 AI가 몇 시간 안에 리버싱해서 저작권만 살짝 바꾼 버전을 뱉어냄.
누가 정확히 문지기를 할 건데? 회사가 경쟁 코딩 점수 신경 쓴다는 얘기도 못 들어봤고, 해고가 leetcode 성적 때문에 결정된다는 얘기도 없음.
남한테 20년 배우고 나서 이제 문 닫자는 거? 일관성 없다고 뭐라 안 하겠지만 새로운 세계관 잘 되길 바람.
다른 직업군은 자기 일자리를 스스로 없애려 이렇게 열심히 안 함. 소프트웨어 만드는 사람들이 유독 그런 듯. 이제 문이 아예 없으면 무슨 일이 벌어지는지 보는 중임.
이 책 꽤 어려움. 가독성을 희생하고 간결함을 택했음. Zingaro의 Algorithmic Thinking이 훨씬 접근하기 쉬운데 밀도는 거의 비슷함.
약어를 항상 똑같이 쓰면 읽을 만함. 어차피 일회용 프로그램이고, 남이 유지보수하거나 5년 뒤 다시 열 일을 걱정할 필요 없음.
이 책 팬임. 알고리즘 레퍼런스로도 좋고 코딩 인터뷰 준비에도 좋음. 인터뷰를 한동안 안 봤지만 지난 5년간 크게 안 바뀌었을 거임.
나도 이 책으로 인터뷰 준비했는데 돌아보면 그 목표엔 별로 도움 안 됐음. 그래도 배운 건 많아서 다들 추천함. 잘 쓰였음.
codeforces, Rosalind, codewars, leetcode를 취미로 풀면서 LLM 과의존에서 벗어나는 중임. 잊고 있던 걸 다시 배우는 게 엄청 재밌음. 힘들게 생각해서 답에 도달하는 느낌이 그리웠음.
LLM 등장을 보면 대부분 사람은 그런 욕구 자체가 없었다는 게 드러남. 소수만 원래 그런 걸 원했음.
더 다듬어진 버전이 Springer에 있음. DOI 10.1007/978-3-031-61794-2. 같이 풀 문제집은 cses.fi/problemset/.
예전엔 경쟁 프로그래밍을 하면 프로그래머로서 나아졌음. 첫 구현 버그도 줄고 문제 해결력도 늘었는데, 이제 그건 다 끝난 얘기임. 코드를 안 읽는 시대면 그냥 취미임.
최근 몇 달 동안 본 기술 인터뷰는 전부 라이브 코딩이었음. 백엔드/풀스택 포지션인데도 하드 leetcode 문제가 나옴. 그래서 요즘 매주 몇 시간씩 알고리즘을 다시 풀고 있음.
LLM 이전의 코딩 경험이 LLM을 제대로 몰아가는 능력에 얼마나 기여하는지 다들 과소평가함. 5~10년 뒤에 순수 LLM 조종만 한 엔지니어가 뭘 하는지 보게 될 거임.
Java나 Python 버전 비슷한 책 있냐? LLM한테 다시 쓰게 하면 됨.
경쟁 프로그래밍은 뜨개질 경쟁이나 건축 경쟁 같은 개념임. 이런 데 집중하는 게 이 업계 인식을 망쳤음.