1. 서론 |
컴퓨터공학과를 졸업했음에도 안타깝게도 다른일을 해왔었고 원하던 직업인 개발자가 되기 위해서 다시 공부를 시작하고자 하던 때였다.
왜 다른 일을 했었는지에 대해서는 다른 글에서 다뤄보기로 하고 다시 공부를 시작하던 시점에 어떻게 해야할지 알아봤던것들과 그를 통해 느꼈던 점들을 이야기해보고자 한다.
먼저 대학교 재학시절 공부했던 기억들이 많이 남아있었지만 시간이 지난만큼 잊혀진것들도 많았다.
문제는 내가 뭘 잊었는지 어디까지 잊었는지를 모른다는 것
다행히도 대학생시절 공부하면서 나중을 위해 공부한 내용들을 다 정리해뒀었고 다른 일을 하면서도 틈틈히 개발자 전직을 위해 그 내용들을 한번씩은 읽어두곤 했었다.
먼저 다시 제대로 공부를 시작하면서 먼저 대학생시절에 주력으로 사용하던 C, C++ 기본서적부터 빠르게 다시 읽고난 후 그 이후의 CS지식들은 코딩을 하면서 같이 공부해나간다는 생각으로 코드작성부터 시작해보고자 했다.
첫 시작은 알고리즘 풀이 사이트들에 대한 조사였다.
국내에서는 프로그래머스와 백준 2개의 사이트가 main인듯 했고 둘 다 접해본적 없던 내 입장에서는 일단 프로그래머스부터 시작해보기로 했다.
대학교에서 C++을 주력으로 4년간 공부한데다가 프로젝트도 몇몇 진행해봤기에 C++이라면 못 만들 프로그램이 없다는 자신감마저 있던채로 프로그래머스 사이트를 이해하기 위해 레벨 0의 문제부터 풀어보기 시작했다.
레벨 0문제답게 처음에는 쉽게쉽게 풀어나갈 수 있었지만 한시간도 채 지나지 않아 문제가 생겼다.
주어진 기본 코드프레임에 있는 코드조차 이해하지 못하는 상황이 생겼다.
이게 C++이라고? 라는 생각이 들었다. 그 이유는 vector와 accumulate때문
지금이야 너무 고맙고 친근한 친구들이 되었지만 당시에는 내가 아무것도 모르는게 아닐까라는 공포감을 일으키던 객체와 함수였다.
내가 공부했던 C++과는 전혀 다른 언어처럼 보였고 프로그래머스 풀이 시작 한시간이 채 안되어 처음부터 다시 공부해야겠다는 생각을 했고 이때부터 개발자 공부에 대해 조사를 시작하게 됐다.
2. 왜 1일 1커밋을 시작했는가 |
조사 과정에서 학생때부터 이름만 알고 써볼 엄두는 못내던 Git과 Github에 대해서도 알아보고 사용해보게 되었고
처음에는 1일 1커밋을 하는것이 목적이 아니라 그저 Github 사용법을 익힐 겸 알고리즘 문제풀이한 코드들을 저장하기 위해 업로드를 하다보니 2달정도 연속으로 빠짐없이 커밋을 하고있었다.
그러던 중 아래 영상을 보게 되었고 이를통해 1일 1커밋이라는 개념에 대해 알게되어 2023년에 들어가면서 새해 목표로 1년간 하루도 빠짐없이 1일 1커밋을 해보자라는 작은 목표를 갖게 되었고 그 결과 2023년을 넘어 2022.10.31 ~ 2024.03.04의 기간인 70주간 Github에 매일매일 하루도 빠짐없이 contribution을 해오게 됐다.
https://www.youtube.com/watch?v=V9AGvwPmnZU
1일 1커밋을 하기로 한 이유는 공부하는 습관을 만들고 싶었다.
일단 하루도 빠져선 안된다는 강박을 만듦으로써 하루를 시작하는 순간 바로 Visual Studio나 백준/프로그래머스부터 들어가서 한문제만이라도 풀고 하루를 시작하게 됐다.
본디 공부라는게 하는게 어려운게 아니라 공부하기 전 하기싫고 귀찮음에도 시작하는게 어려운 법인데 이 습관을 통해 하루를 손쉽게 공부로 시작할 수 있었고 또 한문제 풀고나면 다음 문제 푸는건 쉬워지기에 좋은 방법이라고 생각했다.
또한 Github 메인에는 흔히 잔디를 깐다고 말하는 contribution기록이 남기에 출석체크 도장을 찍는다는 느낌의 재미도 있었다.
3. 왜 그만뒀는가 |
2024.03.04까지 70주간 하루도 빠짐없이 1일 1커밋을 해왔지만 그 다음날과 다다음날인 2024년 3월 5일 ~ 3월 6일 이틀간 커밋이 끊기면서 70주 연속의 기록이 끊기게 되었다.
사실 그만두려고 한적은 없었다.
단지 그 이틀간 심한 몸살을 앓으면서 침대에서 나오지도 못했고 그 결과 컴퓨터를 켜기는 커녕 1일 1커밋의 존재조차 잊고있었다.
하루에 15시간 이상씩 자면서 앓고난 후 정신이 들고보니
아뿔싸... 내 커밋... 내 연속기록...
등줄기에 소름이 돋더라.
하지만 이내 상관없다고 느꼈다. 이미 얻은것이 많기에
4. 장점 및 얻은점 |
1) 공부하는 습관
먼저 1일 1커밋을 시작한 이유였던 공부하는 습관은 확실히 가질 수 있었다.
잔디 출석체크에 단 하루도 빠져선 안된다는 강박은 꽤나 효과적이었고 실제로 70주 중 90%이상은 컴퓨터를 켜고 백준/프로그래머스에 들어가거나 그 외 공부를 하는것으로 하루를 시작하게 되었다.
2) 하루의 마무리
하루를 마무리하며 그날 공부한 내용들을 다시 한번 머리속으로 되돌아보는 시간을 갖기도 했는데 공부했던 내용들, 풀었던 문제들이 Github에 업로드되어있다보니 핸드폰으로도 해당 내용들을 확인 할 수 있다보니 하루를 정리하는 시간을 갖기 좋았다.
3) 꾸준함
살다보면 다른 일정으로 공부할 시간이 없다거나, 설이나 추석같은 명절로 고향에 내려가는 등 공부를 하지 못하는 날들이 생기기 마련이다.
또한 사람은 사람이다보니 살다보면 오늘만은 정말 공부가 하기 싫다는 마음이 드는 날도 많이 생기곤 한다.
하지만 1일 1커밋의 강박은 다른 일정이 있어도 10분이라도 일찍 일어나서 커밋을 하게 만들었고 공부가 아무리 하기 싫어도 최소한 백준 브론즈문제나 프로그래머스 0단계문제같은 3분안에 해결 가능한 문제라도 풀게 만듦으로써 공부를 시작하게 하는 기점을 만들어주거나, 최소한 흐름이 끊기지는 않게 해줬다.
4) 증거
그래도 공부를 꾸준히 했다는것을 증명할만한 증거가 되어줄지도 모르겠다.
5. 문제점 |
많은 장점이 있음에도 사소한 문제점이 생길 수 있다.
1) 무의미한 커밋
말 그대로 그저 1일 1커밋을 준수하기 위한 무의미한 커밋이 발생할 수 있다.
공부한 내용, 해결한 문제가 업로드되는 것이 아니라 그저 잔디채우기용 커밋은 허황된 성취감만 안겨주므로 경계해야 한다.
언제나 주 목적은 1일 1커밋이 아닌 꾸준한 공부다.
다만 오히려 무의미한 커밋으로 하루를 마무리하면 스스로에게 후회를 안겨주기도 하기에 다음날의 원동력이 되어주기도 한다.
2) 공부 이후 추가적인 커밋
만약 당일 공부가 백준이나 프로그래머스로 문제를 풀고 백준허브로 자동 push가 되었다거나 개인 프로젝트를 진행하면서 중간중간 commit한거라면 이미 하루 공부를 마무리하는 시점에 커밋이 쌓여있겠지만
어떤 내용들을 조사하거나, 블로그에 공부한 내용을 정리하는게 메인이었던 날이라면 Github에 커밋된게 없으므로 하루종일 공부를 하고 나서도 추가적으로 하나의 커밋을 만들게 된다.
해당 이유가 블로그에서 옵시디언으로 갈아타는 계기가 되었다.
3) 연속 커밋이 끊겼을때의 아찔함
정말 의도치 않았지만 70주간의 기록이 끊긴걸 깨닫는 순간 소름이 돋았다.
6. 그래도 난 계속 이어간다 |
1일 1커밋 연속 70주의 기록이 끊긴김에 잔디깔기는 그만 둘까 생각도 했었다.
결국 중요한건 1일 1커밋이 아니라 공부하는 습관이고 이는 충분히 만들었다고 생각도 들었기 때문이다.
그럼에도 장점이 너무 많고 개인적으로 좋은 습관이라고 생각하기에 다시 이어가기로 했다.
2개의 회색칸이 마음아프지만 살다보면 언젠간 끊길 연속커밋이었고 아쉽다면 이번엔 70주를 넘어 그 이상 연속커밋을 하면 될 뿐 아니겠는가