[서평] 개발자 오늘도 마음 튼튼하게 성장하기
서평 - 개발자 오늘도 마음 튼튼하게 성장하기
2024-12-01
💡 본 서평은 글또 커뮤니티와 길벗 출판사의 후원을 받아 작성되었습니다.
책을 읽기 전에
2024년은 학부를 졸업하고 개발자로 현업에 뛰어든지 2년째 되는 해였습니다. 훌륭한 문화를 가진 개발팀에 합류하여 주니어로서 하기 힘든 다양한 경험을 할 수 있었고, 선배 개발자들의 조언도 많이 들을 수 있었던 것 같습니다.
하지만 마음 속에는 항상 더 큰 조직에서 시장에 큰 영향력을 주는 역할을 하고 싶다는 생각이 있었고, 언제 찾아올지 모르는 기회를 잡기 위해 취업 이후에도 거의 하루도 빠짐 없이 키보드를 손에서 놓지 않았습니다.
그러나 이렇게 집착에 가까울 정도로 매일 퇴근 후 자리에 앉았던 행동은 어쩌면 커리어에 대한 조급함과 불안함에서 생긴 자기 보호 수단이었을지도 모르겠습니다. 2년 동안 그래서 뭘 했는지 돌아보면 사실 크게 기억 나는게 없으니까요.
개발자 오늘도 마음 튼튼하게 성장하기라는 책은 이런 저의 상황에 딱 맞는 책으로 보였습니다. 개발자로 커리어를 시작한 누구나 다 높은 연봉을 받으며 존경받는 위치에 오르길 원합니다. 하지만 그것은 단순히 모니터 앞에 오래 앉아있는 것만으로는 이룰 수 없습니다. 저자는 이러한 문제점을 지적하며 서론에서 자신 있게 이 책에서 소개하는 방법을 따라 하면 프로그래밍 경력이 완전히 달라질 것이라고 합니다. 그래서 저는 이 책이 지난 2년 동안의 개발자 커리어를 돌아볼 수 있는 기회가 될 것이라고 생각하며 첫 장을 펼쳤습니다.
왜 미디어가 가장 큰 적일까
이 서평을 작성하는 지금 이 날에도 저는 총 38번 인스타그램 앱을 켰습니다. 1시간에는 반올림하면 두 번 꼴로 인스타그램을 켠 셈이죠. 그렇다는 것은 온전하게 집중한 한 시간이 없다는 의미로도 볼 수 있을 것 같습니다.
개발자는 하루의 절반 정도는 컴퓨터 앞에서 시간을 보냅니다. 개발자는 컴퓨터로 주로 코딩을 하지만 사실 컴퓨터는 유튜브, 인스타그램 등에 접속하기 아주 좋은 도구입니다. 그렇기 때문에 개발자는 소셜 미디어 중독에 특히 취약합니다. 컴퓨터로 일을 하다가도 “아 이제 조금 쉬어볼까” 하면서, 일을 하던 컴퓨터로 유튜브를 보고 있으니까요. 컴퓨터가 일을 하기 위한 도구이기도 하지만 휴식을 위한 장난감이 되기도 하기 때문에 이 둘을 명확하게 구분 짓기가 사실 불가능에 가깝습니다.
저자는 그렇기 때문에 일을 하는 기기에서는 소셜 미디어에 로그인하지 말라고 합니다. 또한 스크린 타임, 브라우저 도구 등을 사용하여 소셜 미디어 사용을 제한하거나 추천 컨텐츠 따라가지 않기 등의 조금은 따라하기 어려운 제안을 하기도 합니다.
지금 저의 상황이라 아주 공감이 가면서도 과연 내가 저자가 제안한 방법으로 소셜 미디어 중독에서 빠져나올 수 있을까라는 의구심도 함께 드는 장이었습니다. 물론 시도는 해봐야겠지만서도요. 😉
당신의 동맹군 - 딥 워크와 몰입 상태
우리를 더욱 뛰어난 개발자로 만들어 줄 특별한 기술은 딥워크 상태로 들어가는 방법을 아는 것이라고 소개하며 본 장이 시작됩니다. 딥 워크는 현재 작업에 온전히 집중하는 것입니다. 그리고 딥 워크에 적합한 정신 상태가 있습니다. 정신 상태라는 말이 조금 거창하게 들릴 수 있지만 저자는 그런 정신 상태에 들어가는 능력이 습관에 지나지 않으며 그런 상태에 자유자재로 들어가는 방법을 익힐 수 있다고 말합니다.
딥 워크라는 용어만 들으면 심리학적 용어인가 싶습니다. 그런데 신기하게도 딥 워크는 컴퓨터 과학에서 유래한 용어입니다. 조지타운 대학의 컴퓨터 과학 부교수 칼 뉴 포트의 유명한 저서 제목입니다. 칼 뉴 포트는 다음과 같은 이유로 딥 워크하는 능력을 중요하게 생각합니다.
신경제에서 승자가 되기 위한 핵심 능력은 두 가지다. 첫째가 어려운 일을 빠르게 익히는 능력이고 둘째가 탁월한 성과를 내는 능력이다.
딥 워크하는 능력이 좋다는 것은 알겠는데 그렇다면 어떻게 해야 딥 워크하는 능력을 가질 수 있을까요? 저자는 이럴 때 몰입 상태가 필요하다고 말합니다. 몰입 상태에 들어가는 습관을 기른다면 딥 워크하기 가장 쉬운 접근법이라고 소개합니다.
책에서 소개된 몰입 상태에 들어가는 방법 중 가장 와닿는 방법은 ‘그냥 해라’ 였습니다. “정말 몰입해야지”라고 다짐하며 스스로에게 스트레스를 주기보다는 그냥 하다보니 어느 새 몰입 상태에 들어가는 것이죠. 생각해보면 그런 것 같습니다. 아무 생각 없이 시작하다보면 어느 새 몰입해있고 시간은 훌쩍 건너가 있는 경험을 누구나 해봤을 것입니다. 딥 워크하려고 노력하지 말고 일단 해봅시다!
은밀하게 잠입한 스파이 - 내면의 방해꾼을 감지하고 극복하기
난 훌륭한 프로그래머가 아니다. 단지 훌륭한 습관을 기른 괜찮은 프로그래머일 뿐이다. by 켄트 벡(Kent Beck)
프로그래머로서 진짜 두각을 나타내려면 자기 통제력 습관을 길러야 합니다. 프로그래머는 일을 미루고 싶은 충동을 자주 경험합니다. 특히 처음 해보거나 어려운 일이라면 더욱 그렇습니다. 이는 뇌가 본능적으로 에너지를 아끼고 싶어하기 때문입니다. 하지만 이렇게 미루는 행동은 프로그래머에 있어서 특히 더 최악입니다. 프로그래머는 끊임없이 새로운 문제를 마주하고 이를 풀어내야 합니다. 그렇기 때문에 눈 앞에 어려운 문제가 있다고 해서 이를 미루고 유튜브나 보러가는 행동은 본인 커리어에 파괴적인 영향을 미칩니다.
처음은 물론 어렵습니다. 우리가 인생에서 맨 처음 양치를 하는 순간에는 분명 양치질을 하는 방법을 몰랐을 것입니다. 하지만 지금은 어떻죠? 본인이 왼쪽부터 양치질을 시작했는지 오른쪽부터 시작했는지조차도 기억나지 않는 본능적으로 양치질을 하는 습관이 생겼을 것입니다. 코딩이나 새로운 기술을 배우는 행위도 마찬가지입니다. 처음엔 분명 어렵기 때문에 미루고 싶습니다. 하지만 이를 반복적으로 시도하다보면 어느 순간 뇌는 그것을 어렵다고 느끼지 않게 됩니다. 이렇게 습관이 형성되는 것입니다.
하나 인상 깊었던 구절이 있었는데, 미루고 싶고 안하고 싶다는 부정적인 생각이 드는 순간에 일부러 생산적인 일을 찾아서 하는 것입니다. 그렇게 몇 번 하다보면 부정적인 생각이 드는 순간이 오히려 생산적인 일을 시작하는 트리거가 됩니다. 마치 힘들고 짜증나는 일이 있을 때마다 힘을 쓰러 헬스장에 갔더니, 이제는 부정적인 생각이 지배하는 날에는 퇴근 후에 헬스장에 가는 습관이 생겨버린 저의 모습과 같네요.
에코 체임버는 경력에 어떻게 도움이 되는가
가장 많은 시간을 함께 보내는 다섯 사람의 평균이 당신이 된다. by 짐 론(Jim Rohn)
습관은 목표를 비롯해 인생에 있어 특별한 모든 것을 달성할 수단을 제공합니다. 하지만 습관을 기르려면 노력해야 하고 노력할 이유를 제공하는 것이 성장 마인드셋입니다. 성장 마인드셋이 있어야 목표를 달성하고 이미 가진 것 이상으로 나아갈 수 있습니다. 에코 체임버는 강력한 성장 마인드셋을 일구고 성장시키는 한 가지 방법입니다.
마인드셋은 평소 자주 대화하는 사람에 따라 달라집니다. 우리의 뇌에는 거울 신경 세포가 있고 우리는 주변 사람들, 특히 가장 많은 시간을 보내는 사람들과 친밀한 관계를 형성하도록 진화했습니다. 뇌는 거울 신경 세포를 통해 잠재의식 수준에서 우리 행동을 조절해서 가장 많이 상호작용하는 사람들과 닮아가게 합니다.
그렇다는 건 훌륭한 프로그래머로 성장하기 위해서는 훌륭한 프로그래머들이 많은 환경에 있어야 유리하지 않을까요? 가장 많이 상호작용하는 상대를 신중하게 고르는 것은 매우 중요하고 그렇게 할 수 있는 가장 효과적인 방법은 올바른 생각으로 계속 반향을 일으킬 에코 체임버를 만드는 것입니다.
혼자서 인강을 보거나 책을 읽으면서 개발 공부를 하는 것도 물론 좋습니다. 하지만 결코 훌륭한 개발자로 성장하기는 어렵습니다. 밖으로 나와 훌륭한 커리어를 쌓아가고 있는 개발자들을 만나는 기회를 만들어야 합니다. 그런 집단에 들어갈 수 있다면 아주 훌륭한 에코 체임버가 되는 것이겠죠.
적을 제압하기 - 소셜 미디어 유리하게 활용하기
다시 한 번 프로그래머에게 있어 소셜 미디어의 위험성에 대한 내용이 나옵니다. 하지만 소셜 미디어를 활용할 수 있는 방법도 곧이어 나옵니다. 인스타그램을 사용하다보면 사람들이 소위 말해 ‘알고리즘’에 대해 많이 이야기하는데 이것을 활용하는 것입니다. 알고리즘을 의도적으로 커리어에 유리한 방향으로 조작할 수 있따면 소셜 미디어를 유용하게 사용할 수 있지 않을까요? 일부러 영감을 주는 글을 자주 올리는 프로그래머의 글을 자주 보고, 단순히 오락적인 컨텐츠만 제공하는 페이지는 차단하는 것입니다. 그렇게 하다보면 소셜 미디어는 유용한 글이 가득 차있는 보물 창고가 될 것이고 소셜 미디어를 긍정적인 에코 체임버로 만들 수 있습니다.
또한 소셜 미디어를 셀프 브랜딩의 수단으로 사용할 수 있습니다. 주로 링크드인이 이런 수단으로 사용하기 좋은 소셜 미디어입니다. 링크드인에 주기적으로 생산성 있는 게시글을 게시하며 프로필을 관리한다면 채용 담당자의 눈에 띄기도 쉬울 것입니다.
극한의 오너십 - 프로그래머가 미국 해군 네이비 실에서 배울 수 있는 것
극한의 오너십은 자기 주변 환경에서 일어나는 모든 일에 책임을 진다는 개념입니다. 이 개념이 프로그래머에게 무슨 상관이 있는지 의문이 생길 수 있습니다. 만약 당신이 새로운 기능을 개발하는 개발팀에 속해 있는데, 릴리즈를 담당하는 개발팀에서 실수를 하여 프로덕트가 릴리즈가 되고 있지 않다면 어떻게 해야 할까요? 물론 당신과 상관 없는 팀이기 때문에 계속해서 새로운 기능을 개발할 수도 있을 것입니다. 하지만 정말 상관 없는 팀은 아닐 것입니다. 프로덕트가 릴리즈가 되어야 거기서 피드백을 받고 다시 새로운 기능을 개발할 수 있을테니까요.
훌륭한 프로그래머는 코드만 작성하는 사람이 아닙니다. 비즈니스 수익에 도움을 주는 일을 하는 사람입니다. 그렇기 때문에 훌륭한 프로그래머가 되기 위해서는 극한의 오너십을 갖는 것이 중요합니다. 자신과 상관 없어보이는 분야더라도 극한의 오너십을 가지고 비즈니스를 위해 도움을 준다면 당신의 커리어가 소프트웨어 아키텍트 또는 테크 리드로 발전하는 데 도움을 줄 것입니다.
수도자 정신은 성공적인 프로그래머가 되는 데 어떤 도움을 주는가
수도자 정신이란 어떤 목표를 성취하고자 하는 사람이 목표 달성에 도움이 되는 활동으로 채워진 생활을 설계하는 걸 가리킵니다. 그리고 목표 달성에 도움이 되지 않는 모든 활동은 완전히 배제합니다.
이러한 수도자 정신을 시도해 보고 싶을 때 그 효과를 최대로 높일 여러 방법이 있습니다. 하지만 그 중에서도 잘 설계된 루틴을 갖는 것이 중요합니다. 예를 들어 매일 같은 시간에 일어나서 한 시간 동안 알고리즘을 공부하면 결국 그 행동을 자동으로 하게 됩니다. 그러나 수도자 정신에 따라 일을 하는 것은 단순히 루틴을 따르는 것이 아닙니다. 모든 일을 최선의 방법으로 하려고 노력하는 것입니다. 그리고 바로 이것이 프로그래밍 기술을 가장 빠르게 익히는 올바른 습관을 얻는 방법입니다.
그렇다고 루틴에 아무거나 넣어서는 안됩니다. 프로그래밍은 어렵고 프로그래밍 분야에서 새로운 걸 공부하는건 이보다 더 어렵습니다. 그래서 프로그래밍 기술을 발전시키기 위한 활동은 멘탈 에너지를 고갈시킵니다. 그래서 루틴에 업무 외적인 활동을 넣을 때는 신중하게 골라야 합니다.
앞에서 루틴을 강조하였지만 루틴에 압도돼서는 안됩니다. 프로그래머는 수도자가 아니니까요. 루틴만 생각하다가는 하루가 루틴으로 가득 찰 것입니다. 루틴 사이에 여가 활동 시간을 넣어줘야 합니다. 여가 활동은 시간 낭비가 아닙니다. 당신이 더 효과적으로 일할 수 있게 도와주는 도구입니다. 운동과 관련된 비유를 들자면 근육은 체육관에서 훈련할 때가 아니라 휴식할 때 성장합니다.
더불어 하루 종일 루틴을 엄격하게 따를 필요는 없습니다. 엄격한 일정은 업무 시간에만 지키고 저녁 시간에는 즉흥적으로 하고 싶은 일을 위한 여유를 만들어도 상관 없습니다.
수도자 정신은 훌륭한 프로그래머가 되기 위한 길 중 하나일 뿐이지 반드시 지킬 필요는 없습니다. 항상 루틴에 집착하던 저로서는 꼭 그러지 않아도 된다는 위안을 주는 듯한 장이었습니다.
마이크로태스크로 미루는 습관 극복하기
어떤 개발자가 잘하는 개발자일까요? 저는 사이즈가 크고 어려워보이는 일을 작게 나누어 쉬워 보이게 처리하는 개발자가 잘하는 개발자라고 생각합니다.
보통 어떨 때 일을 미루게 되나 생각하면 그 일의 사이즈가 크거나 어려워보일 때 일을 미루게 됩니다. 뇌가 본능적으로 에너지를 소모하는 일을 피하는 것이죠. 그래서 어떤 업무를 시작할 때는 처음부터 완벽한 하나의 계획을 세우려기보다는 업무를 잘게 나누어서 계획하는 것이 좋습니다. 그리고 처음에 짰던 그 계획은 언제든지 바뀔 수 있다는 생각을 하고 있는 것이 좋습니다. 처음부터 완벽한 하나의 계획을 세우는 것도 불가능하지만, 처음부터 완벽하게 쪼개진 계획을 세우는 것도 불가능합니다.
잘게 나눠진 업무를 하나씩 처리하면 눈 앞에 해야하는 일과 그 결과가 보이기 때문에 성취감을 얻기도 좋습니다. 또한 일을 하다보면 그 다음 해야하는 일이 바뀌기도 합니다.
크고 어려워보인다면 미루기보다는 일단 쉬워 보이는 일부터 시작해보세요. 일단 하다보면 생각보다 별거 아닌 일일지도 모릅니다.
지적확인 환호응답 - 존에 쉽게 들어가는 일본 기법
일본에서 고안된 지적확인 환호응답이란 단조로운 반복 잡업에 온전히 집중하도록 고안되었습니다. 일본에서는 이 기법이 철도업이나 제조업처럼 안전이 중요한 산업에서 일상적으로 활용됩니다. 일본의 기차역에 가면 기차를 위해 일하는 여러 역무원이 끊임없이 혼잣말하면서 손짓을 하고 있다고 합니다. 이러한 행동은 역무원들이 너무 지루한 나머지 아무렇게나 움직이며 혼잣말하는 것이 아닙니다. 오히려 프로토콜을 정확히 지키고 있는 중입니다. 그리고 이 프로토콜은 이들이 지루해지거나 중요한 세부사항을 놓치지 않도록 특별히 고안된 것입니다. 그렇다면 이러한 지적확인 환호응답이 집중을 유지하는 데 효과적인 이유는 무엇일까요?
그 이유는 바로 특정 작업을 하도록 인체의 여러 시스템을 조정하면 자동 조종 모드가 꺼지기 때문입니다. 자동 조종 모드는 앞에서도 등장하지만 무의식 중에 하는 양치질 같은 행위를 말합니다.
그렇다면 프로그래밍에 지적확인 환호응답을 적용하는 방법은 무엇일까요? 바로 작성하고 있는 코드를 가리키며 말을 하며 작성하거나, 자신이 진행하고 있는 개발 프로세스를 소리내어 말하는 것입니다. 물론 사무실에서 이것이 불가능할 것이라는 것을 저자도 알고 있습니다. 하지만 저자는 실리콘밸리에서 이 방법을 채택하여 성공한 팀의 사례를 듭니다. 지적확인 환호응답이 팀의 문화로 자리 잡혀 있다면, 지적확인 환호응답이 일상인 에코 체임버가 형성되어 있다면 소리내어 코딩하는 모습이 이상한 사람으로 보이지 않을 것이라고 말합니다.
지금 제가 일하고 있는 팀에도 혼잣말을 하면서 손가락으로 화면을 가리키며 개발을 하시는 분이 계시는데, 어쩌면 이 분은 이 방법을 본능적으로 알고 실행하고 계신 것일지도 모르겠습니다. 😁
뽀모도로와 타이머로 더 쉽게 일하기
뽀모도로 기법은 이미 많이 알려진 기법입니다. 타이머를 이용해서 딥 워크하는 시간을 조절하는 것입니다. 모두가 알다시피 하루종일 딥 워크하는 것은 불가능에 가깝습니다. 특히 프로그래밍은 많은 에너지를 소모하는 작업이기 때문에 더더욱 그렇습니다. 딥 워크 상태가 아님에도 자리에 앉아있는 것은 가짜로 일을 하고 있을 확률이 높습니다. 그렇기 때문에 타이머를 가지고 딥 워크할 시간을 정해두는 것입니다. 또한 뽀모도로 기법을 이용하면 일을 미루는 습관을 물리치는데 도움을 줍니다. 스스로에게 “이 만큼만 집중하면, 저만큼 쉴 수 있어” 라고 인식시켜 주는 것이죠. 자연스럽게 일을 미루지 않고 당장 하게 됩니다.
현재 일하고 있는 사무실에도 종종 뽀모도로 타이머를 사용하고 계시는 분들을 볼 수 있습니다. 뽀모도로 타이머에 맞게 휴식 시간을 갖고 계시는 분들의 이야기를 들어보면 오랜 시간 동안 집중해서 코딩하다보면 토끼굴에 빠져 처음 의도와 다르게 코딩하고 있거나, 이상한 길로 빠질 확률이 높은데 뽀모도로 타이머를 사용해서 잠깐 쉬다오면 토끼굴에 빠질 확률이 현저하게 낮아진다는 후기를 들을 수 있었습니다. 언젠가 저도 한 번쯤 시도해봐야겠다 싶었는데 아직까지 해보고 있지 않은 방법입니다.
책을 덮으며
개발자 오늘도 마음 튼튼하게 성장하기는 능력있는 개발자가 되기 위한 10가지 제안이 담겨있는 책이었습니다. 이미 알고 있는 내용도 많았지만 실화나 인용구 등을 자주 제시하면서 더 와닿는 내용이 많았습니다. 특히 소셜 미디어를 활용하여 긍정적인 에코 체임버를 구축하라는 제안은 꼭 해봐야겠다는 생각이 들었습니다.
개발자 커리어를 시작하고 2년 동안 너무 빨리 잘하고 싶은 마음에 무리한 루틴을 세우거나, 무리하게 오랫동안 집중하려는 습관이 있었습니다. 자연스러운게 아니라 억지로 하다보니 번아웃이 오는 순간도 꽤 있었고, 성장의 밀도도 높지 않았습니다. 하지만 이 책을 읽고 지금까지 저의 모습이 잘못됐다기보다는 누구나 이럴 수 있고, 이제는 잘할 수 있는 방법을 알았으니 이 방법을 하나씩 시도해보고 체득하여 훌륭한 개발자 커리어를 만들어 갈 수 있을 것이라는 자신감도 생겼습니다. 자신감에서 그치지 않고 내일 당장부터 시작해보려고 합니다.