GN⁺: 다른 조언 에세이를 모두 읽은 신입 소프트웨어 개발자들을 위한 조언
(buttondown.email)초급 소프트웨어 개발자를 위한 조언
- 사람들이 나를 듣는 이유는 프로그래밍 실력 때문이 아니라 글쓰기 실력 때문임. 다른 사람들의 조언도 마찬가지로, 그들의 글쓰기 실력 때문에 듣게 됨.
- 소프트웨어에 대한 과학적 연구는 매우 적고 대부분 결론이 불확실함. "객관적 진리"에 대한 주장을 조금 의심하면서 자신의 상황에 어떻게 적용할지 신중히 생각해야 함.
- 잘못된 것을 배우거나 속는 것에 대해 너무 걱정하지 말고, 좋아하는 아이디어가 있다면 시도해보기를 권장함. 동료들에게 해를 끼치지 않는 한, 결국에는 잘 풀릴 것임.
디버깅: 9가지 규칙
- "디버깅: 9가지 규칙"이라는 책을 읽을 것을 권장함. 도서관에서 빌리거나 회사에 구매를 요청해도 좋음. 초보 프로그래머를 위한 다른 책들이 거의 다루지 않는 중요한 기술을 쉽게 가르쳐줌.
올바른 방법의 발견
- 언젠가는 프로그래밍의 올바른 방법을 발견하게 될 것이고, 모든 사람이 그 방법을 사용하면 분야가 훨씬 나아질 것이라고 확신하게 될 것임.
- 올바른 방법에 휩쓸리는 것을 막으라고 말하지는 않지만, 그 방법에 휩쓸리고 있다는 사실을 인식하고, 자신의 정체성을 올바른 방법의 사람으로 만들지 말 것을 조언함.
- 결국 프로그래밍은 어떤 올바른 방법을 사용하든지 간에 답답하고 지저분한 작업이며, 올바른 방법 없이도 훌륭한 소프트웨어를 만들 수 있음을 배우게 될 것임.
최선의 관행 뒤의 이야기
- 최선의 관행 뒤에는 항상 공포 이야기가 있음. 최선의 관행을 이해하지 못한다면, 그것을 영감으로 한 공포 이야기를 찾아보면 도움이 될 것임.
- 많은 최선의 관행과 관례는 역사적, 문화적 요인의 혼합으로 발생함. 더 이상 관련이 없는 문제들을 해결하기 위해 멘토들이 사용했던 방법을 따르는 경우가 많음.
다양한 프로그래밍 시도
- 경력 초기에 가능하다면 다양한 종류의 프로그래밍을 시도해볼 것을 권장함. 이는 직업을 바꾸는 것을 의미하지 않으며, 대부분의 회사에서 동시에 여러 종류의 프로그래밍을 하고 있음.
- 다양한 프로그래밍을 시도함으로써 배우는 것뿐만 아니라, 정말로 좋아하는 소프트웨어 작업 유형을 찾을 확률을 높일 수 있음.
소프트웨어 분야의 변화
- 소프트웨어 분야는 계속 변화하고 있으며, 프레임워크 트레드밀에 휩쓸리지 말고 기본 기술을 배우는 데 집중할 것을 조언함.
- 소프트웨어에서 정보가 빠르게 전파되는 구조적 이유가 있음. 인터넷, 오픈 소스, 컨퍼런스 등으로 인해 아이디어를 공유하는 데 장벽이 낮음.
- 많은 기술들이 소수의 사용자만을 가지고 있지만, 그것들에 대해 듣는 방식 때문에 널리 채택될 것처럼 보일 수 있음. 이것이 보수적인 접근이 의미 있는 이유임.
GN⁺의 의견
- 이 글에서 가장 중요한 것은 개발자로서 자신만의 경험을 통해 배우고 성장하는 과정임. 다른 사람들의 조언은 참고할 수 있지만, 결국 자신의 상황에 맞게 적용하는 것이 중요함.
- 프로그래밍의 '올바른 방법'을 찾는 것은 개인적인 여정이며, 이를 통해 다양한 접근 방식을 배우고 결합하는 능력을 키울 수 있음.
- 기술의 변화를 이해하고, 새로운 트렌드에 대해 합리적인 접근 방식을 취하는 것은 지속 가능한 개발자 경력을 위해 필수적임.
Hacker News 의견
-
첫 번째 댓글 요약:
- 취미 프로젝트에서 두 개발자와 협업 경험을 공유함.
- 프로젝트는 작은 규모임에도 불구하고 과도한 엔지니어링 요구 사항에 대한 불만을 표현함.
- "올바른 방법"을 고수하는 개발자들에 대한 비판적인 시각을 제시함.
- 본인도 과거에 비슷한 경험이 있었으나, 실제로 중요한 것은 작동하는 코드라는 것을 깨달았음을 언급함.
-
두 번째 댓글 요약:
- 15년 경력의 소프트웨어 전문가가 자신의 경험을 공유함.
- 초기 불교 교육에서 배운 교훈이 소프트웨어 개발에도 유용하다고 느낌.
- 개발자로서의 경험을 통해 얻은 교훈을 설명하며, 올바른 방법에만 집착하지 않는 중요성을 강조함.
-
세 번째 댓글 요약:
- TDD(Test-Driven Development)와 같은 기술을 배우는 것이 항상 직접 사용되지는 않더라도 도움이 된다고 주장함.
- 다양한 기술과 언어를 배움으로써 더 나은 코드를 작성하는 방법을 배울 수 있다고 강조함.
-
네 번째 댓글 요약:
- "올바른 방법"에 대한 집착이 개발자의 성장을 방해할 수 있다고 지적함.
- 개발자들이 지식을 확장하는 데 필요한 주의력이 부족하거나 현재 위치에 너무 편안함을 느끼는 것이 원인일 수 있다고 추측함.
-
다섯 번째 댓글 요약:
- 코드, 기억해야 할 정보, 프로젝트 세부 사항 등 모든 형태의 상태(state)를 최소화할 것을 조언함.
- 상태를 최소화하는 것이 문제 해결에 도움이 된다고 주장함.
-
여섯 번째 댓글 요약:
- 좋은 글쓰기 능력이 전문 지식보다 독자들에게 영향을 더 많이 줄 수 있다고 언급함.
- 다양한 업무 유형을 시도하고, 회사 내 다른 직무에 대해 배우는 것이 중요하다고 조언함.
-
일곱 번째 댓글 요약:
- 유튜브와 같은 비디오 공유 서비스에서 배운 내용에 대해 회의적인 태도를 가져야 한다고 강조함.
- 소프트웨어 개발이 문제를 해결하기 위한 것임을 상기시키며, 다른 사람들과 대화를 통해 소프트웨어가 해결해야 할 문제를 더 잘 이해할 수 있다고 조언함.
-
여덟 번째 댓글 요약:
- 디버깅에 관한 책을 추천하며, 이 책이 다양한 기술적 문제를 해결하는 데 도움이 된다고 언급함.
- 책이 쉽고 흥미롭게 읽히며, 유용한 기술을 제공한다고 평가함.
-
아홉 번째 댓글 요약:
- 코드 작성 자체가 목표가 아니라 문제를 해결하는 수단임을 강조함.
- 코드가 해결해야 할 문제에 집중해야 하며, 그렇지 않을 경우 코드 작성을 중단하고 문제를 명확히 해야 한다고 조언함.
-
열 번째 댓글 요약:
- 좋은 글쓰기 능력이 다른 사람들과의 소통에 도움이 되며, 소프트웨어 개발자에게 중요하다고 언급함.
- 초보 개발자들에게 자신의 경험과 생각을 글로 작성할 것을 권장하며, 이것이 나중에 유용한 기술이 될 것이라고 조언함.