요즘 여러 채널을 통해 고민 상담을 받다보면 빈번한 사례가 "더이상 성장한다는 느낌을 받지 못해서 이직을 고민중이다" 라는 것이다.
그래서 성장한다는 느낌은 어떤 것인지 물어보면 사람마다 답변이 다양하다.
다만, 많은 경우 "새로운 경험을 할 때" 성장한다고 느낀다는 답변을 받는다.
그 부분에 대해서는 100% 동의하진 않는다.
요즘은 "성장" 이란 단어를 쓰는 것이 조심스럽다.
"성장라이팅" 이란 이야기를 많이 들었기 때문인데, 그렇기 때문에 이 글은 어디까지나 "성장에 대한 갈망"이 있는 분들에게만 해당한다.
"모든 개발자가 이렇게 되어야만 한다" 를 의미하진 않는다.
마침 최근에 본 재미난 글이 있다.
표현이 과격(?) 해서 조심스럽지만 IDE의 단축키를 익히는 것의 유용함을 이야기해주셔서 이 글과 함께 팀에 전달한 메세지가 있다.
같은 일이 반복될때 보통 우리는 성장하지 않는다고 느끼게 되는데요.
익숙한 일이 반복된다면, 그때가 오히려 그동안 내가 익히지 못했던 여러 개선 방법들을 시도할때라고 생각됩니다.
"이정도 API는, 이정도 페이지는 하루만에 끝날것 같아" 같은 생각이 들면서, 한편으로는
"언제까지 매번 이런 같은 일이 반복되어야하지" 와 같은 생각도 함께 들 수 있다는 것인데요.
오히려 이럴때 일수록 그간 해보지 못했던, 익숙치 않았던 방법들을 사용해볼 때입니다.
- 기존에 기능 구현에 집중했다면 -> TDD 로 해당 기능을 구현 해보기도 하고
- 마우스를 쓰면서 개발을 해왔다면 -> 마우스를 쓰지 않고 모든 구현을 해본다거나
- 통합 테스트만 계속 작성했다면 -> 코드를 리팩토링해서 단위 테스트 비중을 높여본다던가
- 매번 함수와 Object로만 구현했다면 -> 클래스 기반의 OOP로 구현을 한번 해보고, 비교를 해본다던가
등등 내가 익숙한 문제의 난이도를 높이는 방법을 써볼 수 있습니다.
몸이 좋아지기 위해 스쿼트 100개를 매일 해야하는 숙제가 주어진다면,
누군가는 빈봉으로만 스쿼트를 해서 숙제를 완수하기도 하고,
누군가는 계속해서 봉에 무게를 추가해서 스쿼트의 난이도를 자체적으로 높이면서 숙제를 완수하기도 합니다.
누가 더 몸이 좋아질지는 비교할 필요도 없겠죠?
지금 하고 있는 일이 점점 익숙해지고 있다면, 일의 난이도를 높여보세요.
새로운 종류의 일만이 성장을 보장하지는 않습니다.
- 어떻게 하면 기존에 하던 방법을 더 빠르게 구현할 수 있을까
- 어떻게 하면 더 좋은 방법으로 구현할 수 있을까
등등을 계속 시도해보는게 중요한것 같습니다.
그게 설령 익숙하지 않는 방법이라 하더라도요.
양신이라 불리는 양준혁 선수도 타격왕을 하기 위해 타격 자세를 몇번이나 변경했다고 합니다.
계속해서 새로운 환경이나 도구만이 성장이라고 생각되면 새로운 환경과 도구가 익숙해질때마다 새로운 환경으로의 이동만이 유일한 방법이 됩니다.
이렇게 되면 본인의 깊이를 지키기 어렵습니다.
레거시 시스템을 계속해서 반복하다보면 누구나 성장이 멈췄다고 느낄 수 있고, 이는 자연스러운 생각일 수 있습니다.
현재의 레거시 시스템을 오래 해오다보면 이런 고민들을 충분히 할 수 있기 때문에 공유드렸습니다.
차주에 똑같은 함수 구현이라도 더 좋은 함수를 구현할 수 있는 방법을 공유하는 좋은함수 #2 발표가 있으니, 이때도 여러분의 일의 난이도를 높일 수 있는 방법을 이야기하는 자리가 될 것 같네요.
새로운 일이 아니더라도 성장하는 방법은 무궁무진하며, 그런 방법일수록 깊이가 생긴다.
익숙한 일을 익숙하지 않는 방법으로 해결해볼수록 성장할 수 있다.
오히려 익숙하지 않은 일만 계속 하게 되면, 매번 똑같은 방법으로만 문제를 풀게 된다.
지금 하고 있는 일이 어렵지 않고, 충분히 익숙하다면, 오히려 그때가 TDD, IDE의 단축키, 단위 테스트 전환 등 그간 해보고 싶었지만 못해본 여러 방법들을 시도해볼때이다.