문득 코딩웨일이라는 개발자 유튜브를 보다가 '일 잘 하는 개발자가 되려면 어떻게 해야 하는가'에 대해 생각해보게 되었다. 크게 두 가지의 인사이트를 얻었다. 하나는 내가 무의식적으로 생각하고 있던 부분이었고, 다른 하나는 아마 나를 비롯한 많은 신입 개발자들에게 있을 '임포스터 증후군'에 대한 위로이자 통찰이었다.
- 회사에서 원하는 개발자는 개발만 잘 하는 개발자가 아니라, 개발로 문제를 해결하는 개발자이다.
- 재능의 영역도 물론 있다. 하지만 소위 말하는 '잘 하는 개발자'가 되고 싶다는 거라면 이 부분은 잘 설정된 노력과 학습으로도 어느 정도 가능하다.
✅ '나 자신'과 '회사' 모두에 대해 이해하는 개발자가 되자
이런 종류의 영상을 보면서 항상 느끼는 점이 있는데, 개발자도 결국 하나의 직업이며 이 직업의 수요나 채용은 사회와의 관계(수요와 공급) 속에서 결정된다는 거였다. 예전에 소마에서 우리 엑스퍼트님이 해주신 말씀과도 맥락이 통한다. 그때 당시에는 취업 관련 조언으로 이 말을 해 주셨는데, 지금 생각해 보면 이 인사이트는 커리어를 쌓아 나가는 과정에서도 계속 유효하다고 생각한다. (정확히는 기억나지 않지만 이런 맥락이었다.)
채용은 '나'와 '회사' 사이의 핏을 맞춰 나가는 과정이다. 그렇기에 이력서를 쓰거나 면접을 볼 때에도 내가 생각하는 '나 자신'이 있고, 내가 생각하는 '회사'가 무엇인지를 말해 주고, 이 둘이 어떻게 핏을 맞춰 나갈 수 있을지를 드러내야 한다. 왜냐하면 회사에서는 회사에서 성과를 낼 개발자를 채용하려는 것이므로, '이 개발자는 어떤 사람인지'와 '그래서 우리 회사에 맞을지'가 궁금한 것이겠다. 이 두 가지를 이력서나 면접에서 풀어내려면 내가 현재 갖고 있는 '개발자로서의 나 자신'에 대한 생각과, '내가 지원하려는 회사'에 대한 생각을 정리해 봐야 하겠다.
그러니까 단순히 '나는 A라는 능력이 있다' 라는 개발자가 아니라, '나는 A라는 능력이 있고, 내가 이해하기로는 회사에서 B라는 업무를 하는데 여기서는 A라는 능력이 필요하다고 알고 있다. 그러므로 나는 회사에 적합한 인재이다' 라는 식으로 풀어나가는 것이 조금 더 맞다는 생각이었다.
✅ 업무 처리 능력 != 개발 실력
그리고 잠시나마 실무를 찍먹해 본 입장에서도 위의 인사이트에 공감했다. '개발을 잘 한다'고 하면 보통 코드를 간결하거나 빠르게 만들거나, 코드를 가독성 있게 짜거나, 전공지식이 탄탄한 경우를 생각하곤 했다. 그런데 그게 항상 업무를 잘 하는 걸로 이어지지는 않는다. (물론 대체로 이런 사람들이 실무를 더 잘 하기는 하는데, 인과관계는 아니라는 뜻이다.)
1년차 미만 개발자인 내가 보기에 실무를 잘 하는 주니어 개발자의 특징을 정리해 보았다. (시니어 개발자의 영역은 아직은 내가 알 수 없는 영역이라 제외했다.)
- 요구사항이 무엇인지를 잘 파악한다.
- 마감 기한을 잘 지킨다.
- 커뮤니케이션을 잘 한다. 가령 여러 문제로 마감 기한이 늦어질 위기에 처하는 경우가 있을 수 있다. 하지만 이 경우 자신의 문제 상황을 잘 공유하고 피드백을 구해서 잘 적용한다.
사실 이 정도가 생각난다. 그리고 생각보다 주니어 개발자를 평가할 때 순수한 코딩 실력으로만 이를 평가하지는 않을 것이다. 이전의 업무 경험에서는 나는 이런 피드백을 받았었다.
- (두 사수분에게 모두 받았던 피드백) 모르는 것이나 어려움이 있을 때 꽁꽁 숨기지 말고, 시도해 본 다음에 안 되면 바로 질문해 줬으면 좋겠다. 그게 효율적이다.
- (코드 리뷰 때 받은 피드백) 가독성이 좋게 코드를 짜는 것은 매우 중요하다. 내가 짠 코드를 후에 다른 개발자가 맡아서 작업할 수도 있기 때문이다.
- (회식 때 받은 피드백) 문서화를 잘 하셔서 일이 어디까지 진행되고 있는지 알아보기가 편했다.
- (마감 데드라인이 밀렸을 때 / 다른 분들이 예상하신 것보다 더 시간이 걸렸을 때) 일을 하면서 겪은 다른 어려움이 있는지 궁금하다. 작업을 방해한 다른 요소가 있는지 궁금하다. -> 책임을 물으시려는 의도가 아니었고 원인을 알아내서 같이 제거해 주려는 목적으로 여쭤보셨다.
이러한 것들이 생각난다. 여기서 느낀 점은, 생각보다 주니어에게 대단한 무언가를 기대하지는 않는다는 거였다. 네 개의 피드백 모두 어떻게 보면 커뮤니케이션 영역과 관련이 깊었다. 입사 후 바로 조직에서 성과를 낼 수 있는 주니어면 정말 좋겠지만, 내가 생각하기에 나는 그런 '슈퍼 신입'은 아니었다. 그걸 인정하고 다시 피드백을 보니, 최소한 조직이 돌아가는 방식이나 협업 프로세스를 빨리 파악하고 여기에 적응하는 주니어를 선호하는 것은 분명해 보였다.
그래서 나는 '슈퍼 신입'이 되려는 대신 전략을 바꿨다.
✅ 임포스터 증후군 극복하기
많은 신입들이 가면 증후군이 있다고 한다. 가령 '나는 회사의 기대를 충족할 만큼 잘 하고 실력 있는 사람이 아닌데, 근데 그걸 어떻게 잘 숨겨서 뽑힌 것이다. 내 실제 실력을 알면 실망할 것이다'와 비슷한 생각이다. 나도 이 가면 증후군이 있었고, 여전히 있다.
내가 실력이 좋아서 뽑힌 것은 아니라고 생각한다. 그저 괜찮아 보이는 몇 가지의 조건들이 충족되어서 서류를 통과했고, 면접관 입장에서는 크게 부정적인 방향으로 눈에 띄는 사람은 아니었기에 면접을 통과한 것이라고 생각한다. 절대 내가 잘 해서 뽑힌 게 아니라고 생각하고, 살면서 나는 이런 면에서 꽤 객관적이었던 만큼 실제로도 그럴 것이라고 생각한다.
그래서 불안하냐고 하면 그건 맞는데, 그래도 앞으로 어떻게 할지가 더 중요하다는 답을 내렸다. 그 전에 '나는 어떤 개발자가 되고 싶은가'에 대한 답을 내려야겠다.
- 문제를 기한 안에 해결하는 개발자
- 소통이 잘 되는 개발자
나는 1번 영역에 대해서 더 자신이 없다. 예상했던 것보다 일을 늦게 처리한 경험이 몇 번 있었기에, 오히려 1번 영역이 나의 콤플렉스에 가깝다. 그리고 지금까지 나는 문제를 기한 안에 해결하는 것 자체가 코딩을 잘 한다는 것이고, 나에게는 없는 재능이며, 순수한 재능의 영역이라고만 생각했었다.
그런데 발전시킬 수도 있지 않을까?
앞서 언급한 코딩웨일 유튜브를 보고 그런 생각이 들었다. 모두가 천부적인 재능으로 개발자를 하는 게 아니라면 나도 가능하지 않을까?
다만 깃털 같은 희망만을 품어서 될 일은 아니었다. 어떤 노력을 해서 이 능력을 좀 끌어올릴 수 있을지를 생각해 봤다. 내가 생각하기에는 나의 부족함을 빨리 맞닥뜨리는 연습이 필요한 것 같다. 가령 안 풀리는 부분이 있으면 빨리 공유해서 이에 대한 피드백을 받고, 새로운 방법을 모색하는 것이겠다.
그동안은 도움을 요청한다는 것 자체가 내가 혼자 해결해야 할 일인데 남에게 도움을 요청한다는, 어찌 보면 의존적이라는 생각이 들어서 잘 요청하지 못했었다. 그런데 아이러니하게도 주니어 개발자의 경우, 혼자 시도한 다음에 풀리지 않는 일이라면 피드백을 요청하고 그 피드백을 잘 수용하려고 노력하는 과정을 통해 더 빨리 발전할 수 있겠다는 생각이 들었다.
그러니까 이를 위해서는 나의 완벽주의를 좀 버려야 하겠다. 잘 하는 것처럼 보이고 싶고, 혼자 일을 완벽하게 해내고 싶은 마음을 잘 눌러야겠다. 열심히 시도해 보다가 모르면 현재의 나는 이걸 잘 모른다는 것을 겸허히 인정한 뒤 내가 할 수 있는 다른 방법, 피드백을 요청하는 것을 기꺼이 해야겠다.
회사 입장에서 중요한 것은 '내가 문제를 느리더라도 처음부터 끝까지 혼자 해결하는 것'이 아니라 '내가 효율적으로 빠르게 문제를 해결하는 것'일 테니 말이다. 일하면서 나 자신뿐만 아니라 '동료'와 '회사'가 나와 같이 일하고 있다는 것을 잃지 말자.
그리고 그렇게 나의 부족함을 계속해서 발견하고, 부끄럽고 민망하겠지만 이에 대한 조언이나 피드백을 구하고, 그걸 적용하려는 연습을 하다보면 분명 혼자 꽁꽁 싸매던 예전의 나보다는 더 빨리 발전할 수 있을 것이라는 확신이 든다.
'회고' 카테고리의 다른 글
20250112 회고: 입사 첫 주의 회고 (0) | 2025.01.12 |
---|---|
20241215 회고 - 잠시 쉬어갔던 한 주 (2) | 2024.12.15 |
소프트웨어 마에스트로 15기 수료 후기 (3) | 2024.12.08 |
20241124 회고 - 소마가 끝난 후 (2) | 2024.11.24 |
20241103 회고 - 빙글빙글 돌아가는 취준생의 일주일 (6) | 2024.11.04 |