본문 바로가기
IT/프로그래밍

프로그래밍 공부를 시작하기 전에 짚어볼 사실들

by WritingStudio 2022. 1. 30.
반응형

요즘 코딩이 유행이다. 심지어 삼성그룹은 이제부터 직무에 상관 없이 모든 신입직원들에게 코딩 교육을 시키겠다고 발표했다. 초등학교 때부터 코딩 공부를 시켜야 한다는 목소리도 점점 커진다. 흐름이 이렇다보니 코딩 교육을 받지 못한 채 이미 직장을 다니는 중인 직장인들 사이에서도 코딩 공부는 꽤나 중요한 주제이다.

업무에서 코딩 지식이 필요한 경우는 크게 두 가지이다. 첫째, 내 일을 편하고 효율적으로 하기 위해서. 둘째, IT부서와 비IT 부서 간 의사소통을 위해서. 첫째 이유는 개인적인 차원에 해당하고 둘째 이유는 조직 차원에 해당한다.


개인적인 차원에서든 조직 차원에서든 이제 코딩은 점점 필수 요소가 되어가는 중이다. 그래서 코딩에 관심을 갖는 직장인들도 늘어난다. 여러 직장인들이 이런 저런 이유로 이런 저런 프로그래밍 언어 공부를 시도한다. 보통은 일단 책을 산다. 코딩이 화두이다보니 서점에 가면 코딩 관련 서적들이 엄청나게 많이 보인다. 그 중 마음에 드는 책을 한 권 사서 첫 페이지부터 독파를 시도한다.

개인적으로는 책을 사서 처음부터 끝까지 다 읽어보려는 식으로 하는 코딩 공부는 재미도 없고 비효율적이라고 생각한다. 실제로도 이 방식은 성공률이 매우 낮다. 책을 사지 말라는 말은 아니다. 하지만 코딩 관련 책은 어떤 경우에도 처음부터 끝까지 읽는 책이 아니다. 코딩 관련 책은 다 사전이라고 생각해야 한다. 필요할 때 필요한 내용을 찾아서 이해하는 용도로 사용해야지, 코딩 관련 책을 처음부터 끝까지 읽는 행위는 사전을 읽는 행위와 크게 다르지 않다.

그럼 비전공자들은 프로그래밍을 어떻게 시작해야 하며 어떤 마음을 가지고 시작해야 할까? 이 글에서는 개인적인 경험상 느낀 바들을 적어보고자 한다.

1. 무엇을 만들고 싶은지를 먼저 정하자

무슨 언어를 배우든 코딩 공부에는 정해진 순서가 없다. 본인이 무슨 일을 하는지, 코딩을 무엇에 활용하고 싶은지에 따라 공부 순서는 천차만별이다. 수학적/과학적인 모형을 코딩을 해서 돌려보고 싶은 사람과 웹페이지에서 정보를 자동으로 긁어오고 싶은 사람과 여러 사람들에게 배포하여 사용할 어플리케이션을 만들려는 사람의 학습 방식은 같을 수가 없다.

그러니 코딩에 막연히 접근하면 매우 고생을 한다. 최근 각광받는 언어인 파이썬(python)을 예로 들어보자. 파이썬은 기본 정도만 익히면 방대한 파이썬 라이브러리를 사용하여 원하는 성능을 발휘해내는 코드를 비교적 수월하게 작성하는 일이 가능하다는 큰 장점을 지녔다. 이런 특성 때문에 파이썬을 공부하려는 사람들이 상당히 많다. 이 상당히 많은 사람들 중 상당히 많은 사람들은 '파이썬을 공부하자'는 생각을 먼저 한다. 그리고 책을 산다. 그리고 많은 수가 포기를 한다.

여기서 하고 싶은 말은 '파이썬을 공부하자'가 시작이 되어서는 안 된다는 점이다. 올바른 시작점은 '파이썬으로 OO를 만들어보자'이다. '아니 파이썬을 해본적도 없는데 뭘 만들겠다는 생각부터 해야된다는게 말이 되냐'는 반문이 예상된다. 하지만 이는 매우 말이 된다. 사실 말이 되지 않는 시작점이 바로 '파이썬을 공부하자'이다. 시작점을 이렇게 잡으면 공부해야하는 범위가 파이썬 전체가 된다. '파이썬을 공부하자'는 그럴듯하게 보이긴 하지만 실제로는 불가능한 목표이다. '파이썬으로 뭘 한 번 만들어보자'가 훨씬 더 현실적이고 말이 되는 목표이다.

무엇을 만들지를 먼저 정해야 공부를 하기도 더 수월하다. 파이썬은 워낙 인기 언어이다보니 한국어와 영어로 된 자료들이 수두룩하다. 검색을 '파이썬 공부하기'로 하면 너무나도 일반적인 자료들이 나와서 크게 도움이 되지 않는다. 하지만 '파이썬으로 구글 파이낸스에서 정보 읽어오기'라든가 '파이썬으로 DB접속하기'라든가 '파이썬으로 PDF에서 텍스트 추출하기'등으로 검색하면 매우 구체적인 자료들이 많이 나온다. 특히 이런 검색 방식을 사용하면 누군가가 이미 짜 놓은 전체 코드도 발견 가능하다.

'그래도 기본부터 배워야 하지 않나'라는 염려가 든다면 붙들어 매도 된다. '파이썬을 공부하자'로 시작하든 '파이썬으로 뭐뭐를 만들자'로 출발하든 어차피 기본은 자연스레 배우게 된다.

코딩 공부는 해야겠다고 생각하지만 만들고 싶은 무언가가 없다면 무작정 덤비기보다는 아주 간단한 무언가라도 만들거리를 먼저 찾는 편이 좋다. 정말이다.

2. 기본 세팅이 가장 어렵다

무슨 언어를 배우든 그 언어를 작성하기 위한 세팅 시간이 가장 오래 걸린다. 가장 좋은 방법은 주변 사람에게 물어보는 것이지만 주변에 그런 사람이 없는 경우가 더 많을 것이다. 인터넷에 검색하면 정보들이 많이 나오지만 사람마다 막히는 지점이 다르기 때문에 도움이 되지 않을 경우가 많다. 하지만 어쩔 수 없다. 첫 세팅에는 시간이 걸린다는 사실을 인정하고 시간을 써야 한다.


프로그래밍 언어 공부를 시작하기 전에는 첫 세팅이 어렵다는 말이 무슨 뜻인지 이해가 가지 않을 것이다. 예를 들면 이렇다. 파이썬의 경우 일단 파이썬을 설치해야 한다. 그리고 파이썬 코드를 실행할 툴을 선택해야 한다. 개인적으로는 처음 시작할 때에는 PyCharm 무료버전을 사용하기를 추천한다. 그렇게 해서 PyCharm을 실행을 하면 파이썬 코드를 작성하는 화면을 띄워야 하는데 이때부터도 헷갈린다. File 메뉴를 보면 New가 있고 New Project가 있고 New Scratch File 이 있는데 이것들이 다 뭐하는건지도 처음에는 감이 잡히지 않는다. 어떻게 선택을 해서 기본적인 예제 코드를 실행하려고 하는데 실행(run)이 어디 있는지도 처음에는 잘 안 보인다. 어찌저찌 찾아보면 또 Run과 Debug가 보인다(물론 Run을 선택하면 되지만 처음에는 이조차도 당황스럽다).

어찌어찌 기본적인 사용법은 알게 되었다 해도 얼마 지나지 않아 작업환경 설정의 필요성을 느끼고 Anaconda같은 툴을 사용하게 된다. 그러면 또 PyCharm과 Anaconda를 연결시킬 필요가 생긴다(물론 처음부터 Anaconda만 사용해도 된다). 게다가 작업환경 개념도 처음에는 생소하게 다가온다.

이런 과정에는 시간을 써야 한다. 다른 방법이 없다. 만일 주변에 초반 세팅문제를 도와줄 사람이 있다면 시간이 엄청나게 절약될 것이다. 그런 사람이 있다면 잘해주도록 하자.

3. 영어 때문에 겁먹지 말자

사소해보이지만 한국 사람들이 코딩을 배우는 데에 생각보다 큰 장벽이 바로 '영어'이다. 프로그래밍 언어는 뭐든지간에 다 영어다(아주 옛날에 나눔기술이 '씨앗'이라는 한국어 프로그래밍 언어를 만드려는 시도를 했지만 결과는 좋지 않았다). 그래서 뭐라고 쓰였든지간에 영어라서 어려워보인다는 사람들이 매우 많다.


겁먹지 말자. 프로그래밍 언어에서 사용하는 단어 수는 생각보다 많지 않다. 물론 이미 영어를 일정 수준 이상으로 하는 사람이라면 보다 더 이해가 빠르고 수월하긴 하겠지만 그렇지 않다고 해도 크게 겁먹을 일은 아니다. IT전문가가 되려는 것도 아니고, 본인 업무에 코딩을 활용하여 업무 효율을 높이려는 정도라면 실제 코딩에 사용하는 영어단어는 정말 제한적이다. 게다가 필요한 기능은 그때그때 인터넷 검색을 통해 찾으면 된다. 특히 파이썬과 같은 언어는 한국어 검색 결과도 매우 많이 나온다.

물론 영어를 잘 한다면 그로 인한 이점은 상당하다. 이는 어쩔 수 없는 현실이다.

4. 컴퓨터 입장에서 생각을 해야 한다


프로그래밍 언어는 결국 인간이 알아보는 언어이다. 그러다보니 작성 시에 인간 입장에서 생각하게 되는 경우가 생긴다. '이렇게 작성하면 알아서 이렇게 처리해주겠지'라고 생각하는 순간 에러가 발생한다. 프로그래밍 언어는 아무것도 알아서 해주지 않는다. 코더가 코드를 작성하여 실행하면 순차적으로 한 줄 한 줄 읽혀 돌아갈 뿐이다. 코드에 쓴 것 외에는 아무것도 알아서 되지 않는다. 특히나 처음에 프로그래밍 언어를 공부하다 보면 이런저런 에러가 발생하는 상황을 많이 겪게 되는데 이 때 컴퓨터 입장에서 생각을 하지 않는다면 에러 원인이 도무지 눈에 들어오지 않게 된다.

5. 코딩 실력보다는 구상이 중요하다

직장인 실무 수준에서 코딩을 하며 느낀 점은 사용하는 기능이 제한적이라는 점이다. 즉, 사용하는 프로그래밍 언어의 기능이나 기본 내장 함수 등은 그 범위가 생각보다는 제한적이었다. 사용하는 언어가 주로 파이썬이라서 그럴 수도 있다. 웬만한 기능은 라이브러리로 실현이 가능하기 때문이다.


보다 중요하다고 느낀 것은 바로 사전 구상이다. 코딩 뿐만이 아니라 사전 구상이 중요하지 않은 작업은 없고, 코딩도 예외는 아니다. 비교적 단순한 코딩이라도 밑그림을 그려놓고 작업하는 습관을 기르면 많은 시간과 에너지를 절약하게 된다. 또한 어떤 작업은 기본 구상 없이는 제대로 해내기가 거의 불가능하기도 하다. 기본 구상을 먼저 하는 습관을 들이도록 하자.



본 글은 학원을 다니지 않고 독학으로 프로그래밍 언어를 배우려는 사람을 위해 작성된 글이다. 개인적으로도 학원을 다녀 본 경험이 없고 독학을 했기에 독학을 하면서 느낀 점들을 서술해보았다. 서술한 내용 중 가장 중요한 것은 1번에 해당하는 동기라고 생각한다. 프로그래밍 언어를 공부해야겠다는 압박감만 느끼고 구체적으로 무엇을 만들어보고 싶다는 마음은 없는 경우 시간만 쓰고 포기하는 경우를 주변에서도 많이 보았다. 이는 VBA든 파이썬이든 뭐든 모든 경우에 마찬가지다. 만들고 싶은 무언가가 있다면 그 때가 바로 프로그래밍 언어 공부를 시작할 타이밍이다.

반응형

댓글