개발자의 입장에서 피가 되고 살이 될 것 같은 문구들을 간단히 우리 말로 옮겨 놓으려고 한다. 우리 존재 파이팅
* 오역 지적 환영합니다.
개발자가 알아야 할 기본적인 것들에는 무엇이 있을까요?
5.4k upvotes, Gavin Thorn, Wrote my first program on a Sinclair ZX-81, remember those?
- 테스트 되지 않은 코드는 작동하지 않는 코드와 같다.
- 소스 관리는 당신의 친구다. 꼭 사용하라.
- 단지 당신이 쓴 코드라고 해서 당신만의 전유물로 생각하지 말라.
다른 팀원이 당신의 코드를 수정한다고 해서 기분 나빠할 일은 아닌 것이다. - Don't reinvent the wheel, 라이브러리는 쓰라고 있는 것이다.
- 가장 빠른 코드는 실행되지 않는 코드이다. Look for early outs.
- 당신이 쓴 코드만이 훌륭한 코드는 아니다.
- 코드는 컴파일러에게 당신이 하고 싶은 일에 대한 지시를 줄 뿐이지, 실제 그 일을 하는 것은 아니다.
- 이해하기 어려운 코드는 유지 보수하기도 어렵다.
- 유지 보수하기 어려운 코드는 쓸모 없는 코드와 같다.
- "이 파일을 수정하는 동안 #$%@#@를 해야지" 라고 생각하는 것은 이상한 기능과 버그를 만들어내는 훌륭한 방법이다.
- 코드의 레이아웃이 깔끔해질 수록, 코드의 가독성은 좋아진다.
코드의 가독성이 좋아질 수록, 이해하기 쉽고 유지 보수하기 좋은 코드가 된다. - 코드 자체로 문서의 역할을 하진 않는다. 동료들을 위해 코멘트를 작성하라. 당신은 5년 뒤에 코멘트 없이 이해할 수 있을까?
- 당신이 남긴 구린 코드는 계속 당신을 따라다닐 것이다.
- 5분 걸릴 일은 사실 한나절 정도 걸릴 일이다.
- Magic numbers are bad.
- 상수는 자리를 차지하지 않고 컴파일될 때 바꿔치기 되는 것이다.
- 프로젝트 관리자는 항상 우리가 2배 빠르게, 그리고 2배의 일을 해내길 바란다.
- 버그가 있다면, 고객은 결국 알게 될 것이다.
- 코드 리뷰는 서로 비평하는 시간이 아니다.
- 코드의 양(quantity)은 문제 거리가 아니다. 코드의 질이 중요한 것이다. 어떤 멍청이라도 수 천 줄의 코드를 쓸 수 있지만, 그 코드가 제대로 기능한다고 볼 수는 없다.
- 구린 코드의 진정한 비용은 유지 보수 측면에서 나온다.
- 네 똥은 네가 치워라. 당신이 쓴 코드에서 버그를 해결하는 것은 당신 실력을 향상 시켜주는 일이다.
- 코드는 시간이 지나면 썩게 마련이다.
- 고객이 요청하지 않는 기능을 당신이 신경 쓰지 마라.
- 정말 중요한 사항이므로 다시 한 번 적는다. 테스트 되지 않은 코드는, 작동하지 않는 코드와 같다.
3.2k upvotes, Brian Knapp, Christian, author of Creative Genius. Email hi@brianknapp.me
- 구린 코드보다 구린 아키텍쳐가 더 심각한 문제다.
- 코딩보다는 생각하는 시간을 더 가져야 한다.
- 연봉을 더 받는 최고의 방법은, 취직하기 전에 연봉 협상을 잘 하는 것이다.
- 코딩 실력보다는 인간 관계 실력이 당신의 성공에 더 큰 영향을 미친다.
- 사용자들은 그들의 문제를 해결하기 위해 (개발자가 의도하지 않은) 별 이상한 방법을 찾아낸다.
- (버전 관리) 커밋을 더 자주 하라.
- (버전 관리) 언제나 feature 브랜치에서 작업하라.
- 기본적인 UNIX 활용 능력은 도움이 되지만, 필수적인 것은 아니다.
- Vim이나 Emacs는 당신을 새로운 세상으로 인도할 것이다.
- 모든 추정치는 거짓말이고, "좋은 추정치"는 새빨간 거짓말이다.
- 80%의 개발자는 맡은 바의 일을 하기에도 버거운 사람들이다.
- 기업은 돈을 벌기 위해 존재하는 것이지, 코드를 짜라고 존재하는 것이 아니다.
- 소프트웨어는 문제를 해결하라고 있는 것이지, 예술을 하라고 있는 것이 아니다.
- 애자일은 트랩이다. 당신은 벗어날 수 없지.
- 80%의 개발자는 자기 개발을 위해 어떠한 노력도 하지 않고, 회사 일만 한다.
- 상사들은 당신을 언제든 교체 가능한 자원이라고 생각한다.
- 직장은 직장일 뿐, 가족도 아니고 교회도 아니고 종교도 아니다.
- 기업 문화라는 것은 종종 당신의 연봉을 낮추기 위한 수단으로 쓰일 수 있다.
- 최고의 개발자는 항상 무언가 만들어내는 사람이다.
- 어떤 IDE를 쓰냐는 중요한 문제가 아니다.
- 어떤 언어를 쓰느냐 역시 중요한 문제가 아니다.
- 어떤 framework을 쓰느냐 역시 또한 중요한 문제가 아니다.
- 이러한 기술적인 논쟁은 초딩들이 로봇 장난감 가지고 싸우는 것과 똑같은 것이다.
- 스타트업 대박이 난다고 해서 당신이 부자가 되진 않을 것이다.
- QA 테스터들과 친하게 지내라. 그들이 당신의 삶의 질을 올려줄 것이다.
- 항상 당신의 회사가 어떻게 돈을 버는지 알아둬라. 그래야 당신이 누구에게서 월급을 받는 건지 알 수 있다.
- 당신이 software developer로서 일하는 것을 중요하게 생각한다면 tech company에서 일을 해야 한다.
- (비개발자) 사람들은 항상 새로운 기능을 추가하는 것을 기존 코드의 리팩토링보다 우선적으로 생각한다.
- Sometimes a train wreck has to happen for anyone to care about the brakes.
- You are not your job. 일에 먹히지 말라.
1.6k upvoted, Robin Thomas, Software Engineer at Works Applications (2016-present)
- 당신의 첫 코드는 절대 원하는 대로 작동하지 않을 거야. 이것을 받아들이고 앞으로 나아가면 돼.
- 절망과 좌절은 당신의 최고의 친구가 될 거야. 서로 친하게 지내도록.
- 인내심이 당신의 미덕이 아니라면...... 미덕으로 삼기를 바라! 앞으로 인내할 일이 많아질 거야.
- 디버깅하는 법을 빨리 배워 놔. 코딩보다 디버깅을 하는 시간이 더욱 늘어나게 될 거야. 기계가 대신 코딩해주지 않을 거라면 말이지.
- 탭 vs. 스페이스, Vim vs. Emacs, Windows vs. Linux, C++ vs. Java vs. Python, Atom vs. Eclipse vs. Sublime ... 이런 전쟁에서는 한 발 빠지도록 해.
- 동료들은 코딩을 도와주는 당신을 우러러 보고, 컴퓨터를 고치는 당신을 내려다 봐.
- 성급한 최적화는 피하자. Python을 사용한다고 해서 몇 microseconds 손해 볼 수 있는데, 사실 그거 별 일 아냐.
참조 링크
Quora 원본
https://www.quora.com/What-are-some-of-the-most-basic-things-every-programmer-should-know
반응형
'etc' 카테고리의 다른 글
더 나은 개발자가 되기 위한 습관들, Quora 번역 (1) | 2017.09.29 |
---|---|
Elasticsearch 초보의 mapping 관리 (2) | 2017.05.07 |
filebeat과 logstash에서 여러 다양한 input 다루기 (0) | 2017.01.11 |
무료 클라우드 저장소 리스트업 (3) | 2016.12.20 |
AWS EC2 리눅스 인스턴스에서의 django와 postgresql 설치와 연동 (0) | 2016.10.16 |