Published on

나를 프로그래밍 해보자

Authors
  • avatar
    Name
    불타는 라쿤들
    Twitter

🦡 작성자 : 혜원

🔥 인사이트 한줄 소개!

취준 때라 그런지 마인드컨트롤이 잘 되지 않는 요즘… 제가 존경하는 개발자인 테오가 블로그에 올려주신 글이 인상깊어서 가져와 봅니다! 개인적으로 읽으신 심리학 관련 책들을 프로그래밍적인 관점에서 해석하신 글인데 흥미로웠어요. 저도 심리학 교양을 들을 때 과제로 비슷한 걸 했었는데 그때 생각도 나고 신기하네요 ㅎㅎ 결론은 우리가 느끼는 감각들이 다 우리가 생각하기 나름이고, 그렇기 때문에 부정적인 감정들도 의식적으로 긍정적인 감정들로 치환할 수 있다는 내용이에요. 뻔한 내용일 수 있지만 저는 도움이 많이 되었던 것 같네요 👀

✅ 이런 분들 읽으면 좋아요!

✔️ 취준하느라 이런저런 감정이 휘몰아치시는 분들,,,

✔️ 부정적인 감정들을 어떻게 컨트롤하면 좋을지 고민이신 분들

🔎 본문 내용

임포스터 증후군 (Imposter Syndrome)

임포스터 증후군 : ‘가면현상’ 이라고 번역되는 이 말은 자신의 성공이나 현재 위치에 대해서 이건 진짜 나의 실력이나 참모습이 아니다며 언젠가 이 가면이 벗겨지고 제 형편없는 실력이 들통날지도 모른다는 두려운 심리 상태를 얘기합니다. 정리하자면, 자신의 성취를 자신의 능력과 연결시키지 못하고 자신의 능력을 낮춰서 생각하는 현상을 말합니다.

이런 심리학적 용어가 개발자와 관련된 글에 자주 등장하고 커뮤니티에 이러한 짤들과 공감을 받는 이야기라면 적어도 나한테만 이런건 아니라는 생각에 한편으로 위안이 되곤합니다. 특히 개발자라는 직업의 특성상 프로젝트의 성공 여부에 대한 성과의 차이가 극명한데, 프로젝트의 성공이 대부분 기술적 성공보다는 사업적 성공에 포커스가 되는 만큼 개발자의 기여여부가 온전히 반영이 되기 어려운 구조다보니 개발자라는 직업이 이러한 감정을 더 잘 느끼는 것 같습니다.

다행히 이런 감정의 폭이 위아래로 요동치며 왔다 갔다 하는 것은 결국은 적분(?)하면 0으로 수렴을 하는 것이기에 이러한 변화는 사실 꽤나 건강한 상태라고 할 수 있겠지만, 특정 상태에 너무 오래 머물거나, 특히 번아웃과 같이 힘든 상황이 오래 지속이 되면서 한번 내려가버린 자신감이 다시 올라오지 않을때는 상당히 괴롭습니다.

이 글은 그러한 심리적 문제에서 어떻게 극복을 하면 좋을까에 대한 내용을 적어보려고 합니다. 결론적으로 가장 이러한 문제를 극복하기에 가장 좋은 정답은 이미 여러분도 알고 있을 1) 운동을 하세요. 2) 그리고 취미를 가지세요. 입니다. 시대를 막론하고 애기하는 어른들의 애기는 사실 잘 틀리지 않습니다. (웃음)

개발자 입장에서 바라본 심리학, 뇌과학, 자기 계발서

저는 제가 개발자라서 그런지 몰라도 이러한 철학이나 심리학, 뇌과학, 자기 계발서 등을 읽다보면 이게 힐링이나 혹은 지식이나 학문, 혹은 진리로 들린다라기 보다는 하나의 ‘프레임워크’나 ‘패러다임’ 같은 느낌으로 읽게 됩니다. 가령 객체 지향 프로그래밍이나 함수형 프로그래밍, 혹은 MVI 아키텍쳐나 새로운 상태관리 라이브러리 혹은 클린코드나 리팩토리 책, 혹은 TDD 같이 말이죠.

뭐랄까 개발을 하는데 정답이 없긴 하지만 내가 해보니까 이런 방식이 더 좋은 거 같아서 이렇게 정리해봤어. 너도 이렇게 한번 해볼래? 이런 느낌이랄까요? 개발을 하는데 대신 인생을 살아보니까 라고 바꿔서 다시 읽어보셔도 큰 위화감이 없을 거라고 생각합니다.

여기저기 책에서 본 이론(관점)들 : 시스템1과 시스템2, 그리고 감정

Untitled

제가 본 '생각에 관한 생각’ 이라는 책에서는 우리가 흔히 ‘메타인지’ 와 ‘생각’이라고 들어본 2가지의 체계를 설명하는데 이 체계에 이름을 붙이는 순간 틀에 갇히게 되니 시스템1과 시스템2라고 부르겠다고 하였습니다. 저도 앞으로는 시스템1과 시스템2라고 언급을 하려고 합니다.

시스템1과 시스템2의 차이 : 백그라운드 프로세스와 포그라운드 프로세스

재미난 이야기들이 많은데 제가 하고 싶은 이야기의 본질은 이게 아니니 정리하자면, 우리는 2가지의 사고 체계 시스템1과 시스템2를 가지고 있다. 시스템1은 내가 의식하지 않아도 자동으로 반응하고 동작하는 생각이며 시스템 2는 내가 의식해서 행해지는 생각을 의미한다는 것을 기억해주세요.

시스템1과 시스템2 간의 상호작용

시스템1과 시스템2에 대해서는 운동선수나 프로게이머들의 반응속도, 혹은 개발의 숙련까지도 설명할 수 있습니다. 처음에는 우리가 무언가를 할 때에는 의식적으로 해야하고 원하는대로 되지 않습니다. 이때는 시스템2만 동작하며 시스템1은 오히려 방해를 합니다. 그러나 반복적으로 개발 혹은 훈련을 하다보면 시스템2의 행동이 시스템1으로 옮겨가게 되면서 무언가를 잘 할 수 있게 됩니다. 잘하기 위해서 충분한 반복과 시간이 필요한 이유도 여기에 있습니다.

시스템1은 감각적입니다. 말로는 표현할 수 없지만 분명히 다른 신체변화가 감각들이 느껴집니다. 웃을 때 찡그릴때, 얼굴을 일그러뜨릴때, 우스꽝스러운 표정을 지을 때 말로 설명할수는 없지만 분명히 다른 감각이 느껴집니다.

반대로 시스템2는 이성적이고 언어적입니다. 우리는 이러한 감각에게 특별한 감정의 언어를 붙이게 됩니다. 그리고 이러한 감정은 특별한 생각을 불러 일으킵니다. 시스템2는 시스템1에서 만든 감각을 최대한 언어로 이해하고 해석해서 이성적인 생각이라는 것을 만들게 되는데 이를 우리는 ‘감정’이라고 부릅니다.

재밌는 사실은 시스템1의 감각을 사실 우리는 제대로 모른다는 점에 있습니다. 분명히 실제하는 감각이고 생생하게 느껴지는 감각인데 우리는 이것을 이해하지 못하기 때문에 시스템2에서 이러한 감각을 언어로 설명을 해야만 비로서 감정의 형태로 발현이 된다는 점입니다. 이 점은 굉장히 중요합니다. 이 것의 진정한 의미는 감정에서 감각은 실제하나 실제 우리가 느끼는 감정이라고 하는 것은 주관적인 이성적인 해석으로 인해 발현한다는 점입니다.

우리는 의식적으로 같은 감각을 다르게 해석할 할 수 있다 : 긴장과 설렘의 차이

우리가 긴장된 상태라는 말하는 순간은 사실 고도의 각성상태입니다. 내가 평소와는 굉장히 중요한 것을 해야 되기 때문에 평소와는 다른 신호를 보내고 우리 몸에서 반응을 하는 것입니다. 그리고 이러한 과정은 시스템1에서 하는 것이기에 우리는 이러한 감각을 뭘 의미하는지 사실 정확하게는 모릅니다. 우리가 긴장을 하는 이유는 앞서 말했듯 평소와는 다른 굉장히 중요한 순간이니 조금 더 잘할 수 있게 준비하라고 신호를 보내는 것이라고 했습니다. 말 그대로 우리게에 ‘긴장감’을 불어 넣는 것이지요.

다시 생각해보면 이것을 어떻게 받아들이느냐, 즉 이 감각을 어떻게 해석하느냐에 따라서 내가 면접장에 들어가기전 감정과 생각을 얼마든지 변화시킬수 있습니다. 이러한 감각을 불안이라고 해석하면 정말로 불안해지고 이러한 감정을 각성, 변화, 설렘, 초조 얼마든지 다른 이름으로 해석을 할 수 있습니다.

어떻게 바꾸면 좋을까? : 좋은 코드 예시

분노 -> 열정

우리는 분노라고 하는 감정 대신 ‘열정’ 이라는 감정으로 치환해서 해석할 수 있습니다. 분노라는 감정과 ‘열정’은 순간적으로 에너지를 폭발적으로 만들어내는 것과 유사한 면이 있습니다. 내가 분노라는 감정이 느껴지는 순간에는 이를 감정을 굴복시키는 커뮤니케이션 도구로 발산하지 말고 더 열정적이 될 수 있는 감정으로 치환해보세요.

스트레스 -> 도전의지

내가 스트레스를 받고 있다는 것을 인지하면 이를 극복하는 것을 도전목표로 삼아보세요. 내가 성장을 할 수 있는 만큼까지 도달했다는 증거이기에 자랑스러워도 하셔도 좋습니다.

열등감, 질투 -> 향상심, 자각, 영감, 감탄

그렇지만 우리는 여기서 느껴지는 시기와 질투의 감각이 아니라 나도 저런것들을 하고 싶어 했구나 라는 자각의 감정으로 생각해보세요. 또한 이 분야에서 저렇게 까지 성공을 할 수 있구나 저런 길도 있을 수 있구나 하는 영감의 감정으로 바꿔보세요. 그러면 진정으로 그 사람에게 감탄할 수 있고 롤모델을 삼거나 열등감이 아니라 배움의 향상심으로 치환할 수 있습니다.

답답함 -> 문제의식과 창의력

이 상황이 너무나 답답하다고 느껴지나요? 그렇다면 개발자로써 창의력을 발휘할 시간입니다. 답답하는 감정은 내가 나서서 새로운 방식으로 해결해야겠다는 창의적인 감정을 발휘할 기회입니다. 이러한 답답함을 해결하는 과정에서 문제의식을 느끼고 해결하는 것이 바로 개발자의 역할입니다.

거부감, 혐오 -> 자기인식

내가 어떤 사람이 굉장히 싫을 수 있습니다. 혹은 어떠한 상황이나 결정이 너무 너무 싫을 수가 있습니다. 그럴때에는 그러한 거부감에 집착하지 말고 자기인식, 자기이해를 할 수 있는 좋은 경험이자 감정이라고 생각해보세요. 나라는 사람은 이러한 것들을 싫어하구나. 나는 이러한 가치를 가지고 있구나. 개발자에게는 자기 자신을 이해하는 메타인지가 굉장히 중요하다고 합니다. 거부감과 혐오감이 느껴질 때에는 나는 이런 것들을 싫어하는 사람이었구나를 인지하는 기회라고 생각해보세요.

두려움 -> 경계

어떤 것을 무섭다라는 감정이 들때에는 무서움에 잠식되지 말고 이 감정을 이용해서 더 경계심을 치환시켜서 더 꼼꼼히 체크를 해야하는 감정으로 활용해보세요.

피로감 -> 재충전, 휴식과 일의 경계선 발견

개발자로 살다보면 굉장히 피로감을 느낄 수 있습니다. 때로은 이러한 피로감을 방치한채로 업무를 하다보면 번아웃으로 이어지기 마련입니다. 이러한 피로감이 느껴질 때에는 피로감에 불평하는 감정이 아니라 쉬어야 하는 순간을 알려주는 신호의 감정이라고 생각해보세요. 나는 스스로 12시간 일을 할 수 있는 사람이라고 생각했는데 사실은 8시간밖에 일을 못하는 사람이었구나라고 생각할 수 있는 기회로 생각해주세요.

무력감 -> 통제할 수 있는 것의 자각

내가 어떤 무력감을 느낄 때에는 내가 무력하다고 느끼는게 아니라 내가 통제할 수 없는 것에 집착했다는 사실을 깨닫게 해주는 신호라고 생각해보세요. 우리는 생각보다 내가 통제할 수 있는 것과 통제하지 못하는 것에 대한 분변력이 없습니다.