하루종일코딩
작년 말부터 pre-course + immersive course 합쳐 대략 4개월 넘게 프로그래밍 부트캠프인 '코드 스테이츠'에서 프로그래밍을 재미있게 배우고 있다.
수료를 일주일 앞둔 막바지에 스스로에 대한 만족감을 물어본다면.
는 입장이다. 특히, 부트캠프라는 빡센 프로그래밍 학습방법에 대해 머뭇거리고 있다면 pre-course라고 하는 과목을 먼저 수강하는 것을 추천드린다.
이제 프로그래밍 부트캠프를 추천하는 이유에 대해서 간략히 적어보겠다. 부트캠프에 관심을 가진 분들에게 조금이나마 도움이 되길 희망하며.
프로그래밍 부트캠프에서 제공하는 가장 큰 유익은 바로 '환경'이라고 생각된다. 프로그래밍이 너무 좋아서 오래전부터 혼자 찾아보고, 배우고, 익숙한 사람에겐 이 '환경'이라는 것이 크게 도움이 되지 않을 수 있지만, 나같이 프로그래밍에 익숙지 않은 사람들에겐 '환경'이 절대적으로 중요하다.
'환경'이란,
- 물리적 공간이다.
pre-course는 온라인으로, immersive-course는 오프라인으로 참석했다. 아무리 기술이 발전하고 online으로 커뮤니케이션이 발달해도, 나는 오프라인의 커뮤니케이션을 이길 수 없다고 생각한다. 이런 점에서 같은 공간에 모여 지지고 볶으며 코딩을 배우는 것이 가장 큰 장점이다. 여기엔 코딩 냄새가 난다. 킁킁.
하루 종일 같은 공간에 갇혀(응?) 지내면서 우리는 서로의 코드를 보고, 리뷰하고, 고치고, 도와주고, 도움을 받는다. 집단지성의 힘은 놀랍다. 누군가는 더 잘하며, 누군가는 덜 잘할 수 있지만, 각 사람의 장점은 프로그래밍의 범주 안에서도 다양하게 나타난다. 또한, 내가 누군가로부터 배우는 것에 대한 유익은 설명할 필요가 없겠거니와, 내가 아는 것을 누군가에게 설명해주고 도와주는 것 또한, 자신이 아는 것을 정리하고 더 확실히 내 곳으로 만들 수 있는 가장 효과적인 방법이라고 생각한다. 우리는 모든 유머와 개그도 프로그래밍 관련 내용으로 치환하여 주고받는다.
결과적으로 우리는 프로그래밍만 배우는 것이 아니라 커뮤니케이션을 배우고 연습하게 된다. 모든 직업에서 가장 필요한 한 가지 역량을 꼽으라면 1초도 고민하지 않고 나는 커뮤니케이션 능력이라고 말하고 싶다. 커뮤니케이션을 단순히 자기가 한 일을 과장하거나 뻥을 치는 것이라고 오해할 수 있는데, 생각해보면 우리가 하는 거의 모든 일들은 커뮤니케이션으로 이루어지는 것 같다. 동료와 함께 코딩하는 짝 코딩(pair programming)을 지속적으로 적용함으로써 우리는 개발과정 안에서의 커뮤니케이션을 배운다. 내가 머리 속으로 생각하는 논리적 구조를, 내가 혹은 상대방이 짠 코드를 기반으로 설명하고, 듣고, 배우고 또 타협한다. 생각보다 코드 안에서는 무엇이 옳고 그르고의 문제보다도, 취향에 따라 선택하는 '스타일'의 문제인 경우도 많다. 변수명 작명하는 것부터 (이게 제일 어렵다) 몇 줄을 띄울 것인가, data를 크게 가져가서 최후에 잘라낼 것인가, 아니면 작게 시작해서 조금씩 붙여갈 것인가 등등이 그렇다. 싸우기도 하고 타협하면서 우리는 커뮤니케이션을 배운다.
또한, 실질적으로 코딩 스타일에 대해서도, 서로의 코드를 보고 배움으로써 나의 잘못된 습관들을 고칠만한 '기회'를 얻는다. pre-course 때 혼자 코딩을 하니까 계속해서 아주 잘못된 습관을 가지고 immersive를 시작했던 기억이 난다. 똑같이 동작이 되는 코드를 작성해도, 코드의 길이를 확연하게 줄일 수 있는 방법들이 있다는 것을 배웠고, 무작정 코딩을 시작하는 것이 아니라, 흰 종이에 먼저 어떻게 짤 것인가에 대하 논리적 설계를 먼저 한 후에 코딩을 하는 것이 전체적으로 보면 오히려 프로그래밍 속도가 줄거나, 코드 퀄리티가 높아질 수도 있다는 것도 서로에게 배웠다.
물리적 공간의 마지막 장점은, 바로 '격리'됨이다.
사람의 집중력은 집중해야 할 대상들이 많을수록 분산될 수밖에 없다. 부트캠프의 코스 종류가 여러 가지 있지만, 보통 기본적으로 요구하는 것은 자신의 시간을 프로그래밍 배우는 것에 올-인(devote) 하는 것이다. 나 같은 의지박약에게 반드시 필요한 부분이다. 월-토 일주일 6일 그리고 3~4달은 프로그래밍 배우는 것에 집중하는 것이다. 가능하면 이 기간 동안엔 다른 데 정신을 빼앗기지 않고 오로지 프로그래밍에 집중할 수 있게 된다. 친구들이 술 마시러 오라고 해도 거절해야 하고 놀러 가자고 해도 거절해야 한다. 왜 그러냐고 물어보면 그냥 고시 공부한다고 하자. 프로그래밍 부트캠프를 설명하기엔 생각보다 쉽지 않기 때문이다. 학원 다닌다고 하면 안 되는 게 그러면 그냥 웃기지 말고 술자리로 오라고 하기 때문이다.
이외에 다른 장점들에 대해선 다음 기회에 적기로 하자.