세상에는 수백 수천개의 프로그래밍 언어가 있어서 처음 프로그래밍을 배우는 사람은 무엇부터 배워야 할지 모르는 난감한 상황에 놓이게 된다. 그러나 이러한 고민을 하는 사람이 많은 만큼 해답을 제시하는 사람도 많이 있었는데 그 중에 하나의 대답을 소개한다.
미국 지디넷의 칼럼니스트 데이비드 게위츠(David Gewirtz)라는 분이 이러한 문제에 답을 주는 것으로 유명하다. 그는 온오프라인에서 프로그래밍을 가르치는 일을 약 20년 간 해왔고, 현재는 UC버클리 학생들을 가르치고 있는 사람이다. 언어 디자인을 전공했고, 약 20개 이상의 언어를 사용할 수 있다고 한다. 그가 쓴 “어떤 프로그래밍 언어가 가장 인기있나”라는 글을 소개하면서 프로그래밍 언어 선택에 조금이나마 도움이 되었으면 한다.
그가 사용한 방법은 언어 인기도를 측정할 수 있는 여러 사이트를 참고해서 인기 언어를 집계하는 방법이다. 이러한 방법으로 프로그래밍 언어의 순위를 정하기 때문에 꽤 신뢰할 만한 방법이라 하겠다.
사진 지디넷 제공
위의 자료는 2016년도를 기준으로 각 프로그래밍 언어의 랭킹을 조사한 여러기관의 결과를 정리한 표이다. 상위에는 우리가 익히 아는 자바나 C, 파이썬 같은 언어들이 랭크되 있고 아래로 갈 수록 특수한 목적을 위해 만들어진 언어들이 포진해 있다.
데이비드 게위츠는 위 표에서 각 언어가 몇 위에 몇번 랭크되었는지를 고려해 또 하나의 차트를 만들었다. 그렇게 순위도를 기준으로 따로 차트를 만들어 보니 인기도에 따라 3개의 그룹으로 나뉘어 지는 것을 확인 할 수 있었다.
자료 지디넷 제공
1그룹엔 자바, C, 파이썬, C++이 포함되었고 2그룹엔 자바스크립트, C#, PHP, 스위프트가, 3그룹엔 오브젝티브-C, R이 들어갔다. 이렇게 구분해 놓고 보니 각 그룹의 차이가 확연히 드러나는 것을 알 수 있다. 즉 1그룹에 들어가는 언어들은 특정 플랫폼에 관계없는 범용성을 갖춘 언어들이고 2그룹은 특정 플랫폼을 위해 만들어진 언어들이란 점이다. 2그룹에 속한 자바스크립트나 PHP는 주로 웹 개발을 위해 쓰이는 언어들이고 C#과 스위프트는 각각 MS와 애플의 플랫폼에 쓰이는 언어들이다. 3그룹에 위치한 언어들은 특정 목적을 위해 따로 만들어진 언어들로 오브젝티브-C는 아이폰의 앱을 개발하는 용도로, R은 통계 계산과 그래픽을 위한 언어이자 소프트웨어 환경으로 주로 쓰인다.
이렇게 인기있는 언어가 1, 2, 3 그룹으로 나눠지는 이유는 우리가 프로그램을 개발할 때 한개의 언어만 사용하는 것이 아니기 때문이라는 것이다. 자바나 C++를 잘 다룬다고 해도, 웹 작업을 할 때면 또 자바 스크립트나 PHP등을 쓸 줄 알아야 한다는 것이다. 한 언어만 잘 다룬다는 것은 전장에 나가는 장수가 칼 한자루만 가지고 나가는 것과 똑같은 것이다. 전장에 나갈려면 칼도 필요하지만 방패와 또 때로는 창도 필요한 법이다.
위의 그림은 인터넷에 뜨도는 아주 재미있는 그림인데 지금 얘기하고 있는 주제를 가장 효과적으로 보여주는 그림이다. 내용을 좀 보면 가장 쉽게 시작할 수 있는 언어로 파이썬을 추천하고 있다. 그리고 직장을 구하기 위해 언어를 배우는 과정이라면, 플랫폼이나 취직하고 싶은 회사에 따라 배워야 하는 언어가 달라지는 것을 알 수 있다. 웹쪽의 일을 하고 싶다면 자바스크립트를 그리고 모바일 쪽의 일을 하고 싶다면, 애플의 아이폰용 언어는 오브젝티브 - C를, 구글의 안드로이드용 언어로는 자바를 배워야 한다. 따로 각 회사별로 중요 언어가 표시되어 있는데 MS는 비쥬얼 스튜디오에 쓰이는 C#을, 애플은 오브젝티브 - C를, 그리고 페이스북과 구글은 파이썬을 배워야 한다고 나와 있다. 이도 저도 아니고 오직 배우는 것을 목적으로 한다면 쉬운쪽은 파이썬을 좀 깊게 파고 들고 싶다면 C++을 추천하고 있다.
이제 결론을 이야기 해 보자. 데이비드 게위츠는 수많은 언어를 분석하고 종합해서 처음 프로그래밍 언어를 배우고자 하는 사람에게 다음과 같은 조언을 해 준다. 가장 처음에 배울 언어는 자바나 C++이 좋다. 그이유는 대부분의 언어들이 C에서 파생되어 나왔기 때문에 C 패밀리에서 가장 인기가 좋은 C++이나 자바를 배워두면 다음 단계의 언어를 배울때 쉽게 적응 할 수 있다는 것이다. 2단계로 배우면 좋을 언어는 자바스크립트이다. 웹기반의 응용 프로그램들이 점차 많아 지고 활용도도 뛰어나기 때문에 자바스크립트에 대한 수요도 늘어날 것이란 이유에서다. 3단계로 배워두면 좋은 언어는 PHP, 스위프트, 파이썬 중 하나이다. 2단계까지 배웠으면 자신이 하고 싶은 일에 따라, 웹과 데이터베이스 일을 하고 싶다면 PHP를, 애플의 플랫폼이나 애플리케이션에 관심이 있다면 스위프트를, 빅데이터 프로그래에 관심이 있다면 파이썬을 배우면 될 것이다. 파이썬은 간결한 문법과 직관적인 언어로 처음 프로그래밍을 배우는 사람들도 많이 배우는 언어이지만 하이엔드 레벨에서도 많이 쓰는 언어이다. 미국에서는 파이썬 프로그래머의 몸값이 가장 높다는 얘기도 들었다.
언어를 하나만 잘 안다고 모든 문제가 해결되는 것이 아니기 때문에 최소한 서너가지 이상의 언어를 배우는 것이 좋다. 그래야 한 언어에서 부족한 부분을 다른 언어에서 채워 줄 수 있기 때문이다. IT산업이 너무나 빠르게 변하고 있기 때문에 이러한 추세에 부합하는 열려있는 마인드로 세상을 대하는 자세가 중요할 것이다.
결론만 다시 정리해 보자. 1단계로 자바나 C++중 하나를 선택해 배운다. 2단계로 자바스크립트를 배운다. 3단계로 PHP, 스위프트, 파이썬 중 하나를 선택해 배운다. 이렇게 각 단계에서 각각 하나씩의 언어를 잘 익히고 나간다면 앞으로 다른 어떤 언어나 플랫폼도 쉽게 적응 할 수 있게 될 것이다.
'SW 배움터' 카테고리의 다른 글
ZoomIt 특수 기능 사용법 (0) | 2017.09.29 |
---|---|
윈도우 필수 추천 프로그램 10 (0) | 2017.09.27 |
크롬에서 Flash 오류 문제 해결 (0) | 2017.09.07 |
MS의 새 웹 브라우저 엣지에서 홈버튼 불러오기 (0) | 2017.08.23 |
아두이노 8: 멜로디 연주하기 (0) | 2017.07.14 |