사람들은 소프트웨어 분야에 입문할 때, 여러 계획들을 세우면서 여러 중대한 선택들을 해야한다.
그중 정말 많이 고민하고 무엇을 선택해야할지 머리를 꽁꽁 싸매는 주제가 있다.
그게 무엇이냐면, 바로 첫번째 프로그래밍 언어 고르기이다.
프로그래밍 언어는 많다.
아 수정하겠다. 정말 많다!
과거부터 현재까지 수많은 프로그래밍 언어들이 나타났고 각 프로그래밍 언어들은 각기 다르며 다양한 특징들을 지니고 있다.
이러한 상황 속에서 프로그래밍에 입문한 초보자들은 수많은 프로그래밍 언어들을 보며 혼란스러워하며 무엇을 선택할지 몹시 고민한다.
나 역시 그랬다. 너무나도 다양했고 그에 비해 내가 아는 정보는 거의 없었다.
그래도 인터넷에서 다양한 정보들을 얻어 첫 프로그래밍 언어들을 선택하는 법에 대해서 어느 정도 생각을 할 수 있었고 그에 따라 나의 첫 프로그래밍 언어를 선택할 수 있었다.
무엇을 선택했냐고? 마지막 장에서 알려주겠다. 이 글을 읽는 독자들이 무조건 내가 선택한 첫 언어를 따라올 필요는 없기 때문이다.
그러면 지금부터 내가 알아냈던 첫 프로그래밍 언어 선택하는 방법에 대하여 소개해보도록 하겠다.
참고로 앞에 붙는 번호가 첫 언어를 선택하는 방법의 우선 순위라 생각하면 된다.
가장 중요한 얘기다. 당신이 하고 싶은 작업이 있다면 그 작업을 하기 위해 필요한 언어를 배워라.
예를 들어, 게임 제작을 하고싶다면 게임 제작 엔진인 유니티에서 사용하는 C#언어를 배우거나 언리얼에서 사용하는 C++을 먼저 배우면 된다.
웹 페이지를 만들고 싶다고? 그러면 Javascript를 배워 웹 사이트 만들기에 활용하라.
프로그래밍 언어는 프로그램을 만들기 위한 도구이다.
만들고 싶은 프로그램, 하고 싶은 일과 관련된 프로그래밍 언어를 배워라.
그리하면 언어를 배울 때 동기가 강하게 존재하므로 계속해서 집중해서 배울수있게 자신을 이끌어 나갈수 있을 것이다.
또한 하고 싶은 일과 관련된 부분을 배울 때는 불꽃처럼 집중할 수 있을 것이다.
프로그래밍 언어로 하고 싶은 일이 없다고?
그렇다 하더라도 최대한 자신이 프로그래밍 언어를 이용하여 해내고 싶은 일을 생각해내는 것이 좋을 것이다.
프로그래밍 언어를 배우는 이유를 만들어라. 그것보다 강력한 학습 동기는 없다.
정말 만들고 싶은 것도, 따로 하고 싶은 것도 없는데 프로그래밍 언어를 배우고 싶다면 다음 방법을 따라라.
이는 두번째 조건이다. 즉 첫번째 조건에서 선택을 하지 못했다면 고려해봐야 할 사항이다.
프로그래밍 언어로 하고 싶은 일이 없을 때는, 솔직히 말해서 학습 동기가 엄청나게 높지는 않을 것이다.
그러므로 첫번째로 선택한 프로그래밍 언어의 습득 난이도가 조금이라도 어렵기라도 한다면 당신은 배우던 첫 프로그래밍 언어의 책이나 강의를 덮어두고 다른 일을 하고 싶은 욕망이 생길 것이 분명하다.
따라서 이런 경우에는 배우기 쉬운 언어를 선택하라.
무엇이 배우기 쉬운거냐고?
프로그래밍 언어들중에는 개발자 편의를 위해 쉽게 문법이 설계되어진 언어들이 많다.
그중 가장 유명한 언어는 파이썬인데, 파이썬은 문법들을 들여다보면 몹시 쉽다는 것을 금방 느낄수있다. 문법이 마치 영어로 말하는 것 같다는 느낌이 들며 프로그래밍 언어를 잘 모르는 사람이 보아도 어느 정도 흐름을 알아 챌 수 있을 정도이다.
복잡한 문법을 가진 프로그래밍 언어를 첫 언어로 선택하여 끙끙대며 아무 일도 하지 못하는 것보다는 쉽게 습득할수있는 언어를 선택하여 뭐라도 해보는 것, 그것이 가장 학습동기를 이끌어 낼 수 있는 요소가 아닐까?
따라서 나는 이 경우에는 쉽게 습득할수있는 언어를 선택하라 추천해주고 싶다.
이 요소 역시 중요한 요소이다. 비록 내가 배워 활용하고 싶은 언어이고 문법 역시 쉽다 하더라도, 이를 배우기 위해 구글에 학습 자료를 찾아보는데 만약 자료가 아랍어, 인도어로만 적혀있다면 배우는 것이 몹시 고될것이다.(과장된 부분이긴 하다)
따라서 학습 자료가 풍부한지도 이 역시 고려해볼 대상이다.
물론 요즈음에는 다양한 프로그래밍 언어들에 대한 다양한 자료들이 인터넷이라는 정보의 바다에서 엄청난 규모로 존재하기 때문에 이에 대해서는 신경을 안써도 될법은 하다.(정말 극한의 비주류 언어만 아니면 말이다..)
이는 개인적으로 생각하기에는 생각보다는 중요한 요소는 아닌것같기도하다. 그래도 중요하다고 하는 사람들이 많아 넣어 보았다.
프로그래밍 언어의 전망성이란 앞으로 그 프로그래밍 언어를 많이 사용할지에 대한 생각들을 이야기하는데, 물론 과거에는 핫한 프로그래밍 언어였다가 인기가 차츰 사그라들며 심지어 시장의 규모가 점점 작아지는 언어들도 있다.
그 예로는 애플이 ios 개발 주 언어로 Swift를 선택해 점차 점유율이 축소되어가는 objective-c언어가 있다.
하지만 이러한 언어들도 향후 몇년간 완전히 사라질것이라는 보장은 없다.
사실 프로그래밍 언어의 전망에 대해서 예측하는 것은 위험할수도있다.
10일만에 개발되어졌던 Javascript가 이렇게 흥할줄은 누가 알았겠는가?
게다가 앞서 예시로 소개한 objective-c언어 역시 몇십년후에도 계속 존재할수있다.
사실 요즘 유행하는 주류의 프로그래밍 언어들을 공부한다면 공부자료도 많을 것이고, 이와 관련된 일자리도 많을 것이다. 다양한 장점이 존재할 것이다.
그러므로 이 고려사항 역시 생각해봐도 나쁠일은 없을것같다.
첫 프로그래밍을 선택할 때 고려해봐야 할 것은 이 정도로 설명을 마무리하겠다.
각자 자신에게 잘 맞는 첫 프로그래밍 언어를 선택하여 프로그래밍 세계에 첫 발걸음을 잘 내딛길 바란다. 화이팅!
긴글 읽어주셔서 감사합니다 :)