코딩을 배우기 위한 2가지 조건.

살아가면서 다양한 활동을 합니다. 최근에는 당연히 익혀야 할 것처럼 강조되고 있는 코딩이 있습니다. 코딩을 배우기 위해서는 여러 조건이 필요합니다.

코딩은 하나의 언어를 배우는 것과 같습니다. 단순히 생각해보면, 프로그램을 만드는 일이기에 특정 기술직처럼 느껴지곤 합니다. 이는 틀린 이야기는 아닙니다.

잘못된 이야기는 아니지만, 오늘 다루고자 하는 주제와는 맞지 않습니다. 오늘 다루고자 하는 이야기는 이런 전문직종을 준비하는 과정은 아닙니다.

단순히 코딩을 배운다는 관점, 다시 말해 학습의 관점에서만 이야기를 나누려고 합니다.

학습의 목적을 2가지로 나눠보겠습니다. 지극히 개인적인 생각임을 서두에 밝힙니다.

  1. 배움 그 자체에서 즐거움을 느끼는 경우.
  2. 배움을 이용해 생계를 유지하려는 경우.

학습에는 위와 같이 2가지의 큰 분류로 나눌 수 있습니다. 배움이라는 것은 몰랐던 사실을 알게 되는 것을 의미합니다. 결국, 과거에 몰랐던 사실을 현재 혹은 미래에 알게되는 과정인 것이죠.

이런 학습은 목적이 될 수도 있으며, 수단이 될 수도 있습니다. 1번의 경우 목적으로서의 학습을 의미합니다. 2번의 경우는 수단으로서의 학습을 의미하고 있습니다.

이번 포스팅의 주제인 코딩을 배우기 위한 2가지 조건은 결국, 수단으로서의 배움이 아닌 목적으로서의 배움을 의미하고 있습니다.

인공지능이 발전하면서 많은 사람들은 컴퓨터에 대해 다시금 큰 관심을 가지게 됩니다. Ai 인공지능이 뛰어넘지 못할 것이라 여겼던 인간의 영역에서 큰 성과를 보여주었기 때문이죠.

이런 사회적 분위기 속에서 ‘코딩’은 새로운 패러다임으로 자리하게 됩니다. 미래에 각광받게 될 수 있는 좋은 기술이며, 우리의 사고 방식의 성장과 형성에 도움을 준다고 전해지고 있습니다.

이 부분은 민감할 수 있기 때문에 다음에 자세하게 다루겠습니다. 어쨌든, 중요한 것은 코딩에 대한 관심은 높아졌고, 많은 사람들이 도전하는 분야라는 것입니다.

처음 코딩을 배우려면 선택을 해야 합니다. 바로 어떤 ‘프로그래밍 언어’를 배울 것이냐에 대한 첫번째 선택입니다. 이 선택을 통해 앞으로의 방향성이 정해지기도 합니다.

물론, 혼자 힘으로 어떤 프로젝트를 진행하기 위해서는 다양한 언어에 대한 지식이 필요하긴 합니다. 하지만, 첫 걸음부터 여러개의 언어를 익히는 것은 쉬운일이 아닙니다.

자칫 흥미를 잃을 수도 있으며, 괴로운 시간이 연속될 수 있습니다. 단순히 배움이 목적인 경우라면 흥미를 잃어서는 안될 것입니다.

배움을 위해 코딩을 시작하기 위한 2가지 조건.

1️⃣ 첫번째 조건은 관심사입니다.

너무나 흔한 이야기가 될 수 있습니다. 우리는 살아가면서 많은 관심사가 생기고 그 관심사에 따라 배움과 활동이 달라 질 수 있습니다.

학창시절에 관심이 많았던 분야는 결국 생계의 수단과 연결되기 쉽습니다. 막상 현장에서 활동하면 상상과는 다른 모습을 볼 수도 있습니다.

그럼에도 힘을 낼 수 있는 것은 자신의 관심사와 연결되는 부분일 수 있습니다. 또는 중요한 생계와 연결되어서 일 수도 있습니다. 어쨌든, 첫 시작은 관심사에서 출발하게 됩니다.

관심사는 흥미롭게 느끼는 어떤 대상을 의미합니다. 코딩 또한 흥미롭게 느껴지는 부분이 있어야 합니다. 예를 들어, 웹페이지를 구성하고 싶다는 목표가 있다면 그에 맞는 언어를 먼저 습득해야 합니다.

자신의 목적은 웹페이지를 제작하는 것인데, 데스크톱 프로그램을 만들고 있다면 흥미도 잃고, 관심도 잃어 결국 포기할 수 밖에 없습니다.

프로그래밍 언어에는 다양한 종류가 있습니다. python, c, c+, c#, java, javascript, php, html, css등의 다양한 종류들이 있습니다.

모든 언어의 특징을 알 수 있다면 좋겠지만, 그저 배움이 목적인 경우라면 그렇게 자세하고 광범위하게 학습할 필요가 없습니다. 단순히, 관심사와 목표를 채워줄 수 있으면 그만 입니다.

하지만, 학습자의 관심사가 명확하지 않다면 선택에 있어 어려움을 겪게 됩니다. 모든 언어는 저마다의 장단점을 가지고 있으며, 주로 활용하는 분야에도 차이를 보이게 됩니다.

차이를 가지고 있음에도 불구하고, 서로 연계되고 협력하는 모습도 있습니다. 그 과정에서 보다 완성도 높은 프로그램이 탄생하고, 원하는 기능을 구현할 수 있습니다.

그런데, 목표가 없고, 관심사가 없다면 모든 것을 다 배워야 할 수도 있습니다. 이는 전문직종으로 나아가는 수단으로서의 배움이 될 수 있으며, 지루한 시간의 연속일 것입니다.

코딩은 비교적 정적인 활동의 연속이기 때문에 아주 작은 재미도 느끼지 못한다면 지루하게 느껴질 수 있습니다.

따라서, 학습자의 관심사를 분명하게 정하고, 관심사가 많다면 우선순위를 정하여 하나씩 도전하는 것을 추천합니다.

2️⃣ 코딩은 규칙을 배우고, 큰 틀을 만들어 간다는 것에 대한 이해입니다.

우리는 코딩에 대해서 영화, 드라마등의 매체를 통해 많은 부분의 이미지를 가지고 있습니다. 멋지게 프로그램을 다루는 모습이 있는가 하면, 반대로 바쁘게 보안 시스템을 뚫는 경우도 종종 볼 수 있습니다.

서로 다른 상황에서 보여지는 공통된 모습이 있습니다. 바로, 모든 것을 알고, 빠르게 움직이는 손과 눈, 그리고 화면 속의 이상한 글자들입니다. 과연 이것이 프로그래머의 진정한 모습일까요.

그렇지 않습니다. 물론, 뛰어난 몇몇 소수의 사람들은 그런 모습을 보일 수 있습니다. 어떤 상황에서도 당황하지 않고, 문제를 해결하기 위해 빠르게 움직이는 손과 함께 모니터에는 엄청난 양의 문자들이 보일 수 있습니다.

그리고 ‘엔터’ 한 번으로 모든 것을 처리하는 모습도 보일 수 있습니다. 하지만, 일반적으로 그런 모습은 아닐 것입니다. 이는 지극히 개인적인 생각일 수 있습니다.

코딩은 정해진 규칙과 명령어들을 가지고 하나의 큰 틀과 흐름을 만들어 가는 과정 입니다. 모든 것을 직접 구현할 수도 있지만, 이미 구현되어 있는 라이브러리, 프레임워크를 사용하여 완성으로 나아가게 됩니다.

여기서 중요한 것은 프로그램 언어가 가지고 있는 기본적인 규칙과 명령어를 습득하는 것입니다. 가장 힘들고 지루한 학습 시간이 바로 이 구간이 됩니다.

그렇게 익히게 되면, 프로젝트(목표)를 향해 가는 과정은 필요한 블럭을 필요한 부분에 쌓는 것과 비슷하다고 할 수 있습니다.

사람의 머리는 한계를 가지고 있습니다. 물론, 개인간의 차이는 존재하지만 어느 정도의 한계성은 있습니다. 모든 것을 기억하지 못하고, 모든 것을 떠올릴 수는 없습니다.

결국, 문제점을 해결하기 위한 해결책은 검색 혹은 문서를 찾아보며 활용하게 됩니다.

누군가는 이런 모습에서 실망을 할지도 모르며, 또 누군가는 너무 지루한 시간으로 여길 수도 있습니다. 하지만, 이 과정이야말도 진정한 코딩 학습의 시간이 될 수 있습니다.

기능을 구현하는 과정에서 실수과 문제점이 발생할 수 있습니다. 이것을 해결하기 위해 다양한 시도를 하고, 시행착오를 거치면서 또 하나의 학습이 이루어지게 됩니다.

이런 과정에 대한 이해도가 있다면 코딩 학습을 진행하는 과정에서 좌절하지 않을 것이 분명합니다.


우리는 삶을 살아가는 많은 부분에서 다양하고 새로운 것을 익히게 됩니다. 우선 기본적인 규칙과 단어를 익히게 됩니다.

그리고, 그 규칙과 단어에 맞춰 상황을 맞이하게 됩니다. 그 상황에서 실수, 실패, 좌절, 해결을 경험하면서 성장을 하곤 합니다.

쉽지 않고, 어렵게 느껴지는 시간도 있습니다. 하지만, 지나고 나면 어느덧 성장한 자신의 모습을 볼 수 있습니다. 학습이 이루어진 모습이기도 합니다.

코딩 또한 위에서 언급한 2가지의 이해를 가지고 시작한다면 중간에 포기하는 일은 적을 수 있지 않을까 생각합니다.

Leave a Comment