# 내가 아는 최고의 개발자들이 공통적으로 가진 특성

> Clean Markdown view of GeekNews topic #20244. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20244](https://news.hada.io/topic?id=20244)
- GeekNews Markdown: [https://news.hada.io/topic/20244.md](https://news.hada.io/topic/20244.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-10T09:44:10+09:00
- Updated: 2025-04-10T09:44:10+09:00
- Original source: [endler.dev](https://endler.dev/2025/best-programmers/)
- Points: 150
- Comments: 19

## Summary

최고의 개발자들은 **공식 문서**를 먼저 읽고, **도구를 깊이 이해**하며, **에러 메시지를 꼼꼼히 분석**하는 습관을 가집니다. 문제를 잘게 나누고, 코드를 두려움 없이 다루며, **항상 배우고 협력하는 태도**를 유지합니다. **글쓰기**와 **명성 쌓기**를 통해 생각을 공유하며, 인내심과 단순함을 바탕으로 문제를 논리적으로 해결합니다. “**모르겠습니다**”를 인정하고 **추측 대신 근거를 찾는 태도**가 성장의 핵심입니다.

## Topic Body

- 저자는 다양한 개발자를 만나면서, 최고의 개발자들이 가진 공통된 특성에 대해 고민하게 됨  
- 이 글은 초보 개발자나 성장하고 싶은 사람들에게 영감을 주기 위해 작성된 관찰 기록임  
  
### 레퍼런스 문서를 먼저 읽을 것  
  
- Stack Overflow나 LLM을 먼저 찾기보다는 공식 문서를 먼저 읽는 습관을 들이는 것이 중요함  
- Apache, Python, TOML 등의 공식 문서는 실제로 꽤 잘 작성되어 있음  
- 소스에서 직접 배우는 습관은 장기적으로 큰 도움이 됨  
  
### 도구를 깊이 이해할 것  
  
- 도구를 ‘사용’할 줄 아는 것과, 그것을 ‘이해’하는 것은 다른 수준임  
- 도구를 잘 아는 사람은 설정 하나하나를 설명할 수 있음  
- 잘 이해하려면 도구의:  
  - 역사 (왜 만들어졌는가)  
  - 현재 (누가 관리하는가)  
  - 한계 (언제 안 맞는가)  
  - 생태계 (주변 도구, 라이브러리 등)  
  를 모두 파악하고 있어야 함  
- Kafka 등을 주력으로 쓴다면, Reddit에서 본 수준 이상으로 알고 있어야 함  
  
### 에러 메시지를 꼼꼼히 읽을 것  
  
- 에러 메시지를 곰곰이 들여다보면 힌트가 담겨 있음  
- 최고의 개발자는 적은 정보만 보고도 문제를 추론함  
- 문제의 80%는 에러 메시지만 잘 봐도 해결 가능함  
  
### 문제를 잘게 나눌 줄 알 것  
  
- 막히는 건 누구나 겪는 일이고, 잘게 나눌 수 있어야 풀 수 있음  
- 경험이 많거나, 문제 해결 능력이 뛰어난 사람은 쉽게 나눔  
- 개발자의 핵심 업무는 결국 큰 문제를 작은 문제로 나누는 작업임  
- 단순한 문제들을 차근차근 풀면 전체 문제도 해결됨  
  
### 두려움 없이 코드를 다룰 것  
  
- 최고의 개발자들은 코드 읽기를 두려워하지 않음  
- “그건 내 영역이 아니야” 같은 말 없이 그냥 시도하고 배움  
- 처음 다룬 코드도 금세 팀 내 전문가가 되는 경우가 많음  
  
### 항상 다른 사람을 도울 것  
  
- 바쁜 와중에도 도와주는 개발자는 좋은 팀원이자 훌륭한 전문가임  
- 호기심과 협력적인 태도는 좋은 개발자의 필수 자질임  
  
### 글을 쓸 것  
  
- 뛰어난 개발자는 말도 잘하고, 생각을 글로 풀 줄 앎  
- 블로그, 발표, 오픈소스 활동 등으로 생각을 나눔  
- 글쓰기 능력은 사고의 구조와 직접적으로 연결되어 있음  
- 잘 쓰는 사람의 코드는 구조적이고, 명확하고, 때론 재치있음  
  
### 배움을 멈추지 말 것  
  
- 나이와 상관없이 계속 배우는 사람이 진짜 뛰어난 개발자임  
- 새로운 도구나 언어를 시도하는 것에 거리낌이 없음  
- 최신 기술을 맹목적으로 따르지 않고, 장단점을 스스로 분석할 줄 앎  
- 젊은 나이에도 고정관념에 빠지면 성장이 멈춤  
  
### 지위에 연연하지 말 것  
  
- 좋은 개발자는 직책과 상관없이 누구에게나 배움을 구함  
- 신입에게도 배울 게 있다는 태도를 가짐  
- 새로운 시각을 가진 사람들과의 대화에서 영감을 받음  
  
### 명성을 쌓을 것  
  
- 실력도 중요하지만, 실력을 **알려지는 것**도 중요함  
- 명성은 영향력을 넓히는 수단임  
- 다음과 같은 방법으로 명성을 쌓을 수 있음:  
  - 중요한 서비스를 직접 만들거나 배포함  
  - 잘 알려진 도구를 개발함  
  - 유명한 오픈소스에 기여함  
  - 자주 인용되는 책을 씀  
- 명성은 하루아침에 쌓이지 않으며, 꾸준한 노력과 시간이 필요함  
  
### 인내심을 가질 것  
  
- 사람과 컴퓨터 모두에게 인내심이 필요함  
- 주변 사람은 바보가 아니라 정보가 부족한 것일 뿐임  
- 인내심 없으면 쉽게 불만이 쌓이고 협업이 어려워짐  
- 어려운 문제를 해결하려면 집중력과 끈기가 필요함  
  
### 컴퓨터를 탓하지 말 것  
  
- 최고의 개발자는 절대 시스템이나 외부 요인을 탓하지 않음  
- 겉보기엔 무작위로 보이는 문제도 논리적인 이유가 있음  
- 원인을 찾기 위해 끝까지 파고드는 태도가 중요함  
  
### “모르겠습니다”를 말할 줄 알 것  
  
- 인터뷰에서 일부러 “모르겠습니다”를 말하는 순간을 기다린 적 있음  
- 중요한 건 답이 아니라 태도임  
- 최고의 후보는 모른다고 인정하고, 추론을 시작함  
- 모른다고 인정하는 태도는 학습 가능성을 보여줌  
- 거짓말하거나 아는 척하는 사람은 팀에 부정적임  
  
### 추측하지 말 것  
  
- PEP 20의 철학처럼, 모호할 땐 절대 추측하지 말 것  
- 추측의 위험:  
  - 틀리면 버그  
  - 맞아도 잘못된 전제를 믿게 되어 나중에 문제 유발  
- 확신이 없으면:  
  - 질문하고  
  - 문서 읽고  
  - 디버깅 도구를 쓰고  
  - 근거를 찾아야 함  
  
### 단순하게 유지할 것  
  
- 똑똑한 사람은 똑똑한 코드를, 훌륭한 사람은 단순한 코드를 씀  
- 단순한 코드가 유지보수에 훨씬 유리함  
- 복잡함이 필요한 상황과 아닌 상황을 구별할 줄 알아야 진짜 실력임  
  
### 마무리 생각  
  
- 이 글은 체크리스트가 아니며, 훌륭한 엔지니어링은 경쟁이 아님  
- 단, 어려운 작업을 건너뛸 수 있다고 스스로를 속이지 말 것   
- 훌륭한 개발자가 되는 길에 지름길은 없음

## Comments



### Comment 37771

- Author: dduha
- Created: 2025-04-24T22:59:58+09:00
- Points: 1

좋은 글 감사합니다.!!

### Comment 37251

- Author: openman
- Created: 2025-04-17T06:49:37+09:00
- Points: 1

이 글은 체크리스트가 아니라는 말에 위안을 얻고 지름길은 없다는 말에 용기를 얻습니다.

### Comment 37080

- Author: geekbini
- Created: 2025-04-13T01:07:43+09:00
- Points: 1

회사의 프로젝트를 이해한다면,  
어느 분야의 시니어 개발자가 되더라도   
그 분야가 펌웨어든 앱이든 웹이든,  
웹, 앱 또는 펌웨어 디버그 로그를 보면서   
문제가 어떻게 발생했는지 디버깅이 가능한 수준이 되는 것 같습니다.

### Comment 37031

- Author: softer
- Created: 2025-04-11T11:06:42+09:00
- Points: 1

제가 면접 때 추측했던 행동이 기억 나네요

### Comment 37017

- Author: wogns3623
- Created: 2025-04-11T00:04:12+09:00
- Points: 3

개인적으로는 "내가 뭘 만드는건지 항상 생각할 것" 도 중요하게 여기고 있습니다.

### Comment 37082

- Author: wogns3623
- Created: 2025-04-13T06:07:52+09:00
- Points: 1
- Parent comment: 37017
- Depth: 1

Critical Thinking이라는 좋은 용어가 있었네요

### Comment 37014

- Author: lighteach
- Created: 2025-04-10T19:55:39+09:00
- Points: 1

정말 많은 도움이 되었습니다. 좋은 글 감사드립니다

### Comment 37008

- Author: kylian
- Created: 2025-04-10T17:05:10+09:00
- Points: 2

그럼 공식문서를 LLM한테 읽어달라고 하면 되겠군!

### Comment 37003

- Author: dudlf016
- Created: 2025-04-10T15:26:17+09:00
- Points: 1

RTFM: 공식 문서 좀 읽으세요.

### Comment 36991

- Author: kandk
- Created: 2025-04-10T11:58:40+09:00
- Points: 1

체크리스트가 아니라고 하지만 저의 체크리스트로 삼아야겠네요.

### Comment 36987

- Author: haejuk99
- Created: 2025-04-10T11:17:14+09:00
- Points: 2

공식 문서를 꼭 봐야 한다는 것에 매우 공감합니다.

### Comment 36986

- Author: aer0700
- Created: 2025-04-10T10:50:08+09:00
- Points: 4

코딩 처음 가르칠 때, 이 사람이 에러 메시지를 꼼꼼히 읽을 수 있는가 없는가에서 처음으로 프로그래머로서 소질이 드러나는 것 같습니다.

### Comment 37344

- Author: postinsight
- Created: 2025-04-19T20:26:32+09:00
- Points: 1
- Parent comment: 36986
- Depth: 1

.... 에러는 버그는 항상존재한다고 인정하는 기본적인 인식이 없는인간들이 사기꾼인거죠

### Comment 38184

- Author: roxie
- Created: 2025-05-05T16:39:38+09:00
- Points: 1
- Parent comment: 37344
- Depth: 2

문장이 너무 어려워요..

### Comment 37345

- Author: postinsight
- Created: 2025-04-19T20:27:10+09:00
- Points: 1
- Parent comment: 37344
- Depth: 2

웹에서는요.

### Comment 36985

- Author: coremaker
- Created: 2025-04-10T10:44:39+09:00
- Points: 2

전부는 아니지만 대부분은 공감이 가는 항목들이네요.

### Comment 36976

- Author: neo
- Created: 2025-04-10T09:44:10+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43629307) 
- 추측하지 않는 것이 사업에서 가장 중요함
  - 반도체 제조에서 문제 해결 능력을 개발했으며, 잘못된 가정의 비용이 매우 큼
  - 항상 근본 원인을 100% 파악해야 함
  - 비정상적인 기술 스택을 피하는 이유는 근본 원인 분석을 방해하기 때문임
  - 정확하게 문제를 해결하는 것이 명성을 쌓는 가장 빠른 방법임

- 새로운 것을 다룰 때, 참조 자료를 깊이 읽기 전에 약간의 추측을 즐김
  - 새로운 언어나 API를 배울 때, 튜토리얼을 통해 추측하고 나서 참조 자료를 읽음
  - Intellisense 같은 기능을 지원하는 언어와 IDE를 선호함

- Stack Overflow나 LLM에 의존하지 않고 직접 소스를 참조하는 것이 좋음
  - 수학 책처럼 처음엔 어렵지만, 시간이 지나면서 이해할 수 있게 됨
  - Rust crates의 docs.rs, Haskell의 hoogle, C++ reference 등은 훌륭한 참조 자료임

- 최고의 개발자는 모든 계층의 사람들과 소통하며 배움
  - 새로운 사람들은 신선한 시각을 제공하며, 과거의 장애물이 사라졌을 수도 있음
  - 규칙의 존재 이유를 주기적으로 확인해야 함

- Stack Overflow를 잘 활용하면 많은 도움이 됨
  - LLM은 실시간 이벤트 분석이나 자동화에 유용하지만, 프로그래머를 대체할 수 없음
  - LLM을 통해 주제를 이해하고 나면 공식 문서를 참조하는 것이 좋음

- 최고의 프로그래머는 CS 배경이 없어도 뛰어난 성과를 낼 수 있음
  - 비전공자가 프로그래밍을 배우고 빠르게 성장한 사례가 있음

- 프로그래밍 외에도 비즈니스 도메인과의 소통이 중요함
  - 프로그래밍 외의 다양한 요소를 고려해야 함

- 오류 메시지를 읽고 이해하는 것이 문제 해결에 큰 도움이 됨
  - `asdf`를 사용하여 Python, Go, NodeJS 버전을 관리할 때, 오류 메시지를 통해 문제를 해결할 수 있었음

### Comment 37346

- Author: postinsight
- Created: 2025-04-19T20:30:39+09:00
- Points: 1
- Parent comment: 36976
- Depth: 1

asdf가 뭔가요? 경고를봐야합니다.

### Comment 37343

- Author: postinsight
- Created: 2025-04-19T20:24:19+09:00
- Points: -1

글쎄요 절대최고가 돼지않겠다는 자세가 나은거같은데요. 글쓴다느니...돕는다느니... 하느인간치고...
