What Programming Language I should start with?

업데이트:

Programming_Language_Pic

누구에게나 첫 경험의 순간이 있습니다.

아니요 그거 말구요. 프로그래밍이요. 처음 어떤 언어를 쓰든 Hello World!를 화면에 띄우는 순간 많은 사람들이 프로그래밍의 절반은 했다고들 이야기 하잖아요? 하지만 몇몇 분들은 그 첫 결실을 맺기까지 많은 고민을 하게 됩니다.

가령 오늘의 주제처럼 도대체 어떤 프로그래밍 언어가 시작하기에 가장 좋은 언어인가요? 라는 질문에 혼자서 대답을 하기 전까지는요.

그래서 어떤 프로그래밍 언어를 가장 먼저 배워야하나요?

네 바로 본론으로 들어가보겠습니다. 어떤 언어를 가장 먼저 배워야 할까요?

만약 여러분이 컴퓨터공학과에 입학하는 신입생이라면 저는 주저하지 않고 C를 가장 먼저 배우라고 할것입니다. 왜냐고요? C언어는 저수준의 언어(컴퓨터가 비교적 쉽게 알아먹을 수 있는 어셈블리어와 거의 1대1 매칭이 되는 언어, 물론 C도 배우실 때에는 고수준의 언어에 속합니다)이면서도 포인터 등 도대체 이걸 왜 배워야 하나 싶은 것들을 배워야 하거든요. 사실 이런 개념들을 배워두면 이후에 배울 운영체제, 자료구조, 데이터 베이스 등 많은 내용들을 쉽게 터득하실 수 있습니다.

C를 배우셨다구요? 그러면 이제는 대략 프로그래밍 언어가 어떻게 구성되는지 아셨으니, 다음 언어를 배우기에는 한결 수월할겁니다. 대신 그 문법에 익숙해지는 것뿐아니라 해당 언어가 가지고 있는 철학도 이해하시길 권해드립니다. 예를 들어 왜 C++는 다중 상속을 허용하는데 Java는 안하는지 등의 클래식한 문제들이 있습니다. 이 부분을 이해한다면 뭐 취업할때도 도움이 되겠죠?

저는 컴퓨터공학과 입학하는 것도 아니고 그냥 빠르게 언어를 배워서 코딩을 하고 싶어요!

네 그러시면 스크립트 언어를 배우시면 됩니다. (요새는 대부분의 언어가 지원하지만) 스크립트 언어는 한줄 한줄 코드를 짤 때마다 즉각적으로 결과를 확인할 수 있는 언어이기 때문에, 이런 점들이 긴 코드를 작성하지 않고 결과를 빨리 알고 싶은 분들인 비기너들에게 많이 선호되는 언어 타입입니다.

가장 흔한 언어로는 파이썬과 루비가 있으며 (요새는 거의 루비는 안쓰는 추세입니다), 자바 스크립트도 여기에 포함됩니다. (물론 Node, React, Angular 등은 컴파일 과정이 포함되기 때문에 제외하기로 합니다.)

예를 들면 콘솔에 python을 실행하고

print('Hello World!')

>>> Hello World!

처럼 바로 결과를 확인 할 수 있으니 직관적이며 배우는 속도가 빠르게 됩니다.

아 저는 모바일/게임을 개발하고 싶은데요?

네 그렇다면 바로 코틀린(안드로이드)나 스위프트(iOS) 혹은 Dart(Flutter, 크로스 플랫폼) 등으로 바로 넘어가셔서 언어를 배우셔도 상관 없습니다. 프로그래밍 언어의 철학은 모든 언어가 다 공유하거든요.

게임이라면 C++로 바로 배운다거나 C#을 공부하셔도 무방합니다!

그래서 결론이 뭐요?

결론은 어느 언어를 배우든 크게 관련이 없다는 것입니다. 그래도 처음 시작하신다면 남들이 많이 배우는 언어를 추천드립니다. 스택오버 플로우에서는 매년 서베이를 진행해서 어떤 기술,언어가 가장 활발하게 논의 되었는지 발표합니다 이런 내용도 좋은 참고 사항이 될 수 있겠네요.

하나만 찍어주시면 안되요?

그렇다면, 파이썬, 자바(코틀린), C++ 중에서 하나를 골라서 배워보세요. 그리고 브랜치를 확장하는 것이 도움이 됩니다. Golang도 좋고, 특정 분야를 타깃으로 한다면 그 분야에서 가장 많이 사용되는 언어가 가장 시장성이 좋고, 나중에 취업하기에도, 자료를 찾아보기에도 좋습니다.

예를 들어서 LISP에 관심이 있어서 처음 언어로 그것을 배운다면, 나중에 벽을 만났을 때 자료를 찾아보기 어려울 것입니다. 하지만 많은 사람들이 사용하는 언어라면 그럴 확률이 상대적으로 적겠죠? 처음 배우는 사람에게는 아무래도 자료가 많은 것이 이점으로 작용합니다. 회사에서는 Ion이라는 기발한 언어를 가끔씩 사용하는데, 자료가 너무 한정적이라서 사람을 골때리게 합니다. 네 프로그래밍 경력이 있는 사람들도 자료가 부족하면 애를 먹으니, 비기너에게는 자료가 많은 것이 절대적으로 배우는 것에 유리합니다.

태그: ,

카테고리:

업데이트:

댓글남기기