6 분 소요

개발자라면 아니, 아마 자신의 경력에 욕심이 있는 사람이라면 누구나 성장에 대해 목말라 있고 어떤 학습을 하면 좋을지, 어떻게 학습해야 할지 고민할 것으로 생각한다. 나 역시도 최근 경력에 대한 방향과 목표에 대해 고민하면서 학습과 성장에 대해 고민이 깊어지고 있었다. 그런 나의 이런 고민을 해결하고자 최근 그릿더 시스템 이라는 책을 읽어 보았는데, 개발자로서 지속적인 성장을 위해 어떻게 학습하고 목표를 세우면 좋을지 배운 바가 있어 내용도 정리할 겸 이 글을 적어보았다.

의도적 학습

deliverate-practice

사진출처: https://coachround.com/deliberate-practice/

‘그릿’에서는 단순히 알고 있는 지식이나 기술을 반복한다고 해서 성장을 이루어낼 수 없다고 한다. 개발자로서 기술적으로나 기술 외적인 업무능력을 향상하기 위해서는 의도적으로 새로운 기술을 학습하고 그 과정에서 발생하는 실패와 어려움을 극복하는 과정이 필요하다는 것이다.

운동선수를 예를 들어보자. 운동선수들은 매일 기록을 측정한다. 달리기라면 1초라도 더 빨리 달리기 위해 계획을 세우고 연습하며 역도 선수들도 1kg이라도 더 들어올리기 위해 끊임없이 한계에 도전한다. 이러한 노력과 실패에 대한 경험을 토대로 기록을 개선하고 계속해서 성장해 나가는 것이다.

개발자도 마찬가지이다. 현재 자신의 성장 상태를 주기적으로 측정하고 부족한 부분이 무엇인지 혹은 나에게 필요한 기술이나 업무능력이 무엇인지 제대로 파악한 다음 이를 해결하기 위한 계획과 노력이 필요하다. 매일 똑같이 MVC 패턴으로 Controller, Service, Repository 등을 활용한 레이어드 아키텍처만 사용해서 API 서버를 만들어내기보다 헥사고날 아키텍처를 사용해 본다든지 MSA를 적용해 본다든지 등의 새로운 아키텍처를 적용한 API를 개발을 해본다는 것과 같이 말이다.

이런 의도적 학습은 현재 상태를 객관적으로 판단하고 앞으로 다가가기 위한 목표 설정과 잘 정리된 계획, 그리고 끊임없는 노력이 수반되어야 효과적인 성장을 이루어낼 수 있다. 국가대표나 프로선수와 같은 전문적인 운동선수들은 코치를 통해 효과적인 성장을 지원받는데 우리도 온라인 학습이나 멘토링과 같은 프로그램을 통해 효과적인 의도적 학습을 수행해 낼 수 있을 것이다.

실패를 두려워하지 말자

failure

사진출처: http://psytimes.co.kr/news/view.php?idx=5427

사람이라면 누구나 본능적으로 실패를 두려워한다. 그래서 학습 시 자신이 할 수 있는 범위 내에서만 하려는 경향을 보이곤 한다. 하지만 이런 방식으로는 자신의 한계를 넘어서기 즉, 성장하기 어렵다.

여러분이 몸의 근육을 키우기 위해 근육운동을 한다고 가정해 보자. 30kg 바벨을 이용해서 가슴 운동을 한다고 했을 때 매일 동일한 30kg 바벨을 들어 올린다면 커지기 시작한 가슴근육이 어느 순간 정체되어 더 이상 크지 않을 것이다. 가슴근육을 키우기 위해서는 30kg 바벨을 35kg 바벨로 무게를 올려야 가슴근육을 키울 수 있다. 처음 30kg 바벨을 35kg 바벨로 무게를 올려 운동을 하면 처음에는 들어 올리지도 못할 수도 있고 들어 올리다가 자세가 무너질 수도 있다. 하지만 이러한 과정을 극복해 내다보면 35kg 바벨은 어려움 없이 들어 올릴 수 있게 되고 30kg 바벨은 어느 순간 가벼운 느낌마저 들것이다.

개발에 대한 예를 들어보자. 여러분은 코드의 가독성을 향상하기 위해 학습을 하고 있다고 해보자. ‘리펙터링’, ‘클린코드’ 등을 통해 더 나은 코드를 작성하기 위해 책을 읽다 보면 처음에는 좋은 코드에 대한 시야를 상당히 넓힐 수 있다. 하지만 이걸로 끝내면 결국 여러분은 그 시야를 넓히는 데 그칠 것이다. 개인프로젝트에 적용해 보고 책에서 배운 내용을 적용해 보았을 때 좋았던 점이나 어려웠던 점 혹은 책에서 소개한 내용이 개인적으로는 좋지 않았던 부분들을 발견해 낼 수 있을 것이다. 어쩌면 불필요하고 복잡한 디자인패턴을 적용함으로써 리펙터링이 오히려 안 좋은 코드를 양산해 낼 수도 있다. 하지만 이러한 도전은 분명 여러분에게 좋은 경험이 될 것이고 이러한 경험은 실무에서 더 좋은 코드를 작성하는데 좋은 양분이 될 것이다.

실천

act

앞서 우리는 의도적으로 성장을 위한 학습 목표와 계획을 수립하는 게 좋다고 이야기하였다. 또한 실패를 두려워하지 않는 마음가짐으로 도전해 봐야 한다고도 하였다. 계획과 공부만으로는 성장할 수 없다고 생각한다. 여러분이 배운 지식을 실무에서 활용하고 이것이 내 지식의 양분으로 쌓여야 진정한 성장이지 않을까 생각한다.

기술적인 지식은 실제 프로젝트에 적용해 봐야만 그 장단점을 명확하게 파악할 수 있다. 단순히 서적을 통해 얻는 지식은 글쓴이에 따라 편향이 생길 수밖에 없고 은 탄환은 없기에 특정 분야에서 아주 유용한 기술이 실무에서 나의 상황과 맞지 않는 경우도 많다. 그러니 새로 익힌 기술이나 지식을 개인 프로젝트나 단순히 학습에서 그치지 않고 현재 업무하고 있는 회사에서 적용 가능한지 검토하여 현실적인 문제를 해결함으로써 경험을 쌓아가는 게 좋다고 생각한다. 다만, “망치를 든 사람에게는 모든 게 못으로 보인다”라는 속담처럼 불필요한 것에 자신이 익힌 기술이나 지식을 억지로 도입하려고 하는 실수는 하지 않아야 할 것이다.

루틴

no-thinking

‘더 시스템’에서는 사람은 하루에 자신이 할당할 수 있는 의식적인 노력의 한계가 있다고 한다. 그래서 의식적인 노력이 덜 들어가도록 이러한 노력을 생활루틴으로 만듦으로써 의식적인 노력을 하지 않고도 학습이나 운동과 같은 것을 지속할 수 있도록 하고 의식적인 노력은 더 중요한 곳에서 쓰도록 하는 게 중요하다고 한다. ‘그릿’에서도 이와 유사한 이야기를 하는데, 앞에서 말한 의도적 학습은 상당한 정신적, 육체적 피로감을 유발한다고 한다. 그래서 운동선수들도 매일 훈련하러 가는 길이 고되고 힘든데, 그럼에도 매일 습관적으로 훈련에 참여함으로써 정신적인 피로감을 최소한으로 느끼도록 할 수 있다고 한다.

어릴 때 생활 계획표를 작성한 경험이 있는가? 생활기록부는 어쩌면 어린 학생에게 필요한 게 아니라 지금 우리에게 필요한 것일 수도 있다. 물론 1년 365일 생활 계획표대로 살 순 없다. 하지만 보편적인 생활패턴은 만들어두고 특별한 일정이 없다면 이 생활 루틴을 계속 유지하는 게 학습에 도움이 될 수 있다.

학습에 대한 목표와 계획을 수립하는 활동은 의식적 노력을 통해 이루어진다. 하지만 학습 계획을 잡고 매일 2시간씩 1시간은 기술 습득, 30분은 독서, 30분은 리펙터링 연습 등과 같이 내용이 바뀌더라도 2시간이라는 학습 시간을 꾸준히 유지하도록 하면서 나만의 루틴을 만들어서 지속적인 학습을 하다가 보면 어느샌가 한층 더 성장한 나 자신을 마주할 수 있지 않을까 싶다.

명확한 목표 설정

goal

‘그릿’에서는 목표는 장기적인 목표와 중기적, 단기적인 목표가 있다고 한다. 각각의 목표별로 세우는 전략이 다른데 어떤 목표든 뚜렷하고 명확한 목표를 체계적으로 수립하는 것이 중요하다고 한다.

목표가 없는 꾸준한 학습은 동기부여도 되지 않을뿐더러 체계적인 발전을 이루기 어렵다. 방향을 잡기 힘들기 때문이다. 체계적인 노력이 없다면 어쩌면 우리가 하는 ‘열심히’하는 노력은 성공의 지름길이 되지 못하고 그저 자기만족으로 끝날 수도 있다. 지금 내가 하고 있는 학습이 단순히 ‘남들이 다 하니까 나도 해야만 할 것 같아서’와 같은 마음가짐으로 구체적인 목표 없이 그냥 책만 읽거나 하고 싶은 코드만 작성한다면 어쩌면 성장이라는 나의 궁극적인 목표와는 관련이 없을 수 있다.

긍정적인 자세

attitude

성공하는 사람들의 모습을 보면 긍정적인 마음가짐과 열정으로 가득한 것을 볼 수 있다. ‘그릿’에서는 성공하는 사람들의 특징은 ‘똑똑함’보다 꾸준한 ‘노력’이 더 많은 영향을 끼치고 이러한 노력에는 ‘할 수 있다’는 마음가짐이 필요하다고 말한다. ‘더 시스템’은 살짝 다른 관점에서 바라보는데 성공을 위해서는 긍정적인 마음가짐과 자기 확신이 중요한 요소로 작용한다고 한다. 결국 뚜렷한 목표를 세우고 이를 위해 긍정적인 마음가짐으로 지속적인 노력을 기울여야 한다는 것인데 여기에서 중요하게 작용하는 요소 중 하나가 바로 ‘자세’라는 것이다.

앞서 하기 싫은 것을 억지로 하는 게(?) 의도적인 학습이라고 했다. 이상하게 들릴 수 있겠지만 영어를 잘하려면 하기 싫은 영어단어를 외우는 노력을 기울여야 하고 근육운동을 할 때에도 가벼운 것을 드는 게 좋지, 무거운 것을 드는 것은 싫으니 ‘하기 싫은 것’을 하는 게 의도적인 학습이지 않나 싶다. 만약 여러분이 하기 싫은 것을 마냥 하기 싫어만 한다면 정신적인 피로감은 점점 쌓여만 갈 것이다. 오히려 나를 속이더라도 긍정적인 마음가짐을 가지면 (더 시스템에서는 ‘긍정선언’이라고 표현한다) 과학적으로 설명하긴 힘들지만, 긍정적인 효과를 가져올 수 있다고 한다.

‘그릿’에서는 이러한 마음가짐을 ‘성장형 사고방식’이라고 이야기한다. 사고방식을 개선하고 낙관적인 마음 가지를 가지면 역경을 극복할 수 있는 끈기가 생겨 결국 성공을 위한 발판이 된다는 것이다.

flow

개발 업무뿐만 아니라 모든 업무에 해당하겠지만 일을 하다 보면 막막하고 답답한 마음에 마냥 ‘안될 거야’, ‘이건 내가 할 수 없는 일이야.’, ‘너무 어렵고 복잡해’라는 생각이 드는 경우가 많다. 누군가는 이러한 마음가짐을 그대로 표출하며 그 일을 포기하거나 다른 사람에게 도움을 요청할 것이고 누군가는 긍정적인 마음가짐을 가지고 해결하기 위해 노력할 것이다. 우리는 이러한 자세를 가지기 위해 노력하고 긍정적인 자세를 기반으로 학습을 이어가면서 어려울 과제들을 차근차근 하나씩 해결해 나갈 수 있을 것이다.

건강

health

‘그릿’과 ‘더 시스템’ 두 책에서 모두 성장과 성공적인 삶을 위해서는 건강 관리가 필수라고 말한다. 신체가 건강해야 지속적인 학습과 집중도 높은 학습이 가능하기 때문이다.

우리가 흔하게 걸리는 감기에 걸렸다고 생각해 보자. 감기에 걸려있는 내내 우리가 계획했던 학습 루틴은 당연히 깨질 수밖에 없다. 이렇게 깨진 학습 루틴은 다시 나의 보편적인 루틴으로 돌아오기까지 다시 또 의식적인 노력을 요구하므로 한번 아프게 되면 얻게 되는 손해가 이만저만이 아니게 된다.

또한 꾸준히 운동하지 않아 체력이 저질(?)이라면 회사 일을 마치고 난 후 집에 가면 피곤함을 이기지 못해 학습은 고사하고 잠들기 바쁠 것이다. 육체적인 건강은 정신적인 건강에도 영향을 미치는데 체력이 좋지 않아 공부하지 못하는 것뿐만 아니라 건강하지 못한 정신은 집중력과 의식적인 노력을 방해하는 요소로 작용하게 되고 결국 우리의 성장에 좋지 않은 영향을 미치게 되는 것이다.

학습과 마찬가지로 운동도 의식적인 노력을 해야 하므로 매일 30분 만이라도 매일 당연히 수행하는 루틴에 포함해 장기적으로 유지 가능한 학습 루틴을 만들어내는 게 중요하다고 생각한다.

마무리

앞에서도 이야기하였지만, 이 글은 요즘 나의 가장 큰 고민 중의 하나인 경력상 목표에 대한 고민에서 시작되었다. 아직 ‘내가 가장 하고 싶은 게 무엇일까?’라는 질문에 대한 답은 찾지 못하였다. 그렇다고 노력을 멈추고 방황하고 싶진 않다. 그래서 최종 목표가 아닌 단기적, 중기적 목표를 수립하고 지속적인 학습을 통해 성장을 위한 발판을 하나씩 쌓아가다 보면 결국 내가 아직 찾지 못한 질문에 대한 답을 찾아낼 수 있지 않을까 기대한다.

처음부터 완벽할 순 없다. 지금 나의 최종 목표와 꿈을 명확하게 찾아내지 못하였더라도 성장을 위한 노력을 지속하다 보면 결국 원하는 바를 얻어낼 수 있지 않을까 생각한다.

나의 고민과 최근에 읽었던 책에서 얻은 지식을 바탕으로 글을 적다 보니 다소 두서가 없다는 느낌이 든다. 모쪼록 이 글을 읽은 분 중에 나와 비슷한 고민을 하거나 성장에 대해 고민하고 있는 분들이 있다면 도움이 되었길 바란다.