brunch

You can make anything
by writing

C.S.Lewis

by JK의 계단 밑 연구실 Apr 19. 2018

<문과의 파이썬> 코딩의 자세

코딩 학습 속도를 2배 이상 올려주는 마인드 셋

지난 1년 간 비전공자를 위한 코딩 수업을 하였다. 약 100여 명의 비전공자들을 가르쳐 본 거 같은데 수강생들 중에는 당연히 개인 편차가 존재하여 빠르게 배워서 실력이 비약적으로 상승하는 사람이 있는가 하면, 거의 상승하지 못하신 분들도 존재한다. 이들의 차이는 어디서 비롯된 것일까? 과학적 근거는 없는 개인적인 관찰 결과이지만 비전공자들이 2배는 빠르게 코딩 실력을 늘릴 수 있는 마인드셋(mind-set) 두 가지를 소개해 보겠다.


1. 모든 것을 알 수 없다

비단 코딩뿐만 아니라 모든 분야에 있어서 한국인(나 역시 이런 방식에 물들어 있는데...)들 공부 방식인데 모든 것을 다 알고 시작하려 한다. 예를 들어 파이썬을 공부하겠다고 하면 많은 분들이 적게는 300페이지, 많게는 1,000 페이지가 넘어가는 파이썬 기본 책을 다 읽기 전에 간단한 프로젝트 조차 시작해 보지 않는다. 이런 폐단이 가장 크게 나타나는 분야가 언어 분야인데 영어를 공부한다고 하면 영어 문법책을 한 권(사실 한 권도 아니고 자기가 만족할 때까지 여러 권인 사람도 많다)을 다 읽기 전까지 실제로 말 한마디 써먹어 보지 않는 경우다. 이렇게 공부한다면 영어 실력이 늘까? 파이썬, 그리고 C++, 자바 등 모든 프로그램 역시 언어이다. 영어나 일본어와 마찬가지이다. 다만 컴퓨터와 대화한다는 것만 다를 뿐이다. 입으로 안 써보고 문법이나 책만 본다면 안 느는 것이 당연한 것처럼 책만 보고 컴퓨터와 대화하지 않는다면 늘지 않는 것이 당연하다.

때문에 나는 강력하게 모든 것을 알고 시작하려는 강박 관념을 버리고, 일단 간단한 프로젝트라도 만들어 보면서 공부하라고 외치는 바이다. 물론 아무것도 모르는 입장에서 혼자 무언가 하기 힘들다. 그렇기 때문에 자습용 교재를 고를 때 최대한 예제 프로젝트가 많거나 수업을 듣는다면 처음부터 실습을 커리큘럼에 집어넣는지 확인해 보라고 충고하고 싶다. 나 같은 경우도 초보반 같은 경우 1시간 만에 기본적인 문법을 빨리 끝내고 정말 간단한 대화형 챗봇을 만들어 보는데, 무리해서라도 이렇게 수업을 진행하는 이유는 1. 어차피 초보일 때 자세하고 정확한 문법적 설명을 듣는다 하더라도 머리에 안 남고 2. 기본의 기본만 알더라도 이를 잘 활용하면 무언가 할 수 있다는 경험을 심어주고 싶어서이다. (뜬금없는 내 수업 광고 ㅎㅎ)

그리고 한 가지 초보분들이 착각하는 것이 전문 프로그래머는 다 알고 코딩할꺼야라고 생각하는 것이다. 전혀 아니다. 물론 파이썬 기본 문법 정도야(넘어서 고급 문법도) 꽤고 있지만 어떤 기능을 구현하는데 필요한 모든 기술을 평소에 다 공부해 놓고 있는 것은 아니라는 것이다. 예를 들어 이 번 프로젝트에 무작위로 숫자를 추출하는 부분이 필요하다면 그 어떤 프로그래머도 평소부터 이런 기능을 주는 모듈(외부 도구라고 생각하면 된다)을 공부해 놓고 그러지 않는다. 그런 거 모르는 건 너무 당연한 거고 자연스럽게 새로운 기능이 필요하다면 구글링 해보고 '아, 이거 가져다 쓰면 되겠구만'하고 사용한다.(사실 랜덤 모듈은 너무 많이 사용되고 쉬워서 평소에도 다 알고 있긴 하다;;;) 그리고 이 기능을 앞으로도 자주 사용하겠구나 생각이 들면 그때 가서 시리어스하게 파면서 공부하면 되는 것이다.

마지막으로 강조해 보겠다. 다 알 수 없다. 일단 써먹어 보자.


2. 구글링의 일상화

앞에서 일단 써먹어 보라고 했다. 써먹다가 막히는 부분이 나오면? 물어보면 된다. 누구에게? 선생님? 노노, 구글에게. (구글 신은 모든 것을 알고 계신다.) 강조했듯이 모든 것을 알고 코딩을 하는 것이 아니가 때문에 우리는 모르는 것에 직면하게 되고 그때 필요한 것이 구글링이다. 재밌는 것은 모르는 것이 나오면 선생님에게 물어보는 사람보다 구글에 물어보는 사람이 훨씬 실력이 늘 가능성이 높다. 구글링을 하여 답을 찾아가는 과정이 학습이며 구글링 그 자체가 코딩 실력의 일 부분이기 때문이다.

코딩에 있어 구글링을 할 경우는 크게 두 가지가 있다. 첫 번째는 어떤 기능을 구현할 때 필요한 도구나 방법을 모를 경우이다. 앞에서 들은 무작위 숫자 예가 이 경우인데 이런 경우 '파이썬 + 필요한 기능' 식으로만 검색해도 쉽게 나온다. 예를 들어 파이썬으로 PDF를 읽어 오고 싶다면 '파이썬 PDF' 등으로 검색하면 어떤 모듈을 쓰면 되는지부터 예시 코드까지 다 얻을 수 있다.

두 번째 경우가 사실 더 중요한데 비전공자의 경우 이걸 잘 활용 못하는 경우가 많다. 바로 코딩을 하다가 문제가 생겼을 경우이다. 이 경우 에러 메시지가 익숙하지도 않고 패닉에 빠져 자신의 코드만 들여다보는 경우가 많은데 침착하고 에러 메시지를 그대로 복사해 구글 검색창에 넣어 보자. 대부분 비슷한 문제를 겪고 있고 사람들이 실수하는 부분이 거기서 거기이기 때문에 (아마 정규분포 모양을 띄지 않을까?) 엄청난 양의 해결책이 나온다. 물론 이를 보고 해결하기 힘든 경우도 있지만 바로 해결하지는 못하더라도 많은 힌트를 얻을 수 있을 것이다. 


정리해 보자. 당신이 비 전공자인데 코딩을 배우고 싶다면 이 두 가지를 가슴에 세기고 시작하길 바란다. 

1. 다 알고 시작할 수 없다. 먼저 써먹어 보자!

2. 구글링을 최대한 활용하자.

비 전공자라고 이제는 코딩을 평생 필할 수 없는 시대이다. 마치 지금의 엑셀이나 워드처럼 우리가 컴퓨터를 사용한다면 당연히 이용할 수 있는 하나의 도구가 되고 있는 실정이다. 부디 쫄지 말고 일단 해보길 바란다. 나 역시 비 전공자에 기계치이지만 이제는 파이썬 강의를 부업으로 데이터 분석가이자 프로그래머로 밥벌이를 하고 있다.




매거진의 이전글 <문과의 파이썬> 셀레니움(selenium)-(2)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari