프로그래밍 언어, 학습 난이도 좌우하는 요소는 '이것'...학습 쉬운 언어 vs 어려운 언어 차이는?

고다솔 / 2021-11-04 03:12:46

많은 프로그래밍 언어 학습자가 가장 먼저 우려하는 사항 중 하나는 학습 난이도일 것이다. 실제 코딩 학습의 어려움의 원인이 되는 요소는 언어마다 다르다. 언어 학습 난이도에 영향을 미치는 요소는 언어마다 조금씩 다르다. 그렇다면, 실제로 특정 프로그래밍 언어 난이도에 영향을 미치는 무엇일까? 그리고, 초보자가 학습하기 가장 적합한 언어는 무엇일까? 미국 온라인 테크 매체 지디넷의 설명을 아래와 같이 분석했다.

코딩 학습, 처음은 쉽지만 마스터는 어렵다
많은 학습자에게 코딩 학습을 시작하는 것 자체는 그리 어렵지 않다. 사실, 미취학 아동부터 성인까지 다양한 연령대의 학습자를 대상으로 한 코딩 기초 학습 프로그램을 쉽게 찾아볼 수 있다. 초기에 코딩 기초 지식을 탄탄하게 다져두면, 향후 프로그래밍 언어 완전 정복에 도움이 된다.

연령대를 떠나 코딩 초급자라면, HTML과 CSS 등을 학습하면서 기본 코딩 능력을 쌓기 좋다. HTML과 CSS 모두 고급 언어 학습의 기반을 다지는 데 도움이 되므로 코딩 입문자의 학습을 추천한다.

또, 초급자라면 무료 가이드 튜토리얼과 게임화된 학습 플랫폼, 초급자 훈련용 이러닝 번들 등 다양한 학습 자원을 활용하는 것도 좋다. 물론, 코딩 부트캠프도 도움이 된다.

그러나 초급자가 너무 긴 코드 구문을 본다면, 학습 도중 부담을 느낄 수 있다. 따라서 한 번에 많은 구문을 보는 대신 구문을 조금씩 다루면서 현실적인 학습 목표를 세워 학습 부담을 최소화하는 것이 좋다.

또, 많은 학습자가 초급 과정을 넘어서 자체 코드를 작성하는 심화 과정으로 넘어갈 때, 코딩 학습이 어렵다고 느낀다. 학습자의 학습 곡선이 순식간에 급속도로 올라간다고 느끼는 탓이다.

디버깅 과정도 많은 학습자에게 학습 부담을 안겨준다. 디버깅 과정의 어려움은 외국어 학습 도중의 문법 오류 발생과 같다고 볼 수 있다. 컴퓨터는 인간보다 실수에 더 엄격하다. 에러를 발견하고 이를 수정하는 데는 인내심과 끊임없는 연습이 필요하다. 다수 학습자가 코드 작성 시도를 하면서 에러가 발생해, 문제를 수정하는 과정에서 절망을 느낀다.

간혹 일부 프로그래밍 언어는 직관적이지 않은 요소에 의존한다. 특히, 객체 지향 언어는 일반적으로 이해한 것과 다른 객체를 정의하기 때문에 많은 학습자가 어려움을 겪고는 한다.

프로그래밍 언어 난이도에 영향을 미치는 요소는?
먼저, 학습에 활용할 수 있는 자원의 양이 프로그래밍 언어 학습 난이도에 영향을 미칠 수 있다. 보통 인기 프로그래밍 언어일수록 온라인에서 학습 자원을 쉽게 찾을 수 있다. 또, 초급자나 중급자, 고급 실력자 모두 코딩 커뮤니티에 프로그래밍 도중 어려운 부분을 질문하면, 원하는 답을 쉽게 찾을 수 있다.

반대로 전문 개발자 사이에서 인기가 낮은 언어나 실제 기업체의 활용 빈도가 낮은 언어는 학습 자원을 확보하기 어렵다. 또, 커뮤니티에 질문을 올려도 원하는 답변을 얻기 어려울 수도 있다. 비인기 언어일수록 능숙하게 다룰 수 있는 개발자 수가 적은 탓이다.

구문의 차이도 프로그래밍 언어 난이도에 영향을 미칠 수 있다. 프로그래머는 구문을 사용해 컴퓨터에 코드 해석 방법을 알려준다. 프로그래밍 언어마다 사용하는 구문이 다르다. 일부 언어는 직관적인 구문을 사용하여 명령을 쉽게 예측할 수 있다. 반대로 더 복잡한 구문을 사용해, 이해가 어려운 언어도 있다.

파이썬과 C++을 대표적인 비교 대상으로 살펴볼 수 있다. 많은 프로그래머가 파이썬을 학습하기 쉬운 언어로, C++을 학습하기 어려운 언어로 분류한다. 구문의 차이 때문이다. "Hello, World!"라는 명령문을 입력할 때, 파이썬에 입력할 문구는 아래와 같이 단 한 줄이다.

print "Hello, world!"

그러나 C++로 같은 명령문을 입력할 때는 아래와 같이 여러 줄의 구문을 입력해야 한다.

#include
int main()
{
std::cout << "Hello, world!
";
return 0;
}

실제로 구문이 프로그래밍에 큰 영향을 미친다. 컴퓨터는 잘못된 구문을 입력한 프로그램을 실행할 수 없다. 이 때문에 디버깅 과정에서의 구문 수정이 필수이기도 하다.

학습하기 쉬운 언어 vs 학습하기 어려운 언어
마지막으로 입문자라도 쉽게 학습할 수 있는 대표적인 언어로 어떤 언어를 볼 수 있을까? 반대로 학습하기 어려운 대표적인 언어는 무엇일까? 아래와 같이 설명한다.

먼저, 누구나 학습하기 쉬운 언어는 모든 웹사이트에 사용하는 언어인 HTML이다. HTML은 프론트엔드 웹 개발자와 웹 디자이너, 블로거 등이 사용하는 수직적 언어이다. 또, 프로그래밍 학습자도 기본 학습 언어로 선택하기 부담 없다.

그다음으로 인터넷 실행의 기본 언어인 자바스크립트도 어렵지 않게 학습할 수 있는 언어로 살펴볼 수 있다. 자바스크립트는 2020년 스택플로우(2020 StackFlow) 개발자 설문조사에서 가장 보편적인 언어로도 선정돼, 학습한 뒤에 여러모로 활용하기 좋다. 주로 웹 개발자가 웹사이트 개발 과정에 주로 활용한다.

또, 다양한 애플리케이션 덕분에 초급자도 자바스크립트 학습을 어렵지 않게 시작할 수 있다. 하버드대학교와 미시간대학교는 재학생뿐만 아니라 일반인도 무료로 수강할 수 있는 자바스크립트 학습 강좌를 제공하니 미국 주요 대학의 무료 강좌를 활용하는 것도 추천한다.

초급 단계 테크 직종 일자리 수요가 가장 빠른 속도로 증가한 PHP도 학습이 쉬운 프로그래밍 언어 중 하나이다. 워드프레스, 위키피디아 등 일부 웹사이트가 PHP를 활용하며, 융통성 있는 구문 덕분에 학습자도 부담스럽지 않게 학습할 수 있다. 게다가 학습 자원도 풍부해 어렵지 않게 학습할 수 있다.

초급자도 쉽게 학습하기 좋은 또 다른 언어는 파이썬이다. 파이썬은 최근 활용 사례가 가장 많은 인기 프로그래밍 언어 중 하나이며, 데이터 분석과 백엔드 개발, 앱 개발, 머신러닝 등 다양한 분야에 활용할 수 있다. 직관적인 구문과 다양한 무료 강좌 덕분에 초급자의 학습 장벽이 이전보다 더 낮아졌다.

그렇다면, 반대로 학습하기 어려운 언어로 어떤 언어를 살펴볼 수 있을까?

가장 먼저 앞서 예시로 언급한 C++을 이야기할 수 있다. 비디오 게임부터 자율주행차 개발 등 여러 분야에 활용하는 언어이지만, 복잡한 언어 구조 때문에 많은 학습자가 어려움을 호소한다. 다른 언어보다 더 많은 코드를 작성해야 한다는 점에서 오류 발생 확률도 높다. 그러나 활용 사례가 다양한 덕분에 여전히 인기 언어 중 하나로 꾸준히 언급된다.

그다음에는 단 12가지 명령만 있는 언어인 COW도 학습이 어려운 언어로 언급할 수 있다. COW는 사실상 활용 사례가 드물며, 실제 프로그래밍 언어 중 난해한 언어(esolang)로 유명하다. 실제 활용 사례는 적고, 이해가 어려운 탓에 일부 프로그래머는 일부 개발자가 단순히 자신의 실력을 과시하기 위해 COW를 활용한다고 판단한다.

마지막으로 학습하기 어려운 언어는 1950년대에 세계 최초의 프로그래밍 언어 중 하나로 등장한 LISP이다. 현재 LISP은 많은 연구원이 인공지능(AI) 개발을 위해 활용한다. LISP 학습이 어려운 가장 큰 이유는 현대에 등장한 여러 프로그래밍 언어와는 매우 다른 구문 탓이다. LISP은 스킴(Scheme)과 클로저(Clojure), 래킷(Racket)을 포함한 여러 방언을 사용하여 이해하기 어렵다.

[ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]

고다솔

IT/Tech, 금융, 산업, 정치, 생활문화, 부동산, 모빌리티

뉴스댓글 >

- 띄어 쓰기를 포함하여 250자 이내로 써주세요.
- 건전한 토론문화를 위해, 타인에게 불쾌감을 주는 욕설/비방/허위/명예훼손/도배 등의 댓글은 표시가 제한됩니다.

댓글 0