토스 러너스 하이를 지원하며 받은 질문 중 잘하는 개발자란?'에 대해 깊이 고민해 보았다.
'잘하는 개발자란?' 너무나도 흥미로운 질문에 필자의 생각을 정리해 봤다.
우선 '잘하다'라는 뜻은 무엇일까? 사전적 의미를 살펴보자.
- 옳고 바르게, 또는 좋고 훌륭하게 하다.
- 익숙하고 능란하게 하다.
- 평탄하고 만족하게 하다.
- 버릇으로 자주 하다.
이렇듯 '잘하다'의 뜻은 상황, 문제, 또는 일에 대한 통찰력과 분별력을 바탕으로 최선의 결과를 만들어내는 행위를 뜻한다. 이런 행위를 특정 분야에서 오랜 시간에 걸쳐 익히고 능숙해진 것이 전문가이며, 이를 통해 깊은 전문성을 갖출 수 있다.
그렇다면 '잘하는 개발자'란 무엇인가? 단순히 맡은 일을 원활히 수행하고 가치 있는 결과물을 창출하는 사람일까?
과거의 나는 잘하는 개발자란 프로그래밍적인 기술이 뛰어난 것이 으뜸이라고 생각했다. 결과적으로 좋은 제품과 이윤을 창출하는 것이 것이 가장 중요하다고 생각했기 때문이다.
하지만 시간이 지날수록 무엇인가 석연치 않다는 것을 깨달았다. 우리는 회사 또는 팀프로젝트를 수행할 때 함께 일하고 싶은 사람 또는 일을 잘하는 사람이 무조건적으로 개발을 잘하고 프로그래밍적인 능력이 뛰어난 사람이 아닌 것을 경험했다.
그렇다면 잘하는 개발자의 역량에는 어떤 것이 필요할까?
- 기술적 역량
- 문제 해결 능력
- 협업 커뮤니케이션
- 학습 및 성장에 대한 열망
- 책임감
- 개발자로서 이루고 싶은 명확한 목표
이 외에도 잘하는 개발자를 정의하는 많은 역량이 있겠지만 필자가 생각하는 가장 중요한 역량 세 가지를 작성해 봤다.
1. 성장에 대한 욕구가 있는가?
개발자는 항상 성장에 대한 욕구가 있어야 한다. 이는 기술적 역량, 문제해결능력, 책임감의 성장까지 이어진다. 어제보다 발전한 나를 만들겠다는 성장 동력이 결국 우리를 이끌기 때문이다. '개발'이라는 단어도 새로운 영역을 개척하고 발전시키는 과정이라는 의미를 가지고 있듯이 개발자에게 성장은 필수적이라고 생각한다.
그러나 우리는 모두 기계가 아닌 사람이기 때문에 성장에 대한 열정적인 마음이 쉽게 사그라드는 것을 많이 경험하기도 했다. 운동이나 러닝을 할때에도 빠르게 몰아붙이거나 스퍼트를 내버리면 근육통이 오거나 빠르게 지쳐버리는 것처럼 성장 또한 마찬가지이다.
필자도 '작심삼일' 이라는 말을 절실히 느낀적 있었고 번아웃도 경험해봤기에 어떻게 지속적으로 나아갈 수 있을지에 대한 고민을 많이 했다. 사람마다 성장동력을 유지시키기 위한 연료는 너무나도 제각각이기에 본인을 깊게 탐구해야 한다.
필자의 경우에는 어떤 원동력을 가지고 있는지 풀어보겠다.
첫번째 원동력: 꿈
필자는 인생에서 이루고 싶은 하나의 큰 꿈이 있다. 그 꿈을 실현하기 위해 어떻게 나아가야 할지에 대해 늘 고민한다. 꿈이 크기에 구체적인 계획보다는 올바른 방향으로 꾸준히 나아가자고 다짐하며 하루를 보내고 있다. 큰 목표를 향해 나아가는 과정만으로도 좋은 원동력이 되고있다.
두번째 원동력: 주변 환경과 사람들
성실하게 하루를 보내며 자신의 영역에서 발전하고, 긍정적인 에너지를 나누며 선한 영향력을 행사하는 사람들을 볼때마다 나 또한 남들에게 도움이 되는 사람이 되고 싶고 그런 사람이 되고 싶다는 생각을 한다.
스스로를 쉽게 변화시키기 어렵다면 좋은 환경과 사람들 속에 자신을 놓아야 한다. 좋은 사람들과 어울리고 긍정적인 환경 속에서 생활하면 세상을 바라보는 시야도 자연스럽게 넓어지는 경험을 할 수 있기 때문이다.
세번째 원동력: 삶에 대한 가치관
필자의 가치관을 얘기하자면 왜 이런 가치관을 가지게 되었는지 또한 어떠한 시선으로 세상을 바라보고 있는지에 대한 설명이 필요하기에 이에 대해 설명하고자 한다.
삶의 목적과 의미에 대한 고민
세상에 태어난것에 목적이 있을까? 삶의 의미는 무엇일까? 이런 고민을 깊이 했던 적이 있다. 필자는 과거에 왜 태어났는가에 대해 집중하며 살아갔었는데 고민의 끝은 '삶에는 의미도 목적이 없다'는 결론으로 이어졌다.
역사 속 위대한 위인이나 현재의 유명인들 조차 모두 언젠가는 같은 결말에 도달하고 자신의 세상이 끝나면 이 거대한 세상도 끝이나 마찬가지기에 그렇게 생각했다.
그러나 많은 책을 읽으며 그러한 관념에서 벗어날 수 있었다. 책의 좋은 점은 스스로를 깊이 탐구하고 스스로 생각하기 힘든 것을 다각적으로 질문하며 고찰할 수 있는 기회를 주는 것이다.
여러 책을 읽으며 깨달은 것은 태어난 사실에 '왜'라는 질문을 던지는 것이 아니라 '어떻게 살아가야 하는가'가 중요하다는 점이다. '왜'라는 이유에 집착하다보면 결국에는 모든것이 무의미하게 느껴질 뿐이다.
인간의 호기심과 집착
사람은 본질적으로 모든 것을 이해하고 싶어 하고 통제하고 싶어 한다. 모든 사물과 현상에 이름을 붙이고 의미를 부여하는 것도 이러한 것들 때문이다. 어쩌면 모든 현상과 우리가 살아가는 이 세상까지도 아무런 아무런 의미가 없을 수도 있다. 하지만 인간은 세상을 명확하게 지각하기 위해 살아가기 위해 예측하기 위해 다양한 이유로 의미를 부여한다. 물론 이는 타인과 소통하기 위한 도구이기도 하 고 자신이 이해하지 못하는 것을 풀어헤치고 싶어 하는 호기심 때문이기도 하다.
인간은 알 수 없는 것에 대해 두려움을 느끼면서 동시에 그것을 이해하고자 노력한다. 마치 어둠속에 무엇이 있는 것 인지 판도라의 상자안에 무엇이 들어 있는지 확인하고자 하는 것과 같다.
그러나 풀어내기 힘들고 정답이 없는 문제에 대해, 그저 존재하는 것에 대해 지나치게 몰입하여 '왜 태어났는가' 혹은 '우주는 왜 언젠가는 소멸하는가'와 같은 질문에 집착하게되면 의미를 찾으려는 과정이 과도한 집착으로 변질되어 부정적인 감정과 현상이 생기기 마련이다.
집착에서 벗어난 삶
이런 호기심을 무조건적으로 경계하라는 것은 아니다. 탐구를 장려하되 그것에 집착하거나 얶매이지 않는 것이 중요하다. 이는 불교적인 사상과도 유사하다. 불교에서는 마음을 괴롭게 하고 현혹시키는 모든 작용을 번뇌라고 한다. 자신을 관철하고 관망하며 욕망이나 집착으로 인해 괴로움을 겪지 않는 것이 부처로 가는 길이다.
필자는 무교이지만 불교의 도리처럼 '왜 태어났는가'라는 질문의 수렁에서 벗어나 객관적으로 스스로를 살펴보며 긍정적인 방향으로 자신을 이끌 수 있었다. 이제 남은 질문은 어떻게 사는것이 의미 있는삶인가? 이다.
욕심이 번뇌를 만든다는 말이 있지만, 필자는 꿈을 이루기 위해 욕심을 온전히 버리지 않았다. 대신 욕심을 긍정적인 방향으로 변화하여 주변 사람들에게 선한 영향력을 발휘하는 삶을 지향하기로 다짐했다. 이는 필자가 좋아하는 작가 알베르 카뮈의 부조리한 삶의 철학과도 연결된다.
- (낙관적 허무주의와 카뮈의 사상은 세세하게 보면 다르지만 무의미한 삶을 포기하지 않는다는 공통분모가 좋았다 관심이 있으신 분들은 재미있게 설명이 잘되어 있는 유튜브 링크를 남겼다. [낙관적 허무주의], [부조리])
카뮈는 죽음이라는 피할 수 없는 결말 속에서도 삶의 의미를 스스로 만들어가야 한다고 주장했다. 아이러니하게도 죽음이라는 결말이 정해져 있기에, 매 순간 최선을 다할 수 있는 것이다. 이러한 관점에서 필자는 내가 할 수 있는 일에 최선을 다하며, 동시에 다른 사람들에게 긍정적인 영향을 미칠 수 있는 삶을 위해 노력하고 있다.
여러분의 원동력은 무엇일까?
사람마다 삶을 움직이는 원동력은 전부 다르다. 질투, 부러움, 분노, 슬픔, 압박감, 벗어나고 싶은 마음, 배움의 즐거움, 혹은 현재 상황이 너무 싫은 감정 등등 모두 강력한 원동력이 될 수 있다.
중요한 것은 이러한 감정들을 온전히 품고, 그것들을 자신의 삶을 나아가게 하는 연료로 삼아야 한다는 것이다. 감정에 휘둘리지 않고 주체적으로 삶을 이끌어가는 사람이 되어야 한다.
삶에 정답은 없다. "이렇게 살아야 한다", "이것은 옳다"와 같은 기준조차도 시대적 상황과 환경에 따라 달라지며, 종종 모순적이기까지 하다. 법과 상식, 도덕성과 윤리 역시 상황과 문화에 따라 다르게 해석될 수 있는 여지가 있다.
사람은 자신이 익숙한 환경과 문화에 적응하기 때문에 다른 문화나 관점을 쉽게 배척하기도 하지만 이는 자라온 환경과 문화적 차이에서 비롯된 것일 뿐 진리나 정답을 의미하지는 않기에 타인에게 쉽게 휘둘려서는 안된다.
많은 자기개발서에는 삶에는 정답과 사회적으로 성공할 수 있는 방법이 있는 것 처럼 말한다. 하지만 다른 사람에게 유효한 정답이 나에게는 전혀 맞지 않을 수 있다.
타인의 인생을 무작정 따라가는 대신, 자신만의 정답을 찾기 위한 질문과 고민을 이어가는 것이 중요하다. 역사 속 위인들의 말, 유명 CEO나 철학가, 학자들의 조언조차도 당신의 상황에선 적합하지 않을 수 있다.
타인의 말에 귀기울이지 말라는 이야기가 아니며 스스로를 가장 잘 아는 존재는 자신이기에 외부의 자극과 조언, 경험을 기반으로 스스로를 탐구해 자신에게 가장 알맞은 옷을 입는 것이 중요하다.
결국, 삶의 주체는 당신 자신이다. 자신만의 정답을 찾기 위해 끊임없이 고민하고 탐구해야 한다. 이것이 진정한 자기 주도적 삶을 살아가는 방법이다.
특히 자신이 싫어하는 일은 정말 좋은 원동력이 될 수 있다. 사람은 싫어하는 일을 통해 성장하기 때문이다. 매일 좋아하는 일만 하고 살 수는 없다. 아무리 좋아하는 일도 반복되면 쉽게 질리고 항상 재밌을 수는 없기 마련이다.
어떤 일이던 좋아하는 일을 하기 위해서는 반드시 싫어하는 일을 해야 할 때가 있다. 예를 들어, 여행을 가기 위해 일을 해야 하고, 건강을 위해 운동이 싫더라도 매일 운동을 해야 한다.
이렇게 싫어하는 일은 우리를 움직이게 하고 발전시킨다. 물론 싫어하는 일을 반드시 해야 한다는 것은 아니며 모든 경우에 적용되는 말이 아니기에 이를 대체하거나 피할 방법을 찾는 것 또한 현명한 선택이다.
하지만 과거의 부정적인 경험이나 싫었던 일들에 대해서는 재평가할 필요가 있다. 기억은 시간이 지남에 따라 왜곡되기 쉽다. 그 일이 싫었던 것이 아니라 당시의 상황이나 다른 부정적인 감정 때문에 그렇게 느꼈을 가능성도 있다.
지금의 당신과 과거의 당신은 많이 달라졌기에, 다시 시도해본다면 좋은 경험으로 남을 수도 있다. 부정적인 감정을 회피하지 말고 당당히 마주해 부딪힘으로써 어제보다 더 나은 자신을 만날 수 있을 것이다.
2. 협업 커뮤니케이션이 원활한가?
1인 개발자의 경우에는 해당되지 않을 수 있다.(관련 경험이 없어 정확히 알지는 못한다..) 개발자란 직업은 생각보다 훨씬 많은 사람들과 소통이 필요한 직업이다. 이는 자기 PR 능력과도 밀접하게 연결된다. 학교든 직장이든 자신의 능력을 실제보다 적게 드러내는 사람과, 반대로 실제보다 더 많이 표출해내는 사람도 있다.
말이란 자신의 역량을 얼마나 잘 표현할 수 있는지 그리고 타인에게 신뢰감을 어떻게 형성할 수 있는지를 결정하는 중대한 요소이다. 너무 과장되게 표현한다면 문제가 되겠지만 자신을 솔직하게 잘 표현해내는 것도 중요한 자질 중 하나이다.
같은 뜻을 전달하더라도 어떤 방식으로 말하느냐에 따라 협업이 효율적으로 진행될 수도 있고, 반대로 서로 감정이 상하고 의견이 공유되지 않아 만족스럽지 못한 결과물을 만들 수도 있다.
'말 한마디에 천냥 빚을 갚는다' 라는 속담은 정말 뜻 깊다. 말은 한 번 내뱉으면 주워 담을 수도 없고 없던 일로 할 수도 없기에 신중해야 한다. 어떻게 표현하느냐에 따라 그 사람의 인품, 성격 더 나아가서는 생각의 깊이나 가치관을 엿볼 수 있다. 따라서 말을 잘하는 것, 즉 효과적으로 소통하는 능력은 매우 중요하며, 자신의 의견을 적극적으로 피력하는 태도도 필요하다.
하지만 업무 중 서로의 의견이 지나치게 일치하지 않는다면 어떻게 될까? 비즈니스적인 측면에서 본다면 똑같은 결과물을 만들기 위해 쓸모없는 시간을 낭비하고 있는 것이다. 이미 공통된 목표를 향해 나아가는 상황이기에 의견 차이가 발생했을 때 현재 상황에서 가장 효율적이고 자원을 낭비하지 않는 선택을 해야한다.
현 상황에 최적화된 선택을 위해 미래를 고려하지 말라는 이야기는 아니다. 이런 이지선다의 상황에서 최선의 결정을 하고 선택하는 능력도 개발자의 역량을 보여주는 중요한 요소이다. 만약 잘못된 선택을 했다는 것을 깨닫게 되면, 이를 신속히 인정하고 문제를 수습하는 능력 역시 개발자로서 중요한 자질이다.
소통이 어려운 점은 사람마다 스타일이 다르기 때문이다. 공과사를 철저히 구분하는 사람, 공과사의 경계에서 아슬아슬한 줄타기를 하는 사람, 또는 이를 자유롭게 넘나드는 사람 등 각양각색이다. 그 사람에게 가장 적합한 스타일로 업무를 수행하고 있을 것이기에 강제성을 부여하기도 어렵다.
개인적으로는 팀원들끼리 친밀감을 쌓고, 때로는 사적인 이야기도 공유할 수 있는 관계여야 자유롭게 의견을 나누고 원활한 비즈니스를 만드는 데 도움이 된다고 생각한다. 결국 사람마다 선호하는 스타일과 호감의 기준이 다르기 때문에 개인차가 생길수밖에 없다. 올바른 협업을 위해서는 상대방과 나 모두가 소통할 준비가 되어 있어야 한다.
3. 개발자로서 이루고 싶은 목표가 있는가?
개발자의 목표설정은 정말 중요하다.
"치킨집이나 차려야겠다.."와 "개발자로 40년을 일해야겠다" 는 마음가짐에는 큰 차이가 있을 수밖에 없다.
큰 목표를 세우는 것도 좋지만 최대한 작게 시작하는 것이 훨씬 효과적이다. 한 달, 일주일 단위의 목표도 좋고 심지어 하루나 1시간 단위의 목표도 괜찮다. 목표가 작을수록 이루기 쉬우며 성취감을 빠르게 느낄 수 있기 때문이다.
성공을 위한 방법은 무엇일까? 바로 그것에 대해 끊임없이 상기시키고 고민하는 것이다 자기개발서 책에서는 이를 극단적으로 활용해 매일 이루고 싶은 목표에 대해 끊임 없이 목표를 이룬 자신의 모습을 이미지 트레이닝을 하라고 하기도 한다.
목표를 이룬 자신의 모습을 생생히 떠올리고, 그때의 기쁨, 행동 그리고 주변 사람들의 반응까지 구체적으로 이미지 트레이닝하라는 것이다. 이는 파일럿들이 전투기 탑승 전 훈련으로도 활용하는 방법이며 스포츠 선수들도 많이 사용하는 과학적인 방법이다.
필자는 앞서 설명한 삶을 살아갈 의미를 개발자라는 직업에서도 이룰 수 있다고 생각했다. 개발자라는 직업에 전념한다면 선한 영향력을 행사하고 타인에게 도움이 되는 무언가를 만들 수 있기 때문이다.
대다수의 직업들이 타인을 위해 선한 영향력을 행사할 수 있지만 개발자가 재미있는건 이 세상에 존재하지 않는 새로운것을 창조해 불특정 다수에게 긍정적인 영향을 미칠 수 있다는 것이다. 정말 매력적이다.
이처럼 분야의 전문가들은 세상에 없던 새로운 무언가를 창조하거나 자신의 전문 분야를 깊이 탐구하여 인류의 지식 반경을 넓히는 데 기여한다.
이러한 생각을 바탕으로 필자는 "개발자로서 어떻게 성장할 것인가?"에 대해 꾸준히 고민하고 있다. 이를 위해서는 넓은 전문지식을 기반으로 타인에게 모범을 보이고 다방면으로 성장을 이루어내야 나의 꿈에 더욱 가까워질 것이고 목표를 이루기 쉬울 것이라고 생각한다.
개발자의 목표는 다양할 수 있으며, 이루는 방법 또한 사람마다 다르다.
작은 목표라도 설정해 꾸준히 실천하면 좋다.
때로는 목표 없이 하루하루 최선을 다하다 보면 새로운 목표가 생길 수도 있고 목표가 없더라도 나도 모르게 타인에게 좋은 귀감이 될 수 있는 것이다. 방송인 유재석 님 역시 방송을 처음에는 별다른 목표 없이 시작했고 지금도 목표가 없는것이 목표라고 하셨지만 모두에게 모범이 되는 위치에 있는것처럼 말이다.
여러분들은 개발자로서의 목표가 있는가? 또는 하루하루 최선을 다 하고 있는가?
결론적으로, 잘하는 개발자란 무엇일까?
잘하는 개발자란 단순하지 않고 복잡한 문제이다. 어떤 관점에서 바라보느냐 또는 어떤 상황에서 물어보느냐 누구에게 물어보느냐에 따라 답이 전부 달라질 수 있다. 하지만 필자가 생각하는 잘하는 개발자란 크게 본다면 함께 일하고 싶은 사람, 타인에게 모범이 되며 존경받는 개발자라고 정의할 수 있을 것 같다.
TMI
러너스 하이는 신청 후 합격했고 과정 진행중에 있다. 교육은 1월 16일날 종료되어 종료 이후에 후기 글을 작성할 예정이다.
'기타' 카테고리의 다른 글
[국내]무료 오픈 api 추천 리스트 모음 (4) | 2024.03.17 |
---|