brunch

You can make anything
by writing

C.S.Lewis

by 노다 Nov 01. 2020

코딩 초보가 공부할 때 기억해야 할 것들

코딩 부트캠프 6주차 후기

        하루하루는 미친듯이 느리게 갔는데 어느새 쏜살같이 6주가 흘러 주니어 코스가 끝났다. 그동안 셀 수도 없을 만큼의 '나 그냥 이쯤 하고 때려칠까' 싶었던 순간과 세 번의 대성통곡 모먼트를 견뎌 무사히 주니어 코스 최종 테스트를 패스했고 오늘부터 일주일간의 휴가가 끝나면 드디어 시니어가 된다! 주니어 파트에서는 전반적인 CS 배경지식을 배우고, 소소한 토이 프로젝트들로 백엔드 / 프론트엔드 프레임워크들을 다뤄보며 풀스택 앱을 만드는 큰 틀에 대해 배웠다면, 시니어 파트부터는 본격적으로 직접 내 아이디어를 제품으로 구현해보는 솔로, 그룹 프로젝트를 6주간 진행하게 된다.

주 별 테스트를 보고 나면 튜터가 꼼꼼하게 코드 리뷰를 해준다. 소소한 버그들을 다 때려잡고 결국 테스트를 통과했다 :)

    지난 6주간 단시간에 압축적으로 폭발적인 양의 지식을 뇌에 쏟아붓다 보니 체력적으로 힘들기도 했지만 그보다 더 힘들었던 건 긍정적인 멘탈을 유지하는 것이었다. 프로그래밍을 배운다는 건 단지 언어의 문법을 외우고 규칙에 익숙해지는 걸 넘어서서 지금껏 써본 적 없는 영역의 뇌 근육을 쓰는 기분이라 내 마인드셋을 아예 새로 다잡아야 했다. 아래는 그동안의 괴로운 시간을 견디며 깨달은 프로그래밍 초보자들이 기억하면 좋을 것 같다고 생각하는 몇 가지 소소한 팁들이다.


1. 콘솔의 에러 메시지를 잘 읽자

에러 메시지 읽을 때 내 심정..^_ㅜ

    프로그래밍을 처음 시작했을 때 콘솔에 에러 메시지가 뜰 때면 빵점 맞은 시험지를 돌려받는 기분이라 너무 짜증 나고 스트레스받았었다. 콘솔이 화면에 알 수 없는 영어를 수십 줄씩 좌라락 뱉어내면 토할 것 같아서 노트북을 그냥 뿌셔버리고 싶은 심정이었다. 그치만 에러를 고치기 위해 제일 먼저 해야 하는 건 화면에 떠 있는 그 메시지를 잘 읽는 것이다. 아마 수업시간에 제일 많이 받았던 조언이 일단 에러 메시지를 잘 읽으라는 것이었던 듯...ㅋㅋ 결국 수백번 맞닥뜨리는 에러 메시지에 익숙해지다 보면 계속 반복해서 뜨는 에러들을 기억하게 되고 에러에 따라 뭘 구글링 해야 하는지, 어디에 가서 뭘 고쳐야 하는지 자연스럽게 떠올릴 수 있게 된다.


2. 나만의 노트를 만들자

    위에 언급했듯, 코딩하다 보면 비슷한 에러들을 자주 만나게 되고 그리고 자주 사용하는 메서드들은 반복되기 마련이다. 코딩에 익숙해지기 전에는 어렴풋이 아 이럴 땐 어떤 메서드를 써야 했었는데...구체적으로 문법이 뭐드라... 어떤 글이 엄청나게 유용했었는데 그게 뭐드라....하면서 같은 자료를 구글링해서 다시 찾느라 낭비하는 시간이 꽤 길었다. 몇 번 이걸 반복하다 보니 짜증 나서 노션에 나만의 치트 시트를 만들기 시작했다. 특히 서버 세팅하는 방법이나, 데이터베이스 쿼리문, CSS의 경우 매일 쓰지는 않다 보니 세세한 내용들은 맨날 까먹는데 자주 사용되는 문법들을 노트 앱에 정리해놓고 필요할 때마다 꺼내보니 시간이 많이 절약되었다. 노트 앱은 뭐든 써도 상관없지만 내 경우에는 노션을 이용 중이다. 폼이 다양해서 일반 노트 말고도 표 형태로 자주 쓰는 명령문들을 정리해둘 수도 있고 코드 블록을 지원해서 샘플 코드들을 모아두기도 편해서 애용하고 있다.

자주 쓰는 메서드들은 이렇게 표로 모아두고 필요할 때마다 꺼내본다

3. 코드 복붙에도 다 이유가 있다

    어차피 요새는 구글과 스택오버플로우에 샘플 코드가 넘쳐나니 잘 복붙하면 된다(?) 라고들 하지만 뭣도 모르는 쪼렙 입장에서는 뭘 갖다 붙여야 하는 건가부터가 어려운 문제다. 그냥 되는대로 갖다 붙이다 보면 공식문서에서 가져온 코드인데도 내 코드에서는 도대체 왜 작동을 안 하는 건가 자괴감에 빠지게 된다. 그래서 코드를 무작정 갖다 붙이기 전에 꼼꼼히 앞뒤 맥락을 따져가며 이해하는 것이 중요한데, 그냥 읽기만 하기보다는 한줄한줄마다 이게 무슨 일을 하는 코드인지를 적어가며 코드를 쪼개 보기를 추천한다. 그다음에 코드를 완전히 다 지운 다음에 다시 한번 그 코드를 다시 짜 보면 더 확실히 이해하는데 도움이 된다.

수업이 끝나고 나서 마스터 솔루션을 받으면 그걸 한 줄씩 뭘 하는 코드인지를 분석한 다음에 아예 처음부터 코드를 다시 짰다.


4. 코딩이 잘 되는 시간대를 찾자

     본격적으로 프로그래밍 공부를 시작하고 나서 지금까지의 패턴을 돌이켜보니 나는 웬만하면 오후보다는 오전에 집중을 잘하는 타입이고 코딩을 시작한 지 10시간쯤 지나면 집중력이 급격하게 하락하고 정신이 혼미해진다는 걸 깨달았다. 그 이후부터는 코드를 붙잡고 있어 봤자 스트레스만 받고 생산성은 0에 수렴하게 되는데, 차라리 그 시점부터는 딱 코딩을 끊고 그냥 쉬는 게 정신건강에 이롭다. 어차피 프로그래밍은 단기간 몇 개월 파고 난 다음 공부를 끝내는 분야가 아니기 때문에 내가 잘 집중할 수 있는 시간대를 찾아 꾸준히 공부하는 습관을 들이는 게 더 중요한 것 같다.


5. 잘 먹고 잘 자자

    코딩 캠프 6주 차에 접어들었을 때 새로 리액트 스프린트를 시작해야 했었는데 마치 내 뇌가 그만 좀 머리에 쑤셔 넣어라!!!!라고 외치며 새로운 지식을 다 뱉어내는 느낌이었다. 도대체 왜 이렇게 피곤한가 싶어서 하루는 집에 조금 일찍 돌아와서 저녁을 든든히 챙겨 먹고 열두 시간을 잤는데 그렇게 하루 푹 자고 나니까 다시 뇌가 리부팅되어서 제대로 작동하기 시작했다ㅋㅋ 나중에 돌이켜 생각해보니 그 주 내내 하루에 다섯 시간밖에 못 잤더라고..? 그래서 결론은 코딩도 중요하지만 일단 잘 먹고 잘 자야 한다는 거..


6. 내가 천재는 아니지만 멍청이도 아니라는 걸 기억하자 

    프로그래밍을 공부하다 보면 아무리 공식 문서를 읽어보고 블로그 글도 찾아보고 유튜브에서 강의를 찾아봐도 이게 도대체 뭔 소린가 싶은 개념들이 등장하곤 한다.(프로토타입이라던가...클래스라던가...프로미스라던가....기타등등 사실 끝도 없음) 그럴 땐 같은 개념을 다른 각도에서 설명하는 여러 자료들을 비교해가며 반복해서 읽어 보다 보면 어느샌가 그 개념을 이해할 수 있게 된다. 다만 그 과정이 굉장히 오래 걸릴 수도 있고 다른 사람들은 다 빨리 이해하고 넘어가는 것 같은데 왜 나만 이렇게 이해를 못하는 건가 자괴감에 빠질 수도 있다. 그럴 땐 그냥 나는 이걸 한 번에 이해할 만큼의 천재는 아니지만 언젠간 이걸 이해할 수 있을 만큼은 똑똑하다는 스스로에 대한 믿음을 갖고 포기하지 말고 끝까지 이해해보려 노력하는 게 중요하다. 처음엔 그냥 암호문같이 느껴지는 내용들도 정말 간단한 코드부터 스스로 짜 보고 오류도 내봐가면서 자꾸 부딪히다 보면 언젠간 익숙해지는 것 같다.


    사실 일주일간 휴가이긴 하지만 코딩을 아예 하나도 안 하고 놀자니 뭔가 죄책감이 들고요..ㅋㅋ 하루에 잠깐씩이라도 주니어 코스 하면서 짰던 코드들 복습하면서 시니어 파트 프로젝트 아이디어를 구상해봐야겠다. 아직도 배울게 산더미 같긴 하지만 지금까지 배운 내용들만으로도 만들어보고 싶은 것들이 너무 많다. 코딩 부트캠프에서 공부하는 동안 프로그래밍 지식보다도 더 소중하게 얻은 것은 나는 원하는 건 무엇이든 새롭게 배울 수 있고, 그걸 바탕으로 더 나은 버전의 나로 거듭날 수 있겠다는 자신감이다. 남은 6주 동안 새로운 지식을 받아들이는 생소함에 겁먹지 말고 갈 길이 멀어 보인다고 조급해하지 않으며 온전히 새로운 배움에 감사하는 시간으로 채워가 보자고 다짐해본다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari