어디서부터 어떻게 할 것인가?
요새 어딜 가나 코딩 얘기가 많다. 온라인, 오프라인에서 쏟아져 나오는 코딩광고에 이것을 배워야 할 것만 같은 무언의 압박같이 느껴지기도 한다. 마치 모두가 영어를 배워야 하고, 하지 않으면 뒤처질 것 같은 느낌.
일반 사람들에게는 아직도 '코딩'이라는 단어가 다소 생소할 것 같다. 내가 몇 년 전에 코딩을 처음 접할 때도 이게 도대체 뭔가 싶었다. 다들 코딩을 배우라고 외치는 도대체 코딩이 뭐고 어디서부터 시작해야 하며 어떻게 해야 잘하는 것인가에 대해 감이 없었다.
코딩 (Coding)
아주 쉽게 말하면 컴퓨터가 이해할 수 있는 언어를 사용해서 사람이 컴퓨터에게 지시를 내리는 것이다. 예를 들어, '데이터베이스에서 이런 정보를 받아와서 이렇게 처리해서 결괏값을 나에게 줘.' 혹은 '이 버튼을 누르면 1+1의 결괏값을 보여줘.'라고 지시하는 언어다.
코딩은 컴퓨터나 소프트웨어가 이해하는 언어다. 한 가지의 언어로 컴퓨터가 다 알아들으면 좋겠지만 불행히 언어는 수십 가지가 있다.
요새 비전공자들이 가장 많이 배우는 언어는 파이썬 (python)이다. 나도 이 언어로 코딩에 입문했고 컴퓨터를 모르는 사람이 가장 배우기 쉬운 직관적인 언어라는데 동의한다. 이 언어 하나를 알아도 할 수 있는 것들이 꽤 많다. AI 프로그램을 짤 때나 데이터 가공할 때 혹은 서버와 통신할 때도 쓰인다.
웹사이트를 만들려면 자바스크립트(javascript), html, css 이 정도는 기본으로 알아야 하고, 모바일 앱을 만들려면 아이폰에 들어가는 앱을 만들 것인지 안드로이드 운영체제에 들어가는 앱을 만들 것인지에 따라서 사용되는 언어가 다르다. 아이폰, 안드로이드폰에서 굴러가는 앱을 만들 수 있는 언어도 있다. 거기에 들어가는 언어도 내가 선택할 수 있다. 요새 모바일 앱을 개발하고 있는데 정말 쉽지 않다.. 알아야 하는 언어만도 몇 개가 되고 프론트엔드, 백앤드, 기획 등 등 간단하다고 생각되는 앱 한 개를 만들기 위해서 많은 노력과 시간이 들어간다는 걸 절실히 느끼고 있는 요즘이다. 나중에 기회가 되면 모바일 앱 개발에 관한 글을 써볼 예정이다.
코딩, 얼마나 하면 잘할 수 있나?
사람마다 다르다. 코딩 언어를 배우는 것은 언어를 배우는 것과 비슷하다는 생각이 들었다.
누구는 영어를 1년 배우고 영어로 대화도 유창하게 하고 영문책도 척척 읽어 내지만 누구는 어릴 때 갔어도 영어를 배우는데 3년 이상의 시간이 걸리기도 한다.
그리고 언어를 잘한다고 평가하는 척도가 그냥 외국 사람들과 일반 회화정도의 실력을 이야기하는 것인지 아니면 글을 쓰고 책을 읽고 뉴스를 보고 이해하는 수준을 이야기하는 것인지는 굉장히 다르다.
코딩도 비슷한 것 같다.
얼마를 배웠는지 상관없이 사람마다 개인차가 있다. 누구는 6개월, 1년 배워서 잘하는 사람이 있고, 어떤 사람들은 습득하는데 오래 걸린다. (나 같은 사람...) 그리고 언제 배웠는지도 중요하다. 코딩을 잘하는 사람들 중에서 어릴 때 시작해서 본인이 좋아해서 꾸준히 해온 사람들이 가장 잘하는 것 같다. 이런 걸 보면서 영어도 그렇고 코딩도 어릴 때 배우는 것이 중요하다는 생각이 든다. 영어 배울 때 코딩도 같이 시키면 좋겠다는 생각이 든다. 새로운 언어를 배우는 것과 비슷하게 나이 들어서 코딩을 배우려니 머리에 잘 들어오지도 않고 머리가 잘 돌아가지도 않는다.. 잘하기 위해서는 어린 친구들보다 더 많은 노력이 필요하다.
컴퓨터 공학 석사를 시작한 지도 이제 2년이 다 되어간다. 과연 내 코딩 실력은?
지금껏, 4개의 언어를 배웠다 - 파이썬, 자바, 자바스크립트, C.
위의 언어들이 어떻게 보면 가장 널리 쓰이고 기본적인 언어인 듯하다. 석사 시작하기 전보다는 할 수 있는 것들이나 코드를 읽고 이해하는 폭이 훨씬 커졌지만 완전 초보자가 그저 석사를 2년 한다고 해서 코딩실력이 갑자기 비약적으로 늘진 않는다. (적어도 나의 경험에 비춰봤을 때는..) 내가 하고 있는 석사의 커리큘럼은 코딩실력을 향상하는 것에 목표를 두지 않는다. 기본적인 코딩은 가르쳐 주지만 코딩실력 향상을 위해서는 본인이 따로 노력해야 한다. 커리큘럼에는 데이터구조, 알고리즘, 운영체제, 데이터베이스, AI 등의 다양한 과목을 배움으로써 컴퓨터가 어떻게 작동하고 수많은 소프트웨어들이 돌아가고 있는 운영체제는 어떻게 생긴 것인지 소프트웨어가 그 위에서 어떻게 돌아가는지 데이터는 어디에 어떻게 저장하고 꺼내오며 등의 기본 소양을 쌓는 것이다. 이렇게 배움으로써 컴퓨터나 코딩에 대한 막연한 뜬구름이 구체화된다. 수업 중에는 코딩을 아예 시키지 않는 수업들도 있다. 알고리즘 수업 같은 경우도 코딩이 필수는 아니다.
난 이제는 간단한 웹사이트 정도는 만들 수 있고 데이터 가공이나 간단한 게임 같은 것도 구현해 볼 수 있다. 물론 잘하는 개발자가 되기에는 갈길이 멀었고 이제 시작이라는 생각이 든다.
코딩을 배우는 효과적인 방법은?
코딩에 처음 입문하는 사람이라면 파이썬을 추천한다. 다른 언어는 아마 처음에 접하면 아예 이해가 안 갈 수도 있다. (내가 그랬다.. 왠 외계어..) 그나마 파이썬이 일반인이 이해하기에 가장 직관적인 것 같다. 온라인에 파이썬 강좌를 많이 찾아볼 수 있다. 1, 2달 정도 수업을 들으면 기본은 익힐 수 있다. 나도 처음에 온라인 파이썬 5주 수업으로 시작했다. 기초 온라인 수업들은 아마 수준이 비슷할 것이다.
그러고 나서 본인이 하고 싶은 프로젝트를 찾는 게 중요하다. 1,2 달 배워서는 실력이 많이 부족하긴 하지만 그래도 본인의 수준에 맞는 작은 토이 프로젝트부터 시작하는 거다. 클론코딩 같은 것들을 따라 해 보는 것도 좋은 방법인 것 같다. 답이 나와 있는 것들을 찾는 게 좋다. 답이 없으면 처음부터 힘만 들다가 좌절하다가 때려치울 가능성이 크다. 내가 데이터 가공 하는 것을 좋아하면 케글 같은 곳에서 데이터 가공을 해볼 수도 있다. (https://www.kaggle.com/competitions/kyiv-data-science-hackathon 이 사이트에 가면 다양한 데이터 가공 기법들, 주제들이 나와있다. 물론 사람들이 언어마다 올려놓은 답도 있어서 좋다.) 아니면 아주 단순한 게임을 만들어 볼 수도 있다. 본인이 관심 있는 것을 하면 소소한 성과에 자신감과 재미를 얻을 수 있는 게 제일 중요한 것 같다.
코딩도 언어를 배우는 것과 비슷하게 잘하고 싶다면 꾸준히 하는 게 제일 중요한 듯하다. 수많은 코딩 언어가 있지만 일단 본인이 하고 싶은 프로젝트를 한 개 정해서 거기에 필요한 언어 1개를 편해질 때까지 쓰고 배우는 것이 좋은 방법인 것 같다. 수많은 언어가 있다 해도 한 가지 언어를 하면 다른 언어들도 표현방식이 다를 뿐 메커니즘이 비슷한 경우가 많아서 쉽게 배우기도 한다. 나도 처음에 파이썬을 몇 달 배우고 자바(java)를 시작했을 때 좀 다르긴 했지만 파이썬을 배울 때처럼 힘들진 않았다.
온라인 수업은 한국 꺼는 인프런 (https://www.inflearn.com/)을 추천하고 외국 꺼는 udemy(https://www.udemy.com/)나 코세라(https://www.coursera.org/)를 추천한다. 다른 한국 사이트들은 이름을 말할 수 없지만 가격이 터무니없이 비싸고 퀄리티가 거기에 미치지 못했다. 광고를 엄청 하는데 광고비로 다 지출하는 게 아닌가 싶다. 온라인 강의, 절대 비싼 것 들을 필요 없다.
다른 궁금한 점이 있으면 댓글 달아주세요.