코딩을 빠른시간내에 익숙해지는 방법

코딩 초보자인 분들은 코딩을 어떤 방법으로 익히고 있습니까? 책을 보는것 부터 시작하고 있나요? 혹은 무작정 책에 있는 예제를 입력해 보고 있나요? 코딩을 시작하려고 하다보니 여러가지 어려운 상황들이 부딛히게 되는 경우가 많습니다. 코딩을 하려고 마음은 먹었는데 어떻게, 무엇부터 시작해야 하는지 도통 감히 오질 않습니다. 

시작은 하고 싶으나 어떻게 시작해야 되는지 모르고, 어느정도 익숙해지기까지 어떤 과정을 거쳐야 하는지 궁금했던 분들은 제가 제시하는 방법으로 한번 차근차근 따라해 보시기 바랍니다. 저도 본래 컴퓨터 공학이나 전산학과 전공자가 아닌, 전자공학 전공자로써 코딩이 익숙해지까지 많은 시행착오와 어려움을 겪었지만 어느 순간부터 익숙해지는 저의 모습에 나름 보람을 느꼈었는데요. 이제 그 노하우를 조금이나마 팁으로 전달 드리고자 합니다. 코딩을 하고 싶은 학생, 대학생, 일반인들 모두에게 도움이 되었으면 하는 바램입니다.

그럼 어떻게 해야 하는지 천천히 설명을 해 보도록 하겠습니다.

먼저 기초 문법을 익힐 수 있는 책을 한권 구입한다.

제가 태어나서 가장 먼저 배웠던 프로그래밍 언어는 바로 ‘C’입니다. 초등학교 때부터 PC에 관심이 많아서 하루종을 PC 앞에서 도스게임만 하고 있었던 지난날이 떠오르네요.ㅋ 벌써 20년도 훨씬 지난 얘기지만 그때 당시만 해도 도스 게임은 저에게는 매우 흥미로운 신세계였습니다. 

주로 많이 했던 게임이 페르시아 왕자와 황금도끼, 심시티, 고인돌 등이었는데 이런 게임들도 하다 보니 어떻게 만들었을까 라는 궁금중이 생기더군요. 어린 나이에 알아보니 ‘C’라는 프로그래밍 언어로 개발한다는 얘기를 들었던거 같습니다. 당시에는 인터넷이라는 통신 수단 자체가 없었고, PC통신이라는게 나름 활발히 운영되고 있었기 때문에 그런 정보를 얻을 수 있었습니다. 

그래서 ‘C’를 배워보기로 생각을 했었습니다. 위 사진속의 책 중에 맨 오른쪽의 책은 20여년전에 구입했던 ‘안녕하세요 터보 C’ 라는 C 언어 기초 문법 책입니다. 초등학교때는 배워보려고 했지만 노느라고 해보진 못하고 중학교 1학년 때 들어와서야 터보 C 문법 책을 구입을 하게 되었습니다. 

하지만 중학교 1학년의 눈에는 터보 C 문법 자체가 매우 어려웠나 봅니다. 10진수 2진수 16진수 등의 난해한 용어와 배열, 함수, 포인터 등은 그때 당시 저에게는 아주 넘기 힘든 높은 산이었던거 같네요. 좀만 보다가 이해가 안되서 포기. 중학교 2학년때 다시 도전하다가 도저히 이해가 안되서 포기. 그렇게 몇년이 흐른 대학교 2학년때 전공 수업에서 C언어에 대한 수업을 듣고 나서 조금씩 이해가 가기 시작했습니다. 

서두가 길었는데요, 일단 코딩을 시작하려면 제일 먼저 해야 할일은 해당 프로그래밍 언어의 문법 책을 1권 구입하는 겁니다. 저는 일단 책을 사고 나서 중간에 포기하고 안읽고 넘어가다가 다시 읽는 과정을 반복했었는데 지금까지 경험으로 봤을때 초보자가 제일 먼저 해야 할일은 문법 책을 한권 사서 처음부터 끝까지 이해가 되던 안되던 소설 책 읽듯 쭉 한번 정독을 하는 것입니다. 

이해가 안되도 상관없습니다. 처음에는 그냥 그런가 보다 하고 넘어갑니다. 그렇게 쭉 한번 정독을 하고 나서 그걸 두 세번 반복 해 봅니다. 물론 코딩 초보자는 이해가 안될 것입니다. 그럼에도 불구하고 두 세번씩 보다 보면 약간의 개념이 잡히게 됩니다. 일단 첫 단계는 중간에 그만두지 않고 두 세번 정독 하는게 필요합니다. 꼭 이렇게 하는게 좋습니다. 

참고로 처음에 시작하는 언어는 어떤게 좋을까요? 제가 다른 포스트에서도 설명은 했지만 2019년 현재 가장 초보자가 시작하기 좋은 언어는 ‘파이썬’입니다. 비교적 다른 언어들에 비해 쉬운 문법과 수많은 라이브러리 및 교육자료가 넘쳐나고, 특히 라즈베리파이 같은 코딩을 즐기기 위한 재료들이 있기 때문에 파이썬으로 시작을 추천 드립니다. 

‘C’는 현재 어플리케이션 쪽으로는 거의 활용하지 않지만 여전히 제조/산업계에서는 많이 쓰이는 언어입니다. 특히 시스템의 기반을 이루는 코드에 많이 삽입되어 있기 때문에 그 위상은 꽤 단단한 편입니다. 대신에 다소 초보자가 익히기 어려운 문법과 디버깅이 다소 불편한 단점이 분명히 존재하는 언어입니다. 만약 C를 처음부터 시작하고 익혀둔다면 굉장히 좋은 도구를 가지고 있는거나 다름이 없기 때문에 관심이 있다면 C로 시작해도 좋습니다. ( C는 리눅스 OS의 전부이기도 하는 강력한 언어입니다. )

기타 자바나 자바 스크립트, PHP, C++, C# 등의 언어도 있습니다. 본인의 목표에 맞게 시작을 하면 됩니다. 일단 가장 익히기 쉬운 파이썬으로 시작한 다음에 다른 언어로 전환해도 괜찮습니다. 파이썬만 잘해도 어쨋든 간에 많은 프로그램을 만들 수 있으며 다른 언어로의 전환도 쉽게 때문입니다.

파이썬은 위의 사진에서 나온 책처럼 정말 초보를 위해 초등학생들도 익힐 수 있는 책도 있고, 인터넷 상에 공개된 ‘점프 투 파이썬’ 같은 온라인 책도 있습니다. 특히 점프 투 파이썬은 오프라인 서점에도 별도로 발간되어 책을 판매하고 있으니 한권 구입해서 두세번 정독하는 방법도 좋을꺼 같습니다. 

위 링크는 ‘점프 투 파이썬’의 온라인 책의 링크입니다. 저도 처음에 위 링크의 내용을 보고 파이썬을 익혔습니다. 책을 구입하기 어렵다면 위 링크의 내용을 보고 익혀도 됩니다. 

자~ 준비한 책을 두세번 읽었나요? 이제 그럼 다음 단계로 넘어갑니다.

프로그래밍 언어 책에 있는 예제를 따라해본다.

모든 프로그래밍 언어 책은 분명 문법 설명과 함께 예제를 동반하고 있습니다. 이번 단계는 두번째 단계로써 반드시 해봐야 하는 단계입니다. 절대 빠져서는 안되는 부분이니 꼭! 진행하시기 바랍니다. 

책의 예제는 코딩을 하기 위한 사전 예습이라고 볼 수 있습니다. 지금까지는 책을 통해 문법이 이런거다~ 라고 대략적으로 파악을 했다면 지금부터는 실제 코딩을 하면 이렇다 ~ 라는 것을 간접적으로 체험하기 때문에 굉장히 중요하다고 볼 수 있습니다.

점프 투 파이썬에서 발췌한 내용인데요, 이렇게 중간중간에 연습문제와 예제가 있죠? 이것을 꼭 본인의 PC에서 에디터 혹은 파이썬 실행 창에서 꼭 한자한자 직접 키보드를 쳐서 입력해봐야 합니다. 그리고 결과가 어떻게 나오는지 꼭 확인해야 합니다. 이런 과정은 비단 파이썬 뿐만 아니라 다른 언어도 마찬가지입니다. 중간에 귀찮다고 Copy & Paste는 절대 하지 마세요. 꼭 하나하나 직접 입력해서 결과를 확인하기 바랍니다. 문법이 몸에 익고 자연스레 코딩에 대한 적응을 하는 훈련이니 해봐야 합니다. 

이 과정은 다소 지루한 과정이 될 수도 있습니다. 책에 있는것을 그대로 치는것도 지루하고 이해가 되지 않는데도 계속 해보는 것도 어려울수 있기 때문입니다. 그럼에도 불구하고 직접 입력하면서 문법과 결과를 확인해 가는 과정은 아주 중요합니다. 전체적으로 책의 예제를 2~3번 정도 입력하면서 해보는 과정을 거치는게 좋습니다. 

이 과정을 거치셨으면, 이제 다음 단계로 넘어가 보겠습니다.

공개되어 있는 간단한 프로그램 소스를 그대로 입력하여 결과를 확인한다.

자 이제~ 여기까지 오셨으면 슬슬 문법이 이해가 되면서 아~  그렇구나 라는 느낌이 들 수 있습니다. 그럼에도 이해도 안되고 혼자서 내가 직접 코딩을? 라는 의문점이 들기는 여전할 겁니다. 이제부터는 코딩을 익숙해지기 위한 훈련을 할 때입니다. 어떻게 할까요?

지금까지는 짧은 예제와 연습문제를 그대로 반복적으로 입력하고 결과를 확인했다면 이제는 좀더 소스의 라인이 많고 양이 많은 공개되어 있는 예제나 코드를 찾아봅니다. 

def print_timesTable():
    for i in range(2, 10):
        print("====", i, "====")
        for j in range(1, 10):
            print(i, "x", j, "=", i*j)

print_timesTable()

위의 예제는 구구단 출력하기 인데요, 이런 예제들은 구글에게 검색하면 수도 없이 나오게 됩니다. 이건 비교적 짧은 예제인데, 좀더 검색하다 보면 많은 수의 예제들이 나오게 됩니다. 책같은 경우에도 파이썬 기초 300 제 같은 책이 있네요. 이런 책을 참고하여 그대로 실습해보는 것도 좋습니다. 

참고로 파이썬으로 작성한 테트리스가 있습니다. 블로그 글을 링크를 걸어드리오니 참고하시기 바랍니다.

[Python] 파이썬으로 작성한 테트리스

[Python] 파이썬으로 작성한 테트리스

이번 포스트에서는 파이썬으로 작성된 테트리스 소스를 공유해 드립니다. 이 소스는 제가 직접 작성한 코드는 아니고 누군가 작성해놓은 코드를(일종의 OpenSource겠죠?^^) 제 포스트에 공유하기로 했습니다. 개발..

Source: www.omdroid.com/87

소스는 대략 430 라인 정도 되는데요, 이런 류의 예제들을 한글자씩 입력해 가면서 직접 결과를 확인해 보기 바랍니다. 위에서 언급한 데로 최소 예제 300개를 직접 입력해 보고 결과를 확인해 봅니다. 그리고 예제를 실습해보면서 관련된 내용이나 문법을 꼭 다시 확인해 보기 바랍니다. 실습과정에서 오류가 발생하거나 잘못 입력한 상황을 확인하면서 본인이 어떻게 잘못했고 어떤점이 몰랐던 지에 대한 내용을 복습하는 계기가 될것입니다. 시간이 걸려도 좋습니다. 1달이든 ~ 6달이든 이 과정을 꼭 거치시기 바랍니다.

자료구조 및 알고리즘 기초 책을 1권 준비하여 읽어본다.

여기까지 오셨으면 이제 나름 코딩에 대해서 무언가 알게 된다는 느낄 수 있습니다. 좀더 파악이 빠르신 분들은 지금쯤 코딩을 즐기고 계실 수도 있습니다^^

이제 코딩의 기본기를 다질 때가 온거 같습니다. 자료구조 ( Data Structure )는 컴퓨터 공학이나 전산학과에서는 기본적으로 듣는 수업입니다. 자료 구조를 자세히 들여다 보면 또다른 학문이고 세계이지만 코딩을 익히는 입장에서는 그렇게 세세하게 알 필요는 없습니다. 하지만 기본적인 자료구조를 알지 않고는 코딩의 레벨을 높일 수 없기 때문에 기초적인 자료구조를 익힐 필요가 있습니다. 

자료구조의 용어적 의미는 아래 링크를 한번 참고해 보시기 바랍니다.

관련하여 책을 검색해 보니 많은 책들이 시중에 나와 있습니다. 코딩을 익히는 입장에서 관련 학과는 아니더라도 코딩을 잘하기 위해서는 자료구조에 대한 기초적인 내용은 알아두는게 좋습니다. 책은 자세한 내용보다는 잘 이해할 수 있는 기초적인 내용을 들어있는 책을 선택해서 한~두번 정독하기 바랍니다. 

보통 자료구조와 알고리즘의 내용이 같이 첨부되어 있는 경우가 많습니다. 이 두가지 주제에 대한 기초적인 내용의 책을 선택해서 꼭 읽어 보시기 바랍니다.

괜찮은 오픈소스를 다운로드 받아서 분석해 본다.

자료구조 책을 한~두번 읽어보셨다면 이제 마지막으로 해야 할일이 남았습니다. 잘 만들어진 소스를 직접 본석해 보고 수정해 보는 것입니다. 이 과정은 지금까지 진행했던 과정에서 최종 점검 과정이라고 볼 수 있겠습니다. 

오픈 소스는 구글 검색엔진을 통하면 무수히 많은 오픈소스를 접할 수 있습니다. 특정 소스를 딱 선택할 수는 없지만 재미를 위해서 파이썬 게임 오픈소스를 직접 분석해 보는 방법이 괜찮은 방법일꺼 같습니다. 

검색해 보니 파이썬 초보자에게 괜찮은 사이트가 있네요. 간단한 파이썬 게임 소스가 공개되어 있는 사이트입니다.

잠깐 확인해 보니 소스 코드 길이가 그리 길지 않고 초보자 입장에서는 다루기 쉬울꺼 같습니다. 위 사이트에 게제되어 있는 소스를 가져다가 분석 해보고 본인이 직접 수정을 해보면 됩니다. 이 사이트 외에도 검색해보면 수많은 파이썬 관련 소스가 공개되어 있으니 그들을 분석 하고 직접 수정 해 보시기 바랍니다. 

이 과정을 진행하면서 코딩 및 프로그램에 대한 구조를 익힐 수 있고 코딩을 어떻게 해야 할지 방향도 잡을 수 있게 됩니다. 다른 사람이 짜놓은 코드가 어떤지 확인도 하면서 본인의 코딩 스타일도 이 기회를 통해서 만드는 것도 괜찮을꺼 같습니다. 

마지막으로….

이제 여러분은 코딩의 세계에 빠질 준비가 되신겁니다. 여기까지 오셨다면 코딩이 대략 이렇구나~ 라는 것을 느끼실 수 있습니다. 코딩은 남녀노소 누구나 관심만 있으면 배울 수 있고 익힐 수 있는 도구입니다. 다만 처음에 약간 어려움을 느낄 수 있으나 위의 언급한 과정대로 잘만 인내하고 넘어간다면 코딩은 여러분의 강력한 도구가 될걸로 확신합니다.

사실 코딩의 방법은 정해진건 없습니다. 위의 언급한 내용은 저의 경험을 토대로 기술한겁니다. 이렇게 해보니까 코딩을 익히는데 도움이 되었기 때문에 언급한 거라고 볼 수 있습니다. 분명한 점은 어찌됐던 무조껀 직접 본인이 코드를 키보드로 입력하고 결과를 확인하며, 중간에 잘못된 구문을 수정하는 과정을 꼭 거쳐야 한다는 점입니다. 이런 과정을 거치지 않으면 코딩을 하기는 어려울 것입니다. 

여기까지 오신 분들은 이제 코딩을 즐길 준비가 된것입니다. Enjoy Coding or Programming!

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.