본문 바로가기

Tuna

[Life hack] 문과생이 10일간 C언어 공부를 해봤다. 앞으로 공부 계획은?

728x90

벌써 퇴사를 한지 2주일이 넘어 2주+ n일이 되었다. 새삼스럽게 퇴사하기 전의 일들이 너무 옛날 같이 아득하게 느껴진다. 퇴사할 때즘엔 C언어를 공부하고 싶어서 일하는 와중에도 계속해서 찾아보고 엉덩이를 들썩거리고 에타에서 강의평을 읽고 책을 중고거래로 두권이나 구입하는 패기가 있었는데 공부한지 어연 2주일이 다 되어 가는 지금, 나는 어느정도로 발전했고, 앞으로는 얼마나 발전할 수 있을까? 내가 2주간 '집중', '효율', '공부'와 같은 것들을 달성하기 위해서 실천한 것들과 느낀 것들에 대해 이야기해보려 한다.


나의 공부 공간


1. 셀프 동기부여 아침루틴 :
스스로 동기부여를 할 수 있는 자기암시 / 명언과 같은 걸 읽거나 듣는 루틴을 만들어보자.
오늘 하루도 내 계획대로 잘 보낼 수 있을 거라는 생각을 가지면
바로 그 아침부터 할일을 줄줄이 비엔나처럼 하게 된다.


공부를 시작한 첫번째 1주일간은 굉장히 열의에 가득차있었다. 회사를 다닐 때 아침 6시~6시 30분에 기상해야하는 루틴이었기에 그대로 일어나서 일어나자마자 공부를 해야겠다는 계획을 세웠다. 그러다가 여러 습관에 관한 영상을 찾아보게 되었고, 드로우앤드류님의 영상을 보고 나도 자기암시 아침루틴을 계획했다. 그리고 그 자기암시를 듣는 습관 이후에 꼬리물기로 여러 습관을 세트로 묶어놓았고, 그걸 한번에 이어서 끝낸다는 생각을 가졌다. 그래서 아침에 일어나자마자 녹음해 둔 자기암시 음악을 들으면 그 뒤로는 자연스럽게 다른 습관들이 실행 되었고, 아티클을 읽은 후 마지막으로 오늘 하루의 계획을 세우는 아침루틴을 끝내면 그 날 하루를 잘 보낼 수 있게 되었다.

2. 계획이 제대로 지켜지지 않았을 때의 마인드는 긍정적으로! :
"난 역시 이것도 못해(X)"
"작심삼일도 10번하면 작심삼십일이야. 내일은 또 잘해봐야지!(O)"
누구나 자신이 세운 계획은 지키기 어려운 게 당연하다. 어려움이 왔을 때 견디는 게 제일 힘들다.


그렇게 아침루틴과 함께 일주일간은 굉장히 열의있게 보냈던 것 같다. 시간 날때마다 성공한 사람들에 대한 이야기도 많이 찾아보고 공부도 매일매일 열심히 해나가고! 그런데 이제 배열과 포인터라는 단원에 부딪혀서 그런건지, 아니면 1주일간의 약발이 떨어져서 그런지 심리적으로 지치더라. 이럴 때 "난 역시 쓰레기야"라고 생각하면서 세웠던 목표를 접으면 안된다. 누구나 목표를 이루는 게 힘들다는 것을 알아야한다. 누구나 사실 목표를 이루는 과정에서 방해물과 장애물이 온다. 그럴 때마다 그걸 극복하는 사람이 목표를 이루는 것이다. 장애물이나 방해물이 왜 나한테 왔지라고 생각하기보다, 이건 방해물이야! 내가 이루고 싶은 건 이거니까 지금 이 상황에선 이렇게 시도해보자. 이 ##시간만 견뎌보자. 등의 목표 달성을 위한 추가 (필수) 액션 플랜을 또 짜보면 좋다. 예를 들어 나는 늦게 일어나더라도, 그게 설령 오후가 되었더라도 '아침 루틴'은 꼭 지키자라는 식의 액션플랜을 짰고, 그걸 바로 다음날에 지키려고 노력했다. 늦게 일어나도 아침루틴은 꼭 하면서 남은 하루라도 알차게 보낼 수 있었다는 경험을 통해서 그 이후로도 희망을 가지고 늦게 일어난 것에 대한 죄책감을 많이 느끼고 하루를 날려버리진 않을 수 있었다.

3. 순간의 감정에 휩쓸리지말자.
번아웃이 온 것 같고, 왜 해야하는지에 대한 의문이 든다면
과거에 내가 이 목표를 세운 이유에 대해서 다시 한번 돌아본다.
그러기 위해서는 매일 생각이나 다짐을 기록을 해두는 게 좋다.


그러나 이제 늦게 일어나더라도 아침루틴을 지키자는 마음도 약해졌는지 근 3일정도간 아침 혹은 저녁에 유투브를 계속 보고 있는 나 자신을 발견하게 되었다. 물론 너무 절망할 필욘 없다. 어제도 아침에 일찍 일어나서 저녁이 되기 전까지 열심히 버티려고 굉장히 노력하기도 했으니까. 아직은 희망이 있다고 생각한다. 작심삼일이긴 하지만, 작심삼일을 여러번 반복하다보면 어느샌가 습관이 되고 루틴이 될 것이다. 작심삼일을 포기하지 않고 계속 시도할 수 있느냐. 작심삼일로 되어버렸지만 또 내일 다시 그 작심을 할 수 있느냐는 마음가짐만 있으면 될 것 같다. 나는 매일 노션페이지에 캘린더로 해놓은 내 일기와 같은 것들을 다시 보면서, 1주일 전엔 이렇게 열심히 살았구나, 내가 퇴사하기전엔 이렇게 C언어를 공부하고 싶은 마음이 컸구나 등을 알 수 있었고 내일 또 다시 작심을 할 수 있는 마음가짐을 되찾았다.

4. 목표를 이룬 그 순간을 생각하면서 지금을 버텨내라.
언제나 처음은 힘들다. 하지만 조금 성장하고 나면 재미가 붙으면서 지금의 힘듦은 아무렇지 않아질 것이다.


이런 순간은 자주 올 것이다. 늘 새로운 것을 시도하거나 배울 때마다 나는 이런 순간을 경험했고, 늘 똑같이 나는 도망쳤다. 그때의 생각은 지금 생각과 달랐기에 도망칠 수밖에 없었는지도 모른다. (그게 최선이라고 생각했었다.) 하지만 이제는 관점이 달라졌고 태도가 모든 것을 바꾼다는 신념을 가지게 되었다.

예전엔 머리에 공부가 안 들어오고 지금 배우고 있는게 정말 무슨 소리인가 싶으면 바로 '내가 집중이 안 되어서 장소를 바꿔야겠다'라고 생각하고 집으로 이동했을 것이고, 집으로 이동해서도 그 문제는 여전히 어렵기 때문에 공부를 이어나가지 못했을 텐데. 어제는 집중을 못하더라도 내가 목표한 시간이 있었기 때문에 어떻게든 도서관에서 남아 버티려고 애를 썼다. 그리고 목표도 "토해볼 때까지 프로그래밍을 해보고 안 맞다고 선언하기" 라고 다짐도 했었기에 토나오고 머리가 아픈게 지금 목표를 이루기 위한 거라고 생각했다. 서서공부하기도 하고, 문제를 푸는데 너무 안 풀려서 강의라도 들어보기도 하고, 이 문제집이 어려우면 저 문제집을 풀어보기도 하고. 그렇게 시도를 한 것이 그런 태도를 가지는 것이 중요하다.

이게 안 되면 이런 방향으로 해볼까라는 생각, 뇌가 말하는 유혹 (집에서 하면 잘 되지 않을까?) 은 종종 내 기대와는 다르게 틀리는 것 같다. 그냥 지금의 감정이 힘들기 때문에 그것에서 벗어나기 위해서 유혹을 하는 것이지, 그게 최선의 방안은 아닐 수 있다. 어차피 과거의 나는 힘들지 않은 상태에서의 나였기에 지금의 계획을 잘 세워놓은 것이고, 나는 그걸 버텨내기만 하면 되는 것이다. 어떻게든 힘들고 짜증나는 감정에 지배당하지만 않으면 된다. 그렇게 버티고 버티다 보면 어느 샌가 익숙해져 있을 것이다. 순간의 짜증나는 감정을 없애면 당장은 기분이 좋겠지만 장기적으로 남는 것은 결국 결과이다. 나는 그 결과를 이루기 위해서 이런 시도를 한 것이기 때문에, 결과를 이루기 위해서 겪는 감정들에는 조금씩 쿨해지고 긍정적으로 생각하며 견뎌내야 한다.



앞으로의 공부계획 : 스스로 뭔가를 만들어내거나 하나의 사이트 혹은 앱을 베껴보기

1. 만들고 싶은 것, 베끼고 싶은 것 정해서 베껴보기 - 재미와 실력을 위한 필수 코스
이제 하계 계절하기가 끝나고 나면, 나는 파이썬으로 내가 정말 원하는 것을 만들거나 실제 존재하는 내가 좋아하는 사이트를 베끼는 작업을 한달동안 진행해보려고 한다. (C언어는 기초 수업 과목이라서 어쩔 수 없이.. 배우고 파이썬이 더 하기 좋은 것 같아서 다시 파이썬으로..) 프로그래밍이라는 게 강의로도 책으로도 처음부터 배워도 좋지만 무조건 뭔가를 '만들어야' 재밌고 실력이 느는 것 같다. (프로그래머 유투버 위니님의 영상을 보고 느꼈다.) 결국 잘하기 위해서는 재미가 있어야 하고, 재미있기 위해서는 잘해야하는데 그 선순환 고리에 끼기 위해서는 하나라도 잡자. 재미냐, 실력이냐 생각해보자.

2. 개념을 완전히 세세하게 다 떼고 다음으로 넘어가려는 강박 버리기 - 모르는 개념이 있어도 일단은 넘어가라.
아직 초보자 단계에서 실력이 있기란 어렵다. 내가 뭘 모르는지도 모른다. 그래서 일단 개념이라는 것을 학습하고 이해하며 연습문제들을 풀어본다. 하지만 생각보다 그 많은 개념들을 자세하게 이해하는 것이 문제를 푸는 데 필요하지 않다. (오히려 수학적인 사고력과 인내력, 하나하나 세밀하게 뜯어서 생각하는 침착함이 필요했다.. ) 특히 C언어를 배우면서 그런 자세한 내용들이 처음에 배울 땐 재밌었지만 결국 문제를 풀려고 하니 그런 자세한 내용들을 무조건 다 배우고 넘어가는 게 효율적인 것 같진 않았다는 생각이 들었다. 학교 내신 공부면 그럴지도 모르겠으나 프로그래밍 실력을 키우기 위해서는 결국 뭔가를 스스로 만들어내는 능력이 중요한 거니까. 개념들은 내가 만들고자 하는 것이 무엇인지를 생각하면서 부족한 부분만 만들어넣는 것이 맞다. 그 모든 개념을 다 알고 프로그래밍을 들어가기엔 개념들이 너무 일상적이지 않고 생소하기에 경험과 시간이 쌓이면서 활용되는 것들을 익히면서 그 개념을 다시 배우는 게 맞는 것 같다. (그런 차원에서 C언어 책인 윤성우님의 말씀은 너무나도 위로가 되었다. 어려운 개념이 나올 때마다 "일단 이 정도로만 알고 넘어가면 된다" 라고 위로를 해주시는.. )

3. 어렵더라도 최선을 다해 에러를 해결하려는 칠전팔기의 태도, 지금의 에러를 확실히 이해하는 것이 실력을 늘리는 것. 에러가 없다면 성장이 없다고 생각하는 긍정적인 마인드로 한단계씩 !
엄청 노력을 해서 몇번째 시도만에 문제를 풀어냈을 때 그 성취감과 쾌감이 느껴져서 좋았다. 만들고 싶은 걸 생각하는 건 더 어려울 것이다. 정해진 정답을 구글링해서 알 수 있는 게 아니다보니 어떻게 구현될지에 대해서 나 스스로 더 생각을 해야하기 때문이다. 그렇지만 내가 원하는 것을 만들어본다는 경험이 굉장히 도움이 된다고 하니 천천히 가더라도 하나는 끝장내보자라는 생각으로 열심히 최선을 다해서 하나를 딱 만들어보고 싶다.