프로그래밍 입문하는 법

프로그래밍 입문하는 법

반응형

최근에 4차 산업혁명 붐이 일면서 코딩에 대한 관심도가 빠르게 증가하고 있다.

학생들에게 코딩을 가르치겠다는 곳도 늘고 있고, 교육과정에서도 그 비중을 늘려가는 추세이다.

일각에서 코딩은 관련 직종에서 종사할 것이 아니라면 알 필요가 없다고들 하지만, 그런 생각은 직설적으로 말하자면 구시대적인 시각에 갇힌 편협한 사고라고 본다.

이제 코딩과 AI라는 것을 사용하지 않는 분야를 찾기가 힘들어지고 있으며, 사무직종들조차 업무 자동화를 통해 효율을 크게 끌어올리는 추세이다. 요즘같이 빠르게 변화하는 시대에 발을 맞추지 않으면 도태되기 쉽다. 또한 무언가를 만들어내는 것만큼 창의력을 자극하는 것도 없을 것이다. 코딩은 여러모로 현대 교육의 목표를 달성하는 데에 좋은 도구이다.

각설하고, 코딩을 누군가에게 배우려는 사람도 있지만 혼자서 배우려는 사람들도 많다. 나도 그런 사람들 중 한명이었다.

코딩은 전문 분야라고 알려진 것들 중에서는 제일 입문하기 쉬운데, 막연한 공포심만 갖지 않으면 된다.

무슨 언어로 입문할까?

무슨 언어로 프로그래밍을 입문하는지에 대해서는 여전히 논쟁거리이다. 기반부터 차근차근 다져야 한다며 C부터 하라는 사람, 제일 많이 쓰이는 자바부터 하라는 사람, 시각적인 피드백이 확실한 HTML, CSS, JS부터 하라는 사람, 쉬워야 입문하기 좋으니 파이썬부터 하라는 사람 등 다양하다.

하지만 요즘의 대세 입문 언어는 사실상 파이썬이라고 보면 된다. 활용 분야가 다양하고, AI와 빅데이터라는 분야에 제일 많이 쓰이는 것도 한몫할 것이다.

물론 다른 언어로 입문해도 상관없다. 그러나 제일 자료가 많고, 쉽고, 이해하기 좋은 언어를 꼽으라면 파이썬이다. 나같은 경우에는 초등학교 4학년 시절부터 혼자서 프로그래밍을 입문하려고 노력했으나 당시만 해도 C나 자바를 많이 추천했기 때문에 이들 언어를 시도하다가 번번히 반복문~함수 즈음부터 걸려 넘어졌다. 이 둘 언어는 기본적으로 이해하고 넘어가야 하는 개념의 양이 방대하다. 반면 사실상 마지막 시도로 파이썬을 해보니 완전히 다른 세상에 있는 듯한 느낌이었다. 어느정도 아는 사람들과 입문자들은 느끼는 난이도의 차이가 다를 것이다.

어떻게 입문할까?

보통 제일 쉬운 방법은 책을 통해 입문하는 것일 것이다. 하지만 파이썬이나 C, 자바스크립트는 인터넷에 굉장히 많은 자료가 있기 때문에 돈 한푼 들이지 않고 공부할 수 있는 방법이 많다.

유튜브에 돌아다니는 인터넷 강의는 비추한다. 퀄리티도 퀄리티지만 나중에는 그냥 이해하지도 않고 코드를 무작정 따라만 치고 있을 것이다. 나중에 궁금한 것이 나와도 그 파트를 다시 찾아가기 힘들다. 아래는 글로 된 좋은 파이썬 강좌들이다.

코딩도장

https://dojang.io/course/view.php?id=7

퀄리티는 최상급이라고 본다. 파이썬 강좌는 보지 않았지만 C는 이것을 통해 입문했다. 책으로도 똑같은 내용으로 나와 있으나 굳이 필요는 없다.

점프 투 파이썬

https://wikidocs.net/book/1

이것도 퀄리티가 상당히 좋다. 사이트도 사이트지만 책으로 널리 알려진 강좌다. 이것도 마찬가지로 굳이 책을 사서 볼 이유는 없다.

나는 웹사이트를 통해 입문하지는 않았고, 파이썬 정복이라는 책을 통해 입문했다. 당시만 해도 내 정보 검색력이 그리 좋은 편은 아니어서 편한 방법을 택했다. 좋은 책이니 책을 사실 분들이라면 참고해 보아도 좋다.

강좌를 다 보았다면

프로그래밍은 배우는 것이 아니라 하는 것이다. 프로그래밍을 배운다는 것은 지식을 머리에 집어넣는다기보다는 몸에 경험을 새기는 것에 가깝다. 반대로 말해 경험이 없다면 아무것도 할 수 없다.

내가 몇달 전에 자바를 공부한다고 글까지 적으면서 설쳤지만 프로젝트를 한개만 하고 더이상 하지 않았기 때문에 아직도 자바를 제대로 다룰 줄 모른다. 대신 C와 자바스크립트를 했지만 말이다.

내가 말하고자 하는 것은, 프로젝트를 많이 하라는 것이다. 그게 뭐든 상관없다. 나같은 경우에는 책에 나와 있는 간단한 예제들에 기능을 추가하는 것으로부터 시작했다. 나중에 최소한의 실력이 갖춰졌다고 생각했을 때, 서서히 본인이 만들고 싶은 것들을 만들어 나가는 것이다.

프로그래밍은 시행착오를 통해 배우기 때문에, 안되는 것, 오류가 나는 상황, 잘 모르는 것들을 하나씩 깨우쳐 가면서 실력이 성장하게 된다. 이런 것들은 책에도 없다. 누구에게 배울 수도 없는 내용들이다. 입문이라는 것은 入門, 즉 문을 열고 첫 발을 내딛었을 뿐이지 그 이후의 과정은 혼자 헤쳐나가는 것이다.

태도

입문자, 모든 개발자가 갖춰야 할 제일 기본적인 태도는 모르면 검색하는 습관이다. 구글에 모든 정보가 다 있다. 제일 최악의 태도는 안되면 일단 다짜고짜 캡처부터 해서 커뮤니티나 지식인에 올려버리는 것이다. 언제까지나 남에게 물어보며 살 수는 없는 노릇이다.

보통 당신이 겪는 대부분의 문제는 Stack Overflow에 올라와 있을 확률이 높은데, 영어이긴 하지만 그리 어렵지도 않고 코드만 봐도 뭐가 문제이고 뭐가 해결책인지는 바로 눈에 들어올 것이다. 물론 모든 문제가 꼭 스택 오버플로우에 있다는 보장은 없다. 그 때는 여기저기 뒤지며 정보를 찾는 것이다.

이런 경험이 바로 실력이 되는 것이다.

커뮤니티를 하는 것도 좋다

본인이 어느 정도 실력이 된다고 생각하면, 간간히 관련 커뮤니티들을 돌아다녀 보아도 좋다. 당신이 모르던 기술에 대한 키워드를 얻을 수 있을 것이다. 특히 혼자 공부하는 사람들, 즉 정보를 얻을 경로가 부족한 사람들에게 남는 것은 인터넷 뿐이다.

꼭 커뮤니티가 아니어도 해외에는 관련 정보를 다루는 사이트가 매우 많은 만큼 주기적으로 돌아다녀도 괜찮을 것이다. 물론 주객전도가 되는 일은 없어야 할 것이다.

이번 글은 내 경험을 토대로 작성했다. 나는 워낙에 헛수고도 많이 했던지라, 다른 분들은 좀 더 빠른 길을 찾아갈 수 있었으면 좋겠다는 생각에서 써봤다. 한편으로는 내가 이런 글을 작성할 수준이 되었다는 것이 놀랍기도 하다. 내 생각에 동의하지 않는 사람들도 있겠지만 어차피 정해진 정답이 있는건 아니니 본인이 맞다고 생각하는 대로 하면 될 것이다.

반응형

from http://pagedown.tistory.com/31 by ccl(A) rewrite - 2021-10-08 12:00:23