불평 좀 늘어놓아 보겠습니다

✍🏼 작성일 2016년 07월 03일   
❗️ 참고: 이 글이 작성된 지 이미 일이 지났습니다. 시의성에 유의하세요

서문

다음 불평은 논리성이 없으며, 생각나는 대로 말한 것입니다.

회사에서 학습하기

회사는 새로운 기술을 열심히 배우는 것을 환영하지만, 전제 조건은 먼저 자신의 업무를 잘 처리하는 것입니다. 회사가 당신에게 돈을 주는 것은 일을 하라고 주는 것이지, 배우라고 주는 것이 아닙니다. 배우고 싶으면 집에서 배우세요. 어떤 인턴/신입 사원들은 회사가 주는 월급이 낮다고 불평하는데, 이는 회사/동료들이 당신의 미숙한 코드에 대해 대가를 치르고 있기 때문입니다. 간단한 일을 맡겨도 반나절이 걸리는데, 내가 리더였으면 벌써 해고했을 겁니다. 집에서 제대로 배우고 오라고요. 짜증나.

손만 내미는 사람, 엔지니어 마인드 부족

문제가 생기면 첫 반응이 다른 사람에게 묻는 것입니다. 구글/스택오버플로우/깃허브/문서를 찾아보지도 않고요. 제발, 당신은 엔지니어입니다. 엔지니어라는 타이틀에 걸맞게 행동하세요. 엔지니어란 무엇인가요? 현실 문제를 해결하는 사람입니다. 문제를 회피하거나 다른 사람에게 미루는 사람이 아닙니다. 스티브 잡스의 말을 빌리자면, 엔지니어의 임무는 fix it, that's your job입니다. 짜증나.

쓸데없는 말이 많음

리더가 당신에게 일을 맡기는 목적은 결과를 내달라는 것입니다. 그 결과를 바탕으로 리더가 결정을 내리려는 것이지, 당신이 다양한 문제를 리더에게 말한 후 리더가 직접 분석하도록 하는 것이 아닙니다. 예를 들어 리더가 명확히 지시합니다: “이 호환성/구현 난이도를 테스트해보고 퇴근 전에 결과를 알려줘.” 퇴근 시간이 가까워져서 연구 결과를 보고할 때, 리더가 듣고 싶어 하는 것은 간단한 몇 마디입니다: 可以做, 또는 给定时间坐不了, 难点是 xxx. 하지만 어떤 사람들의 대답은 이렇습니다: “아이고, 이 문제는 좀 복잡하네요. 인터넷에 보니 이렇게 하면 된다는데, 제가 테스트해보니 잘 안 되더라고요. 근데 또 다른 아이디어가 있는데, 블라블라… 그래서 테스트해봤더니 실제로는 되는데 효과가 완벽하지 않아요. 좀 더 개선이 필요할 것 같아요. 그룹 채팅에서 누가 다른 아이디어를 알려줬는데, 저도 가능할 것 같아요. 하지만 아직 테스트해보진 못했어요.” 그리고 또 한참 블라블라… 내가 리더였으면 당신을 해고했을 거야, 알겠어? 짜증나.

반복 작업

간단한 반복 작업이지만 필요한 지식이 자신의 범위를 벗어나는 경우가 있습니다. 예를 들어, 새 프로젝트를 시작할 때마다 일부 설정 파일이나 리소스 파일을 수동으로 복사해야 합니다. 어떤 사람들은 이걸 보고, “어차피 번거롭지 않으니까” 계속 복사해댑니다. node cli를 작성할 수 없나요? cli를 못 배우겠다면 기존의 gulp/node/ruby/shell로 간단히 구현할 수 없나요? 어렵나요? 기계적인 노동, 프로그래머 맞아요? 짜증나.

##知其然不知其所以然 (알긴 아는데 왜 그런지는 모름)

어떤 사람들은 다양한 플러그인을 배우는 것을 열심히 하고 자랑스러워합니다. 오늘은 이 플러그인을 배웠다며 포럼에 자랑합니다: “이 플러그인 정말 좋네요. 너희들은 아직 xxx를 쓰고 있다고?” 내일은 또 다른 API를 배우고 그룹 채팅에서 자랑합니다: “이 API 정말 좋아요. xxx의 API 디자인은 이에 비하면 쓰레기예요.” 하지만 평소에는 “JavaScript 함수 매개변수는 값으로 전달되나요, 참조로 전달되나요?”, “return 문이 중첩 함수에서 한 단계만 반환하나요, 아니면 가장 바깥 함수로 바로 반환하나요?”, “if 문은 break/return으로 빠져나갈 수 있나요?” 같은 기본 개념 질문을 합니다. API를 쓸 줄 안다고 대단한가요? 문서를 읽을 줄 안다면, 바보도 쓸 수 있어요. 기본기부터 제대로 배울 수 없나요? 짜증나.

바보

어떤 사람들은 반쯤 완성된 작품을 만들고는 세상에 알리려고 합니다. 그리고 다른 사람들에게 "求"을 요청합니다. 모르는 사람들이 자신을 대단해 보이게 하려는 거죠. 짜증나.

무분별한 바퀴 재발명

싸움을 두려워하지 않고 말하겠습니다. eleme를 지목합니다. 잘 작동하는 webpack을 쓰지 않고 cooking이라는 번들러를 만들어서 다른 사람들이 당신의 도구를 쓰게 하려는 거죠. 당신이 대단해 보이려는 거예요? 학습 비용을 증가시킨다는 거 모르나요? 짜증나.

회사에 대한 막말

“우리 회사는 좀 xxx한 것 같아. 게다가 xxx하기도 하고. 저기 xxx 회사 보면, 그들은 정말 xxx해.” 사적으로 이야기하는 건 그렇다 치지만, 엘리베이터에서 말해야 합니까? 엘리베이터에 아무도 없을 때 말하면 그냥 그러려니 하는데, 엘리베이터에 사람이 많을 때 말하는 거예요. 당신이 똑똑해 보이려는 거예요? 회사 문제를 발견하면 리더에게 이메일을 보내고 관리층에 참조를 넣을 수 없나요? 짜증나.

하찮은 사람들끼리 싸우기

속담에 말하길, 고수와 겨루어야 실력이 빨리 는다고 합니다. 하지만 어떤 사람들은 문제가 생기면 다른 사람에게 물어보고, 그 사람도 잘 모르면 그냥 어물쩍 얘기를 주고받다가 겉보기엔 맞는 것 같은 결론을 내립니다. 그리고 다음 문제가 생기면 또 같은 사람에게 묻죠. 제 생각에 기술 문제를 논의할 때 몇 마디만 나눠도 상대방의 기술 수준을 대략 판단할 수 있습니다. 상대방이 기술적으로 약하다는 걸 알았다면 그 사람에게 계속 물어볼 필요 없이, 다른 고수에게 조언을 구하면 되지 않을까요? 둘이서 주고받는 논의가 과연 의미가 있을까요? 고수의 한 마디 결론적인 요약을 이길 수 있을까요? 시간만 낭비하고 전혀 의미가 없습니다. 문제가 생겼을 때 스스로 해결하지 못하면, 고수에게 자신의 해결 시도가 실패했다고 설명하고 조언을 구하면 됩니다. 효율적일 뿐만 아니라 권위 있고 결론적인 요약을 얻을 수 있어 기억에도 더 오래 남죠. 마치 학교 다닐 때 독학과 선생님 가르침의 차이와 같습니다. 독학으로 스스로 정리한 지식은 늘 불확실해서 다른 문제를 풀어보며 검증해야 하지만, 선생님이 알려준 지식은 바로 사용할 수 있습니다. 실제로 지식을 적용하다 문제가 생기면, 독학으로 얻은 지식일 경우 먼저 자신의 정리가 틀렸을지 의심하게 되지만, 선생님이 알려준 지식이라면 지식 자체보다는 자신의 적용 방법을 먼저 의심하게 됩니다. 이른바 "하루 종일 생각해도 단숨에 배우는 것만 못하다"는 말과 같습니다. 발돋움해 봐야 높은 곳에서 내려다보는 넓은 시야를 이길 수 없죠. 실력 없는 사람들끼리 서로 쪼아대는 건 정말 귀찮습니다.

비전문성

일할 때 전문적이지 못하다는 건 다른 사람들이 당신과 함께 일하기 위해 더 많은 노력을 기울여야 한다는 뜻입니다. 당신의 비전문성으로 인해 모두의 시간이 낭비되고 기분도 상하게 됩니다. 물론 모두가 미지에서 출발하는 건 알지만, 좀 전철을 밟지 말거나 다른 사람의 작업 방식을 배워서 같은 저급한 실수를 반복하지 말아주세요. 정말 짜증납니다.

Ps: 위 내용은 제가 일상에서 마주친 사람과 사건에 대한 것이며 특정 인물을 지칭하지 않습니다. 본문을 보고 불편함을 느끼신다면 메일을 보내주시고, 제 기분에 따라 적절히 대응하겠습니다.

PPs: 만약 위 내용이 모두 자신에게 해당된다고 느끼신다면, 엔지니어/프로그래머/개발자 직업을 그만두시길 권합니다. 일찍 전향하시어 인생의 정상에 오르시기 바랍니다.

- EOF -
이 글의 최초 게시: 불평 좀 늘어놓아 보겠습니다 - Xheldon Blog