Medium - 5 Bad Habits of Absolutely Ineffective Programmers.
in Trend
Trend 파악을 Medium 기고문 요약 포스팅 - 개발자에게 나쁜 습관 5가지; 좋지 않은 개발자들은 멍청한게 아니라 안좋은 습관을 가진 것입니다.
Image Credits : unsplash.com Maria Teneva.
어떤 프로그래머들은 다른 사람들 보다 낫습니다. 사실 통계적으로 분류할 수 있죠; 소수의 사람은 매우 뛰어나고 몇몇은 우수하고 대부분은 적당하며 몇몇은 간신히 수준을 맞추고 소수는 끔찍하죠.
이 말은 좋은 프로그래머와 나쁜 프로그래머의 차이는 단순히 코딩 기술이 다가 아니라는 것입니다. 더욱 중요한 기본이 있죠. 나쁜 습관입니다. 그리고 나쁜 습관은 삶이나 직장에서나 바꾸기 어렵습니다.
따라서 우리 개발자들은 코딩하는 동안 나쁜 습관에 빠지기 쉽고 우리의 모든 잠재력을 이끌어내지 못하게 됩니다. 어떤 습관들은 작업 속도를 올려주는 반면 다른 습관들은(타이핑할 때 페퍼민트를 입에 가득 물고 하는 것처럼) 개인적인 삶이나 일에있어서 해를 끼칩니다.
그리고 우리는 우리의 나쁜 습관에 대해서 자각하지 못하고 다른 사람이 알려주길 바라죠. 삶처럼 프로그래밍은 견고하거나 빠른 규칙이 없습니다. 당신의 날개짓으로 쟁취해야 합니다.
그럼 당신이 당장 버려야할 습관들에 대해 알아봅시다.
My Code Is The best
“내가 산을 오를 때마다 자아라는 개가 나를 따라왔다.” - 니체
모든 팀에서 원하는 팀원은 겸손하고 간절하고 총명한 사람입니다. 겸손은 자아가 덜해서 다른 팀원에게 더욱 집중할 수 있는 것이죠. 간절함은 강한 직업윤리를 갖게하여 일을 확실히 마무리하고 기여할 수 있는 것을 수행하도록 합니다. 총명함은 지식이 뛰어난 것이 아닌 내적인 자아가 뛰어난 사람을 말합니다.
다른 사람의 코드를 비난하지 마세요, 다음에 주목받는 것은 당신의 코드가 될지도 모릅니다. 대신에 객관적이고 전문적인 관찰을 하도록 하세요, 그러나 평가는 하지마십시오. 항상 겸손하고 당신 주변의 사람에게 배우도록 하세요.
항상 기억하세요, 당신의 자아는 당신의 작업물에 방해가 됩니다. 당신이 대단하다고 믿는순간 당신의 창의력은 사라질 것입니다. 당신이 더 이상 공부할 것이 없다고 믿는 순간이 당신의 배움이 끝나는 날입니다.
I Can Fix This In a Jiffy
“최고가 되기 위한 지름길은 없다.” - Angela Duckworth
도전하세요. 인생에서 최대한 많은 것을 얻을 수 있도록 해보세요. 모난 곳을 칫솔로 문지르는데 모든 시간을 쏟고 있다면 포인트를 잘못 잡은 것입니다. 지름길을 택하는 것은 최종 결과를 바로잡는 것이 아닙니다.
빨리 가는 것은 매우 유혹적이고 다들 그렇게 하죠. 실제로 그런 선택이 도움이 될 때가 있지만 전체적으로 매우 매우 위험하기 때문에 피해야 합니다. 잘못된 지름길은 당신의 몇시간을 절약해 줄 것입니다. 그러나 평판의 하락과 함께 몇달간 고통을 유발할 것입니다.
제 조언을 진지하게 생각해주세요. 고생하면서 제가 얻은 교훈입니다. 세상에 공짜는 없고 지름길도 없습니다.
I Remember Everything. I Don’t Need To Document
“문서화는 성관계와 같다. 좋은 문서는 아주 아주 좋지만 나쁜 문서는 없는게 낫다” - Dick Brandon
문서화는 프로그래밍의 피마자유 입니다. 관리자는 그것이 프로그래머에게 좋다고 생각하고 프로그래머들은 싫어하죠.
그러나 좋은 개발자들은 문서화를 그들 삶의 일부로 만듭니다.
그들은 어떤 비즈니스라도 소프트웨어 개발팀은 항상 유동적이여야 한다는 것을 깨달았습니다. 프로그래머들은 직업을 바꿀 수도 있고 부서를 옮기거나 아예 은퇴할 수도 있죠. 최악의 경우는 질병이나 부상, 사망으로 팀원이 교체되는 것입니다.
코드도 나이가 듭니다. 개발자들은 1년만 지나면 그들이 짠 코드가 어떻게 동작했는지 잊어버립니다.
이런 경우 디자인 문서나 API 명세서, 매뉴얼 페이지, 코드 코멘트들이 제품 개발속도에 영향을 미칠 수 있습니다.
그리고 이러한 태도는 팀에 귀중한 자산을 만드는 것입니다. 당신이 의도적으로 문서를 만들지 않아도 당신은 대체할 수 없는 사람이 되는 것이 아닙니다. 당신은 결국 대체할 수 없는 책임을 팀에 떠맡기는 것입니다.
It Wasn’t Me!
“실수를 인정할 수 있는 용기를 가진 사람은 용서해줄만 하다” - Bruce Lee
아마 위의 문장은 정말 좋은 개발자로서 매우 중요한 특성 중에 하나일 것입니다.
우리는 항상 변명을 합니다… 우리가 정상적인 상황이었다면 실수를 절대 하지 않았을 것이라는 믿기 어려운 변명 말이죠.
형편없는 개발자는 제품을 올바르게 사용하지 못한다고 소비자를 비난합니다. 형편없는 개발자는 버그나 제품에 대한 주인의식이나 책임감이 없습니다. 그들은 정확히 누가 버그를 만들어냈고 그 책임을 저야할지 확실히 하고 싶어합니다. 그리고 그렇게 비난에 초점을 맞춰서 뭐가 나아지죠? 전혀 없습니다.
바람직한 태도는 그냥 이렇게 말하는 것입니다. “죄송합니다 우리가 이 이슈를 고쳐야겠네요, 제 잘못입니다.” 이런 태도는 당신의 평판을 올려주고 팀원들도 좋아할 것입니다.
Your “DONE” Is Not Done.
“시스템이 알고 있는 정보를 사용자가 입력하게 하지 마세요” - Rick Lemons
프로그래밍이 성관계라면 컴퓨터는 아마 불만족스러운게 한 두가지가 아닐 것입니다. 그냥 대충 들어가서 반쯤 일하다가 자러 갈 수 없습니다. 제가 고군분투하며 찾아낸 개념 중 하나는 바로 완료입니다.
완료가 뜻하는 것은 테스트되고 유저의 요구사항 하나하나를 모두 검증했다는 것입니다. 당신의 선에서 완료했다는게 정말 모든게 끝났다는 게 아닙니다.
좋은 개발자는 새로운 것을 배우려는 갈망이 있습니다. 그들은 아키텍쳐의 모든 조각들이 어떻게 어우러져 동작하고 어떤 상타에 있는지 이해하려고 노력합니다. 그들은 문제 해결을 위해 설계와 기능의 숨겨진 생각에 대해 질문합니다. 그들은 무엇이 좋은 ux를 만드는지 이해하고 있습니다.
반면에 형편없는 개발자는 그들이 좋아하는 기술에만 매달립니다. 단일 메소드나 프로세스가 이상적이라고 생각하고 UX는 전혀 고려하지 않습니다. 그들의 편의를 위해 불필요한 의존성을 프로젝트에 가져옵니다.
변변한 개발자는 중국 가게의 황소같이 행동합니다. 결국 시간과 노력과 평판이 파괴될 뿐이죠.
Last Thoughts
“한 줄로 요약하자면 태도입니다.”
좋은 태도를 갖는 것은 몇일, 몇년간의 경험보다도 중요합니다.
단순히 일을하는 것은 충분하지 않고 올바른 태도로 일을하고 올바른 기술을 갖는 것대신에 올바른 자세를 갖는 것이 더욱 중요합니다.
바람직하고 긍정적인 태도는 긍정적인 사고를 가지고 옵니다. 그리고 더욱 생산적인 사람으로 만들어 줄 것입니다. 이것은 당신이 프로젝트를 어떻게 잘 수행할 수 있는지 결정할 수 있도록 할 것이고 다른 사람도 당신을 알아챌 것입니다. 좋은 태도는 전염성이 있습니다. 그것은 작업환경에 영향을 줍니다.
Summary
- 좋은 개발자가 되기 위해서 버려야할 나쁜 습관
- 향상심을 가지고 꾸준히 배우고 겸손하고 긍정적인 자세로 작업을 해야 한다.
- 개발은 혼자 하는 것이 아니기 때문에 문서화가 중요하다.
- 탐구심을 가지고 좋은 UX를 제공하기 위해 해결책을 생각해야 한다.