특히나 비전공자라면 반드시 알아야 하는 언어별 기준
2018년 8월에 예스24에 쓴 컬럼 <인생 첫 프로그래밍 언어 선택의 기준>이 있다. (https://brunch.co.kr/@hwchoi/stats). 지속적인 유입이 있고, 시대가 변해 새로 써본다.
소프트웨어 개발자 사이에서는 대학에서 소프트웨어 관련 학과를 전공한 사람을 전공자, 그렇지 않은 문과나 예체능 전공자를 비전공자라고 부른다. 이러한 이분법적 구분에 반감을 갖는 사람도 적지 않지만 이면을 보자. 소프트웨어 개발자 수가 많고, 비전공자이면서 소프트웨어를 개발하려고 전향하려는, 또는 전향한 사람이 그만큼 많다는 반증이다.
용어가 어찌되었든, 그리고 전공자든 비전공자든 인생 첫 언어를 선택해야 코딩에 입문할 수 있다. 한 언어로 평생을 살 수 있는 시대는 지났지만, 그래도 첫 언어는 이후 많은 길을 예약해준다(물론 예약된 길에서 벗어나도 된다). 그렇다면 세상에 프로그래밍 언어가 몇 개나 있을까? 위키백과에는 700개가 넘는 프로그래밍 언어가 등록되어 있는데, 개발자 성지인 깃허브에는 370여 개 언어가 사용된다. 그 많은 언어 중에 무엇을 골라야 할까? 4가지 선택 기준을 알아보자.
파이썬 창시자인 귀도 반 로섬에게 물으면 아마도 “파이썬”이라고 말할 것이다. 자바의 아버지 제임스 고슬링은 “자바”를, Go 언어를 만든 구글의 켄 톰슨은 당연히 “golang으로 돌격”을 외칠 것이다. 상상이지만 이런식의 대답이라면 위대한 언어의 창시자에게서는 해답을 얻기가 어려울 것 같다. 다른 방법을 생각해보자.
▶️ 자바 창시자 제임스 고슬링
개발자 초봉 6천만 원 시대가 열렸다. 넥슨이 쏘아 올린 연봉 기준이 업계 전반으로 퍼지고 있다. 소위 잘 나가는 회사라면 적어도 같은 수준에서 응수하고 있으니 이제 개발자라면 행복한 노래를 불러도 좋을 것이다.
초봉 6천을 주는 넥슨은 게임 개발 회사의 대명사다. 카카오, 네이버는 SNS와 검색을 기반으로 한 소프트웨어 선두 업체다. 직방, 당근마켓 이름만 들어도 개발자라면, 그리고 개발자를 꿈꾼다면 한 번 입사해 일해보고 싶은 회사다. 이런 회사에서는 어떤 프로그램 언어를 사용할까?
가장 쉬운 확인처는 채용 정보다. 채용 정보는 각사의 홈페이와 원티드, 잡코리아 같은 채용 사이트에서 확인할 수 있다.
▶️ 카카오 채용 사이트
연봉 호가가 높은 프로그래밍 언어를 선택하는 방법이 있다. 미국에서 개발자 연봉 1위 언어는 스칼라다. 2위는 Go 언어다. 각각 연봉 15만 불과 14만 불이다. 그럼 스칼라를 배워야 할까?
▶️ insights.stackoverflow.com/survey/2020
스칼라는 강력하다. 짧은 코드로 많은 걸 훌륭하게 해낸다. 현대 많은 언어가 그렇듯 절차형을 넘어 객체지향과 함수형 개념을 결합한 다중 패러다임 프로그래밍 언어다. 몸값이 높은 언어라니 사랑하고 싶어 진다. 2004년 마틴 오더스키(Martin Odersky)가 처음 개발한 스칼라는 코드가 간결하고 자바 가상 머신 위에서 동작하는 장점도 있다.
그런데 한 가지 문제가 있다. 이상하게 어렵다. 코드가 짧고 간결한데 어렵다니? 납득되지 않을 것이다. 짧고 간결하다는 건 많은 걸 함의하고 함축했다는 말이다. 프로그래밍 개념을 충분히 이해해야 잘 쓸 수 있다. 그래서 비전공자 첫 언어로는 무리다. 하지만 도전의식이 강하다면 OK. 반면 구글에서 개발한 Go 언어는 C 언어의 계보는 잇는다. 단순하면서 강력하고 쓰기 편하다. Go 언어는 첫 언어로 가능성이 있다.
TIOBE(https://www.tiobe.com/tiobe-index/)는 매달 인기 언어 순위를 발표한다. 숙련된 개발자 수, 교육 과정 수, 서드 파티 벤더(third party vendor) 수를 기반으로 한다. 구글, 빙, 야후!, 위키백과, 아마존, 유튜브, 바이두 같은 인기 검색 엔진을 활용해 등급을 매긴다. 2021년 4월 현재 C 언어가 1위, 자바가 간신히 2위, 파이썬이 3위다.
▶️ 티오베 2021년 4월 프로그래밍 언어 랭킹
티오베의 랭킹을 맹신하지 마라. 참고용이다. 하지만 추이를 참고하기에는 충분한 잣대다. 자바 급락 중, 파이썬 급등 중, C 언어 기사회생.
▶️ 티오베 프로그래밍 언어 랭킹 추이
초고수가 추천하는 언어, 가고 싶은 회사에서 사용하는 언어, 고액 연봉을 받는 언어, 쓰임이 많아서 취업이 용이한 언어. 이미 4가지 기준을 알아봤다. 지금부터 한 가지 기준을 더 제시하고자 한다.
최근 AI 열풍에 파이썬이 국민 프로그래밍 언어로 등극한 듯하다. 마치 닷컴 버블 시절에 국민 언어였던 HTML과 CSS가 떠오른다. 세기말로 가면 자바야 말로 핫한 언어였다. 그 이전은 C 언어, 더 이전에는 포트란과 코볼이 있었다. 이처럼 시대에 따라 핫한 언어는 늘 변해왔다. 앞으로도 그럴 것이므로 언어 하나로 평생 한 직장에서 버티기를 할 수 없다.
졸업을 앞둔 전공자라면 사회 첫 언어로 무얼 선택해야 할까? 이미 대학에서 C 언어와 자바를 익혔을 것이다. 기초가 탄탄하니 지금 당장 Go 언어와 스칼라를 배우자. 전공자라면 짧고 간결한 코드로 강력한 성능과 성과를 내는, 게다가 고액 연봉을 받는 Go 언어와 스칼라에 도전하는 것은 당연하지 않겠는가?
▶️ Go 언어 마스코트, 고퍼
비전공자이고 첫 언어라면 HTML&CSS, 파이썬, 자바스크립트, 자바, C 언어 중에서 선택하라. 목적에 따라 선택하면 된다.
프로그램이 뭔지 알고 싶어서, 함께 협업하는 프로그래머와 원활히 소통하고 싶어서, 프로그래밍이 가능한 디자인을 하고 싶어서라면 HTML&CSS로도 충분한 효과를 낼 수 있다(엄밀히 말해 이 두 언어는 프로그래밍 언어가 아니라 마크업 언어다). 코딩 입문 목적이 개발자가 될 생각이 아니라면 더욱 강추다. 결과물이 브라우저에서 즉각 보이므로 친숙하다. 물론 웹 프론트엔드 개발자가 꿈꾼다면 당연한 입문 언어다.
취미로 아두이노처럼 움직이는 사물을 만지작 거리고 싶은가? C 언어를 배우자. 아두이노는 C 언어가 기본 언어다. 자바는 어떠냐고? 개발자가 되고 싶다면 자바를 배우자. 눈 앞에 보이는 화면 말고, 뒤에서 지원해주는 프로그램을 만드는 데 유용하다(프론트엔드/백엔드 또는 클라이언트/서버로 구분해 부른다). 물론 안드로이드 앱을 만드는 데도 사용되지만 최근 코틀린에 왕좌를 물려주었다. 훗날 안드로이드 앱 개발을 목적으로 배울 필요성이 완전히 소멸될지도 모른다.
파이썬은 어떤가? 많은 사람이 “파이썬은 배우기 쉽다”고 말하지만 제대로 된 프로그래밍 언어이므로 깊게 들어가면 어렵다. 수박 겉을 핥고 “달지 않다”고 말하는 것과 별반 다를 게 없으니 믿지 마라. 기초 문법 정도만 쉽다. 그러니 쉽다는 환상을 던져버리자. 데이터를 분석하고, AI 신경망을 만들고, 업무 자동화에 관심이 있다면 파이썬을 선택하자.
C#은 어떤가? 게임에 로망이 있다면 도전하자. 유니티라는 게임 엔진은 C# 스크립트를 사용한다.
웹 페이지(웹 앱)에 관심이 있다면 자바스크립트를 배우자. HTML&CSS를 배우고 나서 배워도 된다. 물론 자바스크립트를 먼저 배우고 HTML&CSS를 배울 수도 있다. 어차피 웹 페이지에 HTML, CSS, 자바스크립트는 필수다. 자바스크립트는 자바처럼 뒤에서 지원해주는 프로그램을 만드는 데도 유용하니 일석이조다(프론트엔드와 백엔드 모두를 개발할 줄 아는 개발자를 풀스택 개발자라고 한다. 자바스크립트를 알면 풀스택 개발이 타 언어에 비해 상대적으로 용이하다).
마지막으로 R 언어도 소개한다. R 언어는 프로그래머보다는 분석가에 더 가까운 언어다. 완성된 프로그래밍을 만드는 것보다 데이터를 분석하고 활용하는 데 흥미가 있다면 R로 입문해도 좋다.
지금까지 인생 첫 코딩 언어를 선택하는 5가지 기준을 제시했다.
중요한 건 내 목적이다.
도움이 되었길 빈다.