brunch

You can make anything
by writing

C.S.Lewis

by 조인석 chris Jan 11. 2016

프로그래밍 재미있게 공부하기

프로그래머가 되고 자 하는 분들을 위한 이야기

필자가 처음 프로그래밍을 배웠던 때는 90년대 중반 쯤이였던 걸로 기억한다. 어린 학생이였던 필자에게 부모님은 동네 상가에 있는 작은 컴퓨터 학원에 보냈었고, 검은 화면에 고사리와 같은 손으로 베이직 코드를 짜던 것이 기억이 난다. 하지만, 한달 만에 때려친 피아노 학원 처럼 그리 오래 가진 못 했다. 필자는 어렸을 때 부터 프로그래밍이 좋아서 매일 매일 컴퓨터 앞에 앉아서 코딩을 즐기던 그런 아이는 확실히 아니였다. 게임도 별로 좋아 하 않았다.


90년대 말, 대학에서 컴퓨터를 전공하기 시작 하면서 어쩔 수 없이(?) 프로그래밍을 배우기 시작했다. C, C++, VC++를 차례대로 배웠고, 필자는 남의 소스 코드를 열심히 복사해서 붙여 놓고 변수 명이나 고치던 그저 그런 학생이였다. 헌데, Java 로 FTP 클라이언트 프로그램을 만들어 낸 순간, 알게 되었다. 내 적성과 무지하게 잘 들어 맞다는 것을.. 그 당시에 Java 관련 수업은 딱 하나.. 이름도 '프로그래밍4' 정도 되었던 것 같다. 배울데가 없었다. 상대적으로 지식이 얕았던 필자는 서점에서 겁나게 쉬운 자바 책을 하나 샀다. 10일이면 끝난단다. 정말 10만 보고 다시 볼 필요가 없는 책이 되었다. 그 당시 복학 후 스스로가 너무 못마땅 했던 필자는 동아리 선후배들에게 구걸하듯이 가르쳐달라고 부탁하기 시작했다. 그 때 처음으로 '스터디'라는 것을 시작 했고, 서로가 내주는 문제들을 풀면서 점점 코딩의 즐거움을 느끼기 시작했다. 하지만.. 너무 부족 했다.


2000년 중반 경에 처음으로 돈을 받고 코딩을 하기 시작했다. 함께 입사 한 친구들 보다는 조금 나은 정도 였지만, 계속 부족하다는 것을 느꼈고, 선배들로부터 비기를 선사 받는 순간에 항상 물어 보았다.


그런 건 어디에서 배울 수 있나요?


지금도 그 답은 잊지 못 하겠다.


이런 건.. 가르치는 데는 없어요..............


다들 알아서 공부하고 있었다. 처음에는 네이X에서 검색하던 사람이 여러 번 뒤통수를 맞다가 구X신의 은혜에 힘입어 밀림을 헤쳐 나가고 있었다. 어느 정도 영어에 익숙해지면.. 실은 모든 기술에 대한 지식이 공식 홈페이지 매뉴얼에 나다는 것을 깨닫는다. 오랜 시간 동안 검색을 하면서 몰랐던 사실들을 알게 되고, 처음에 배우지 못한 개념을 스스로 깨닫게 되면서 각자의 스타일대로 기술을 배운다. 그리고 쓰게 된다. 어느 정도 수준이 되면 잘 이해되지 않던 책도 술술 읽히고, 모르는 기술도 통밥으로 배워버린다. 헌데.. 시간이 너무 오래 걸린다.


서론이 너무 길었다. 필자가 기술을 배웠던 과정이다. 혹자는 어렸을 때 부터 총명하게 빛나는 눈으로 다양한 기술들을 스펀처럼 흡수 하기도 하지만.. 그게 그리 쉽던가. 그리고 대부분의 기술은 미국과 같은 영어권 나라에서 시작이 된다. 아무리 영어를 잘해도, 따라가는 데에는 시차와 이해에 대한 갭이 생기기 마련이다.


헌데, 요즘에는 무언가를 배울 수 있는 길이 너무나도 많다. 인기가 많은 오픈소스들은 기가 막힌 매뉴얼을 제공하고 있다. 영어가 부담 스럽다고 고개를 들어보면, 누군가가 이미 한글로 번역해 놓았다. 유투브에 보면 이런 기술들을 각자 쉽게 풀어서 설명한 무료 한글 동영상 강의가 널렸다. 지금 세상은, 배울 데가 없고 가르칠 데가 없어서 기술을 배우지 못 한 다는 것은.. 정말이지 말이 안되는 세상이 왔다. (물론, 과거에도 그랬겠지.. 필자가 게을렀다..ㅡㅡㅋ)


이번 글에서는 프로그래밍을 처음 배우는 분들에게 프로그래밍 언어를 배울 수 있는 방법에 대해서 소개하고자 한다. 모든 언어를 다룰 수 없으니, 한 가지에 대해서만 살펴 보자. 바로, 파이썬이다.


파이썬은 역사가 오래된 스크립트형 프로그래밍 언어이다. 어떤 언어보다도 쉽게 배울 수 있고, 다양한 용도로 넓게 사용이 되고 있다. 만약, 여러분이 처음으로 프로그래밍을 배우는 분이라면, 과감히 파이썬으로 시작하라고 말하고 싶다. 쉽지만 강력한 객체 지향 언어의 세계에 쉽게 빠져 들 수 있으며, 입문자 수준을 넘어서면, 웹 프로그래밍이나 데이터베이스 프로그래밍, 데이터 분석에도 쉽게 접근 할 수 있기 때문이다. 그럼 몇 가지 학습용 웹 싸이트를 둘러 보자. (참고로 아래 내용은 필자가 집필중인 프로그래밍 책의 부록의 내용을 발췌한 내용을 미리 밝힌다.)




파이썬을 책으로도 배울 수 있지만, 온라인으로 공개되어 있는 좋은 강좌들이나 프로그래밍 사이트들이 많다. 필자도 처음 파이썬을 접할 때 많이 활용한 기억이 있다. 그 중에 몇 가지를 소개 하고자 한다.


>_ MOOC (Massive Open Online Course) 의대명사, edX

근래에는 온라인 공개수업 형태로 전 세계의 유명한 학교에서의 강의를 너무나 쉽게 접할 수 있으며, 청강뿐만이 아니라 강의에 직접 참여 할 수 있다. 이런 온라인 공개수업을 통칭하여 MOOC라고 한다. 필자도 작년 파이썬을 활용한 빅 데이터 분석 관련 강의를 2개 이수하였다. 여러 MOOC 중 IT 영역에서 가장 인기 있는 사이트가 바로 edX 다. edX 에서는 MIT나 하버드, UC 버클리와 같이 이름만 들어도 명성이 자자 한 곳의 강의를 아주 쉽게 접할 수 가 있다.


edX는 아래 링크를 통해 접속 할 수 있다.

https://www.edx.org/


상단의 검색 창(I want to learn about..) 에 python 을 입력하면  다양한 강좌들을 확인 할 수 있다. MIT나 하버드에서 진행되는 파이썬 강좌를 집에 앉아서 따뜻한 커피 한잔과 함께, 아주 편하게 참여 할 수 있다는 것 만으로도 충분히 매력적이다. 하지만, 대부분 영어로 강의가 이루어져 어 어려울수도 있다. 간혹 한글 자막이 있는 강의를 찾을 수도 있으니 참고하기 바란다. 아래 링크를 클릭 하면 파이썬과 연관된 강의가 나온다. 16년 1월 기준으로 14개가 올라와 있다. MIT의 파이썬으로 소개하는 컴퓨터 과학 과정이 좋았던 걸로 기억한다.

https://www.edx.org/course?search_query=python

edX 이외에도 코세라(https://www.coursera.org/), 유다시티(https://www.udacity.com/), 칸아카데미(https://www.khanacademy.org/) 등이 있으니, 관심있는 분들은 방문해보기 바란다.


더 다양한 MOOC에 대해 궁금하다면,  아래 링크를 확인해보자.

http://m.blog.naver.com/with_msip/220500842725


>_ 마이크로소프트의 가상 아카데미, MVA (Microsoft Virtual Academy)

영어가 부담스러운 분에게 좋은 소식이 있다. 마이크로소프트에서는 본인들의 기술 이외에도 인기가 많은 기술에 대한 온라인 아카데미를 운영하고 있다. 공식 이름은 Microsoft Virtual Academy 이다. 아래 링크를통해 접속 할 수 있다.

https://mva.microsoft.com


상단의 검색 아이콘을 눌러서, ‘python’을 입력 해 보자. 파이썬과 관련된 강좌들이 눈에 보인다. 아래 리스트의 첫 번째 강좌는 마이크로소프트의 강력한 개발 도구인 Visual Studio의 파이썬 툴인 PTVS 관련 강좌이다. 두 번째 강좌는 파이썬을 사용한 프로그래밍 소개이다. 두 번째 강좌를 클릭 해 보자.

https://mva.microsoft.com/ko/training-courses/python--8360?l=CrrhO0O8_6204984382


영상의 우측 하단을 살펴 보면, CC 라는 동그란 버튼이 보인다. 이 버튼을 누르면 하단에 친절한 한글 자막을 확인 할 수 있다. 모든 콘텐츠가 한글로 제공되고 있으니, 배우는 데 큰 어려움이 없으리라 생각된다.

 

>_ 강좌와 코딩을 한번에, Codecademy

강좌를 듣기 보다는 소스 코딩을 직접해 보는 걸 선호 한다면 코카데미를 추천한다. 공식 링크는 아래와 같다. 구글 계정이나 페이스북 계정이 있다면 쉽게 계정을 생성하여 로그인 할 수 있다.

https://www.codecademy.com/


로그인 후, Language Skills 카테고리에 가보면 여러 언어들이 보이는 데, 2번째줄 중간이 바로 파이썬이다. 클릭 해 보자.


파이썬 소스 코딩을 하기 위해서 파이썬을 설치 할 필요 없이, 웹 브라우저 상으로 소스 코드를 작성하여 실행 결까지 확인 할 수 있다. 좌측은 설명 및 문제, 가운데가 소스 코드 작성 창, 우측 상단의 검은 박스가 소스 실행 결과 확인 창이다.                                                    


>_ 다양한 문제를 풀어보자.HackerRank

어느 정도 파이썬에 익숙해지면, 강좌 보다는 재미있는 문제를 풀어보는 것도 좋겠다. 필자는 해커랭크라는 곳을 좋아한다. 아래 링크를 통해 방문 할 수 있다. 이 곳 역시 구글 계정이나 페이스북 계정, 깃 허브 계정 등으로 쉽게 접속 할 수 있다.

https://www.hackerrank.com

 

로그인 한 뒤, 상단에 ‘Domains’ 메뉴를 클릭 하면, 좌측 하단 쯤에 ‘Python’ 도메인 영역을 찾을 수가 있다. [Chose Domain] 버튼을 눌러서 입장 해 보면 좌측에 여러 서브 도메인 리스트가 뜨며, 비슷한 영역의 문제들을 선택 할 수 있다. 원하는 문제를 하나 골라보자.


문제에 대한 설명과 입/출력 값에 대한 정의, 샘플 입력 및 출력 결과, 제약 사항들을 제공하고 있다. 실은 이 포맷은 여러분이 회사에 취업 할 때 코딩 시험을 보게 된다면 흔하게 접할 수 있는 포맷이다. 익숙해지길 바란다.


문제 하단에 보면 ‘Current Buffer’ 영역에 소스 코드를 작성 할 수 있다. 우측 상단에서 원하는 프로그래밍 언어를 선택 한 뒤, 소스 코드를 작성 한 뒤, 우측 하단에 [Submit Code]를 클릭 하면 작성한 소스 코드가 문제를 풀었는지 안 풀었는지 확인 할 수 있다.


이외에도 파이썬을 배울 수 있는 곳은 무척이나 많다. 하지만 너무 여러 곳에서 공부 할 필요는 없어 보인다. 본인 성향에 맞는 곳을 찾아서 독파 할 수 있도록 노력 하는것이 더 큰 효과를 가져 다 줄 것이다. 파이썬을 더욱 재미있게 배우는 데 도움이 되었으면 한다.




지금까지 파이썬을 중심으로 학습을 할 수 있는 웹 싸이트들을 살펴 보았다. 링크를 방문해 보면 알겠지만, 해당 웹 싸이트들은 파이썬 만을 배울 수 있는 곳이 아니다. 여러분이 초보 개발자라면, 배우고자 하는 모든 기술을 배울 수 있는 장이 열려 있음을 확인 했으리라 장담한다. (물론, 필자가 소개한 곳 이외에도 배울 수 있는 곳이 많다. 댓글로 정보 추가 해 주면 정보 공유 차원에서 큰 도움이 되겠다.)


마지막으로 프로그래밍을 배우기 위해서 반드시 기억했으면 하는 점을 전하고자 한다.


혹시 여러분은 다룰 줄 아는 악기가 있는 가? 필자는 통기타나 우크렐레, 드럼 등에 관심이 많다. 이런 악기를 배우는 과정을 한번 생각 해 보자.

내가 아무리 실력이 좋은 스승을 만나 비법을 전수 받는 다 하더라도, 본인이 직접 '연습' 하지 않으면 실력이 늘지 않는다. 오히려 좋은 스승이 없어도 골방에 틀어 박혀 존경하는 뮤지션의 음악을 들으면서 계속 반복하여 따라 한 사람이 기가 막힌 연주를 하는 것을 쉽게 볼 수 있다.


프로그래밍도 똑같다. 아무리 배움의 기회가 널려 있고, 좋은 멘토를 만나서 밥상도 차려주고 입 근처까지 음식을 떠 준다고 하더라도, 본인이 스스로 직접 해보고, 연습 해보고, 따라 해보면서 스스로 손에 익히지 않으면, 여러분은 프로그래밍의 본 맛을 알기 무척 어려울 것이다.


또 하나, 프로그래밍은 마치 밴드에서 악기를 연주하는 합주와도 비슷하다. 아무리 본인의 실력이 뛰어나고 주변의 연주 소리를 듣지 않고 막나간다고 하면, 그 밴드의 합주 실력은 형편 없고, 듣기 싫은 음악을 연주하게 될 것이다. 사회에서의 프로그래밍은 혼자만이 만족하는 소스 코드를 작성 하는 것이 아니다. 배운 기술을 가지고 주변의 소리를 주의 깊게 듣고 조화를 이루어야 멋진 합주가 될 수 있듯이, 프로젝트에서 지키기로 한 약속을 지키면서, 본인의 코드를 누가 봐도 쉽게 이해할 수 있게 작성하는 연습을 해야 한다. 이런 소스 코드를 작성하기 위해서 Code Complete 나 Clean Code 와 같은 서적은 여러분의 악보가 되어야 한다.


좋은 프로그래머가 되어 보자.

오늘도 한 발자국 다섰기를 바란다.


화이팅!


필자가 집필한 파이썬 입문서가 출간되어서 링크 추가합니다. 참고하세요 :)

http://m.yes24.com/Goods/Detail/24803135


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