“미래를 생각하는 개발자를 위한” 지금 배워야 하는 프로그래밍 언어

InfoWorld

프로그래밍 언어 배우기는 어렵지 않다. 경험만 있다면 24시간 이내에 기본은 익힐 수 있다. 구직 시장에서 경쟁력을 높이기 위해 새로운 프로그래밍 국제 공용어를 찾는 중이라면 지금 사용하는 언어도 감안해 선택해야 한다.

다음 중에서 이미 알고 있는 언어를 기반으로 새로운 언어를 선택해 익힐 것을 권한다.



자바에 익숙한 사람이 선택할 만한 언어
자바에 익숙한 사람은 더 이상 참신한 인재는 아니다. 대부분의 비즈니스 소프트웨어가 자바로 작성된 것은 사실이지만 웃돈을 주고라도 자바 개발자를 모셔가던 시절은 진작에 끝났다. 자바 개발자가 선택할 만한 다음 단계는 무엇일까? 다음 언어 중에서 선택해 보자.

스칼라
스칼라는 함수형 자바와 같다. 순수한 함수형을 추구하는 사람들은 스칼라를 무척 선호하는데, 사실 자바에서 스칼라까지의 거리는 상당히 짧다. 더구나 AI와 머신러닝이 뜨고, 아파치 스파크도 스칼라로 작성되는 요즘이라면 고민할 필요도 없어 보인다.

자바스크립트
자바 개발자라면 대형 아웃소싱 업체에서 일하는 경우를 제외하고 통계적으로 35세 이상이 대부분이다. 이들이 기억하는 자바스크립트는 “DHTML”을 만들고 “자바”라는 단어를 같다 붙이기 위해(그만큼 자바가 인기 있었으므로) 넷스케이프 브라우저에 집어넣었던 저급한 스크립트에 머물러 있을 것이다.

그러나 자바스크립트는 바뀌었고 서버 측 소프트웨어도 바뀌었다. 이미 자바를 알고 있으니 함수형 구조를 익혀야 한다. 자바스크립트는 서버 측 및 클라이언트 측 언어가 됐고 “임기응변” 스크립팅 언어가 필요한 거의 모든 곳에 사용된다. 자바스크립트는 개발자의 도구 상자에 넣어두면 쓸모가 있는 언어다.

C
C를 배운 적이 없는 사람도 있겠지만 요즘 C가 다시 부상 중이다. 게다가 프로그램에 C를 사용하지 않는다 해도 자바의 작동 원리, 동시성 문제 및 경합 조건과 같은 중대한 문제를 디버그하는 방법을 이해하는 데 도움이 된다.

C#에 익숙한 사람이 선택할 만한 언어
C#에 익숙한 사람은 섬세한 사람이다. 예전에는 빌 게이츠가 세운 마이크로소프트를 경외했겠지만 이제는 세상이 바뀌었다. 그러니까 여러분도 다음 언어를 하나 이상 익혀 마이크로소프트 세계 안팎에서 모두 스스로의 시장성을 높여야 한다.

자바스크립트
아까도 말했지만 예전의 자바스크립트가 아니다. 또한 모든 곳에 사용된다. 자바스크립트는 서버 측 명령줄(CLI) 앱을 위해 가장 접근성이 뛰어난 언어이며, 마이크로소프트가 몇 년 전에 갑자기 내놓은 J스크립트(JScript)를 사용할 필요가 없다. 자바스크립트에는 그보다 더 나은 닷넷 바인딩이 있다.

또한 C#으로 클라이언트 앱을 만들어왔다면 Node.js나 비슷한 런타임을 시도하거나 순수 웹 앱 만들기를 시도해보는 것도 좋다.

F#
한때의 기대처럼 세계를 바꿔 놓지는 못했지만 F#은 여전히 함수형 프로그래밍에 깊숙이 들어가 데이터 과학을 본격적으로 접하기에 좋은 방법이다. AI나 머신러닝 쪽을 파고 있거나 단순히 복잡한 계산을 위한 더 깔끔한 방법을 원한다면 F#이 적격이다.

C
이 목록에 자바가 포함될 것이라고 생각했겠지만 아니다. 자바 개발자와 마찬가지로 C# 프로그래머는 더 깊이 들어가서 런타임이 실제로 어떻게 작동하는지를 이해해야 한다. 즉, C를 이해해야 한다. C를 배워 두면 좋다.

파워셸 또는 배시(Bash)
마우스로 여기저기 클릭해서 원하는 작업을 하는 것은 사용자의 몫이다. 개발자는 모든 따분한 작업을 자동화할 수 있어야 한다. 여러 운영체제에서 제공되는 마이크로소프트 파워셸과 배시 터미널은 이러한 자동화를 위해 가장 광범위하게 사용되는 툴이다.

자바스크립트에 익숙한 사람이 선택할 만한 언어
이력서에 “풀 스택 개발자”라는 문구를 넣지 않는가? 그러나 여러분은 백엔드보다 프론트엔드 개발자로서 훨씬 더 뛰어나므로, 지금까지 그 말에 넘어간 사람은 별로 없을 것이다. 솔직히 이제는 “풀 스택”이라는 주장의 근거를 마련할 때다.

R
R이라고? 데이터 과학자와 통계학자가 쓰는 언어 아닌가? 그렇다. 하지만 데이터로 손쉽게 시각화를 생성할 수 있는 비교적 간단한 언어이기도 하다. R 스튜디오를 선택해서 하버드, 또는 굳이 고집한다면 마이크로소프트가 제공하는 온라인 강좌를 들어보자. (참고로 하버드 과정이 마이크로소프트보다 더 저렴하다. 직접 확인해보라!)

SQL
NoSQL을 잘 쓰고 있는데 왜 SQL인가? 다른 어떤 언어보다 SQL을 아는 사람의 수가 더 많은 것은 거의 확실하기 때문이다. 또한 사라질 일이 없는 언어이며 데이터를 올바른 방법으로 생각하는 데도 많은 도움이 된다.

파이썬
파이썬은 배우기 간단치 않지만 예를 들어 자바나 스칼라보다는 유의미한 뭔가를 할 수준까지 배우기는 더 쉽다. 또한 루비(Ruby)의 인기가 떨어지는 중이라서 몇 년 뒤면 효용성을 장담할 수 없고 따라서 열성적인 추종자가 아니라면 루비를 추천하기는 어렵다.

루비에 익숙한 사람이 선택할 만한 언어
코딩 교육에서 루비를 배웠다면 지금쯤 그게 돈낭비였다는 생각이 들 수도 있다. 이제 어디로 가야 할까?

자바스크립트
이미 프론트엔드에서 자바스크립트의 맛은 본 적이 있을 것이다. 더 깊이 들어가서 자바스크립트를 배워라. 또한 앵귤러(Angular) 또는 비슷한 프레임워크를 함께 배우면 좋다. Node.js 또는 비슷한 백엔드 런타임도 익히자.


파이썬
파이썬은 데이터를 다루는 사람들에게 인기가 있지만 웹 앱에도 쓸모가 있다. 더 다재다능하고 시장성 있는 인력이 되고자 한다면(즉 돈을 더 벌고 싶다면) 파이썬부터 시작할 것을 권한다.

R
자바스크립트 개발자에게 했던 조언과 똑같다. 비교적 간단한 언어인 R을 배워라. 시각화를 생성할 수 있고 데이터에 대한 생각을 바꾸게 해주는 언어다.

C 또는 C++에 익숙한 사람이 선택할 만한 언어
C 또는 C++로 프로그래밍을 한다면 임베디드, 드라이버 또는 저수준 프로그램을 다루는 사람이거나 그냥 나이가 많은 사람이다. 핵심은 관리되는 메모리를 사용하는 언어를 적어도 하나는 배워야 한다는 것이다.

D
D를 배워도 취직에는 도움이 되지 않고 실용성도 거의 없다. 그러나 익숙한 툴을 버리거나 C 라이브러리를 잃지 않고도 관리되는 메모리와 온갖 “새로운” 개념을 맛볼 수 있는 편리한 방법이다.

자바스크립트
웹의 언어, 자바스크립트를 배워라. 백엔드 언어나 프론트엔드 언어, 또는 두 가지 모두의 용도로 배우면 좋다. 요즘 자바스크립트를 정확히 배우려면 어느 정도 함수형으로 배워야 한다. 처음에는 D를 배우는 편이 더 빠를 것이다.

R
다시 말하지만 이 간단한 언어가 데이터에 대한 사고 방식을 바꾸게 해준다. 또한 R은 시각화를 만들 수 있으므로 배우는 즉시 실제로 써먹을 수 있다. 개발자라면 당연히 어디선가 로그 데이터를 디버그해야 한다. R이 도움이 될 것이다.

펄에 익숙한 사람이 선택할 만한 언어
펄 개발자라면 수염을 길게 기르고 여전히 카멜과 이리저리 꼬인 논리에 대한 믿음이 확고한 사람일 것이다. 텍스트 처리는 예전의 그 텍스트 처리가 아니고, 한때 놀라웠던 regex의 내장도 예전만큼 놀랍지 않다. 그러니 다음 언어 중 한 가지 이상을 배우자.

R
반복해서 말하지만 R은 배우는 즉시 쓸모가 있고 간단한 언어이며 대부분의 펄 프로그래머가 쉽게 배울 수 있는 좋은 선택이다.

자바스크립트
자바스크립트를 만져본 경험은 있겠지만 더 깊게, 함수형으로 들어가라.

C
여러분은 CPAN 모듈의 그늘 아래 수십년 동안 C를 사용했다. 그러니 이제 네이티브 C로 직접 CPAN 모듈을 작성해 보라. 정확하게 하지 않으면 대부분의 플랫폼에서 설치하려고 할 때 빌드가 충돌하는 모습을 보게 된다. C를 배우면 그러한 정확함을 이해하게 된다. C는 꽤 긴 여정이지만 이미 여러분에게는 C의 가장 어려운 부분, 즉 빌드를 디버그한 경험이 있을 것이다.

지금 배우면 안 되는 언어
다음에 소개하는 언어의 혁명기에 때를 맞추지 못했다면, 지금 뒷북을 칠 필요는 없다. 유능한 개발자들로 가득 차지 않았거나 개발자 수가 줄고 있는 다른 언어를 찾아보자.

자바
숙련된 자바 개발자이거나 위프로(Wipro) 또는 인포시스(Infosys)와 같은 코딩 공장에서 일할 계획이 아니라면 여러분이 자바를 능숙하게 다루게 될 무렵 자바스크립트를 선택한 친구들은 “풀스택 개발자”로서 훨씬 더 귀하신 몸이 되어 있을 것이다.

루비
인기는 떨어지는 중이고 지켜줄 보호자도 없다. 루비는 조만간 괴이한 컬트 언어라는 그루비(Groovy)의 전철을 밟게 될 것이다(그루비를 폄하했으니 엄청난 욕 메일을 받을 각오는 되어 있다). 그루비는 인기 순위 50위 안에도 못 드는 언어다.

그루비
이제 포기하라. 끝났다. 스칼라나 자바스크립트를 배워라. 그루비 추종자가 여러분을 찾아온다면 펄을 배운 다음 전체를 대문자로 코딩해 펄 사람들을 놀려 주면 좋겠다고 말하라.


펄 역시 그 자체로 컬트 현상이다. 몇 년 전부터 인기는 떨어지고 있지만 아직 몇 가지 부분에서 유용하다. 다만 대부분이 이미 해결된 문제들이다. (엉킨 CSV 파일을 처리하는 코드를 가져와 사용하면 되는데, 다시 펄을 쓸 이유가 무엇인가?)

초보자가 먼저 익혀야 할 언어
아는 프로그래밍 언어가 없다면 다음 언어부터 시작하라.

HTML, CSS, 자바스크립트
프론트엔드에 끌린다면 웹의 언어인 HTML, CSS, 자바스크립트를 배워라.

R
비교적 간단하면서도 차트와 시각화에서 바로 쓸모가 있으므로 배워 두면 좋은 언어다.

C
컴퓨터의 작동 원리에 대한 기초적인 이해는 누구에게나 필요하다. 그 목적을 기준으로 보면 C는 가장 기계에 근접한 언어다. 또한 가장 인기 있는 언어 중 하나이며 사물인터넷 시대에도 여러분에게 도움이 될 것이다.

배시 또는 파워셸
셸 스크립팅의 이해는 인생을 이해하는 것과 같다. 셸 스크립팅은 수많은 단조로운 작업을 자동화해준다. 파워셸은 마이크로소프트 생태계에 초점을 두는 반면 배시는 광범위하게 쓸모가 있다.  editor@itworld.co.kr