본문 바로가기
칼럼

Java는 공부하기 어려운 언어인가?

by Couldi 2022. 1. 2.
반응형

이쪽 프로그래밍 교육업계에 환멸을 느끼고 업계를 떠나있다가, 2021년 말 정도에 다시 복귀하게 되었다.

거지같은 일이라는 생각이 든다. Dart가 JavaScript를 대체하겠다고 했지만, 계획대로 되지 않았듯이, 나 역시도 뭐 하나 쉽게 가는 편이 없는 것 같다. 어쨌든 업계에 복귀해서, 시장 동향을 파악하고, 내가 심은 씨앗들이 어떻게 자라게 되었나 살펴보니 한편으로는 반갑기도 하면서, 이 교육업계가 정말 망해야한다는 확신이 생기게 되었다.

 

 

기존의 코딩시장은 어떻게 변했는가

혹시 나 이 글을 보고 있는 프로그래밍 교육관련 정부정책 담당자가 있다면 제발 혀깨물고 자살했으면 좋겠다.

(말이 좀 심했던거 같은데... 진심이다. 당신들은 일자리를 찾지 못하고 방황하고 있는 청춘들의 젊음을 볼모삼아 세금을 낭비하고 있다. 차라리 세금만 낭비해달라고 간곡히 부탁하고 싶다. 사람들의 절박함을 이용해서 말도안되는 프로그래밍교육을 만들고, 그 교육으로 밀어넣지 말아라.)

 

일반적으로 요즘 프로그래밍에 관심을 두는 사람들은 Python이나 JavaScript는 쉬운 입문언어라고 생각하고, Java는 고리타분하고 비전공자가 공부할수 없는 어려운 언어라고 생각하는 경향성이 정석처럼 받아들여지고 있었다.
일부 이런 상황이 된 이유에는 어느정도 내 탓도 있다는 생각이 든다. 애초에 Python과 JavaScript를 쉬운 언어이고, 비전공자가 할 수 있는 언어라는 형태로 강의를 만들어 팔아먹었어야 했으니까.

 

자의식 과잉이라고 생각할 수도 있겠지만, 비전공자 프로그래밍 교육방향이 저렇게 흘러가는데 한숟가락 보탠 것은 사실이다. 당시에는 Ruby on Rails 같은 거나 비전공자가 할 수 있는 거라는 소리와 자신들이 python이나 JavaScript를 가르치지 않는 것에는 다 이유가 있다는 식의 조언을 들었다. (특히, 언론덕에 천재프로그래머라고 알려진, 어느 코딩교육단체 수장은 'Python은 잘하면 될지 몰라도, JavaScript를 비전공자에게 가르치는건 불가능하다'는 식의 헛소리까지 했다.)


아무튼 비전공자와 전공자를 구분하는 마케팅, 파이썬과 자바스크립트는 쉬운 언어라는 포지셔닝이 시장에 주효하게 먹혀들었고, C로 시작하는 프로그래밍 언어와 Java는 전공자들이나 하는 언어고, 비전공자들이 하기에는 장난아니게 어려운 언어라는 인식이 시장에 자리잡았다.

 

Python은 쉬운 언어이기에 교육도 개나소나 다할수 있다고 많은 사람들이 뛰어들었고, 그중에는 공부를 시작한지 몇년 되지 않는 비전공자 출신의 유튜버들이나 개발자들, 수많은 유사 교육기관들이 있었다. 그 와중에 손정의라는 양반이 대통령을 만나 'AI가 미래다' 라는 식의 헛소리를 짖끼게되면서 python을 기본으로 하는 인공지능 교육이 불을 붙게되는데, 이 또한 매우 어처구니가 없는 일이였다.

물론 교육이 이루어지고, 해당분야에 많은 사람들이 관심을 가지고 공부를 시작하는 건 나쁜일이 아니다. 오히려 매우 긍정적인 일이고, 적극장려해야 하는 일이다. 하지만 그 방향이 완전 잘못되었다. 이부분에 대해서는 언젠가 다시 글을 쓸날이 있을지도..

 

JavaScript의 경우는 Python의 경우보다는 상황이 좀 많이 나은 편이였다. 시장에서 많이들 사용하고 있는 언어였고 실제로도 많은 개발자들과 전문가들이 있었다. 지금도 많은 회사에서 사용되는 스택이기도 하고.. 이 부분에 대해서는 내가 크게 할 말이 없다. 당시 교육과정에 React를 도입하겠다고 했지만, 지원도 형편없고, 반대가 심해 반쪽짜리 교육밖에 못만들었으니.. 지금 생각해보면 한 6개월정도 트랜드를 앞질렀던게 패착이라는 생각이 든다.

 

 

이제는 코딩시장 페이즈 2

최근에 일 때문에 Java + Spring 교육들이 어떻게 진행되고 있는지 파악하고, 요즘 프로그래밍을 공부시작하는 친구들이 Java에 대해 어떻게 생각하고 있는지 조사해야 했다. 왜 그랬냐고 물어본다면, 사람들이 바보가 아니기 때문이다. AI와 메타버스 같은 말에 아직도 많은 사람들이 홀려있지만, 그 환상에서 빠져나올 시간이 머지 않았다는 생각이 든다.

왜냐면 해당 교육 진행으로 정부가 취업률 상승이라는 '재미'를 전혀 보지 못했으며, 그냥 수많은 코딩교육기관 시다 노릇만 하고 있는 중이니까. 머지않아 그 교육의 결과가 완전히 시장에 드러나게 되고, 유동성의 증가로 우후죽순 늘어난 유니콘들이 한두개씩 사라지는 시대가 오면 결국 이 정신빠진 세금 낭비도 곧 끝날꺼라 생각하기 때문이다.

 

결국은 다시 현업에서 사용되고, 수많은 일자리가 있는 전통적인 교육 중심으로 트랜드가 이동할꺼고 거기에 들어가는 세금지원은 대폭 축소 될 거라 감히 예측한다. (내 희망사항뿐일수도 있다. 세상은 호락호락하지 않으니...)

그래서 결국은 다시 Java다. 이제 비전공자와 전공자의 구분은 사라질꺼다. 전공의 유무, 대학의 유무가 중요한 시대가 아니게 되었으니.

 

왜 자바인가?

이건 어쩔수 없다. 시장에서 가장 많이 사용하는 언어가 Java이다. 전자정부 표준프레임워크도 Java이고, 한국에 가장 많은 개발자가 Java 개발자이다. 전통적으로 Java를 가르치는 강사들도 제일 많고, Java로 된 교육과정도 제일 많으며, Java를 가르치는 학원도 제일 많고, Java를 쓰는 회사도 많고, 한국에 전문가가 가장 많은 언어가 바록 Java다.

영어를 사용하는 나라에 가서 한국어로 취업을 하려고 한다면? 아얘 불가능한것은 아니지만 많이 힘들지 않을까..

Java이외의 다른 언어로 취업을 준비한다는 것은 사실 그런 일이다. 물론 최근에는 Python이나 JavaScirpt를 사용하는 '스타트업' 들이 많아져서 안그런것처럼 생각할 수도 있겠지만, 개발자 취업의 최고봉이라고 여겨지는 네카라쿠배의 중에 Java를 사용하지 않는 기업은 없다. (개인적으로 네카라쿠배라는 용어를 만들어낸 패캠을 저주한다.)

 

 자바는 배우기 어려운 언어인가?

이 글을 쓰게된 이유이다. 이 얘기를 하고 싶었는데 글쓰다가 흥분해서 자꾸 딴 길로 샜다. 결론부터 말하자면, 배우기 어려운 언어가 아니다. 물론 시중 서점에서 프로그래밍 관련서적을 살펴본 사람들은 내 말을 안 믿을 것이 분명하다.

파이썬이나 자바스크립트 책은 얇은데 자바와 관련된 책을 보면 '오, 이걸로 사람 머리를 내리치면 많이 아프겠는걸?' 이라는 생각이 들 정도로 두꺼우니까. 그리고 Java관련 국비 교육을 들은 수많은 수강생들이 힘들었다고 이야기하니까.

 

아무도 거짓말을 하지는 않았다. Python과 JavaScript는 배우기 쉽고, Java는 배우기 어렵다. 하지만 못배울 정도는 아니다. 비유를 하자면, 구구단 2단과 3단의 난이도 차이 정도 된다.

 

그런데 왜 책 두께차이가 그렇게 나냐고? 그 이유는 단순하다. 올드한 방식으로 많은 것을 가르쳐주고 싶어하는 한국의 전통적인 개발자들 덕분이다. 입문용 강좌로 만들어진 Python과 JavaScript 강의 정도만 Java도 가르친다고 치면, 엄청 얇고 쉽게 가르칠 수 있다. 하지만 한국에서는 그런걸 용납할 수 없다. 그 정도만 공부하는건 공부하는게 아니기 때문에.

 

 Java가 어렵게 느껴지는건 학습방식의 차이

외국의 부트캠프 방식과 한국의 국비지원교육의 방식은 큰 차이가 있다. 외국의 부트캠프의 경우, 생존을 위한 최소한의 지식만 알려주고 그때그때 필요한 걸 찾아서 학습하는 방식이다. 내가 지향하는 방식의 학습방법이기도 하고, 한국의 Python과 JavaScript의 학습 생태계는 비교적 이런 방식으로 구현되어 있다.

하지만 Java의 경우는 전통적인 한국식 교육방식으로 다져져왔다. 필요한 내용이라고 생각되는 모든 내용을 학생들에게 때려박고, 학생들은 그걸 소화하고, 실무에 사용하면서 필요하지 않은 부분을 까먹고, 추가로 더 알아야하는 실무같은 경우는 도제식 학습으로 해결해온 경향이 강하다.

그렇기에 두 학습방식에서 초반에 가르쳐주는 학습내용의 양과 학습의 깊이가 차이가 나고, 같은 입문과정을 듣더라도 Python과 JavaScript는 쉽고, Java는 어렵다는 이야기가 나온다.

 

하지만 지금의 시장은 대부분의 학습방식이 외국의 부트캠프 방식으로 넘어가고 있다. 그도 그럴것이, 기술의 발전이 빨라지는데, 주변에 새로운 기술을 가르쳐줄 사람을 찾기가 쉽지가 않다. Python과 JavaScript로 프로그래밍 공부를 시작하고 취업을 하려고 했던 학생들도 현실을 깨닫고 Java를 다시 공부하는 과정이 반복되고 있다는 점도 한 몫하고 있다.

앞으로 프로그래밍 학습은 학습을 위한 최소한의 내용만을 가르쳐주고, 그때그때 필요한 방향제시와 키워드를 알려주는 방식의 교육방식으로 점점 더 바뀌어 나갈 예정이다. 그게 전세계적인 트랜드니까. 거기에서 도태되면 이제 아무것도 못하는 시대가 오고 있다.

 

그래서 하고 싶은 말은 Java가 어렵지 않다는 이야기이다. 부트캠프방식으로 학습한다고 하면 오히려 배우기 정말 좋은 것이 Java다. python과 Javascript와 다르게, Java 공화국에 수많은 개발자들이 Java를 다루면서 축적한 한글로 된 문서자료와 강의들이 넘쳐난다. 시장에 없는건 부트캠프방식으로 학습을 시작하게 도와줄 최소한의 Java 강의일 뿐이다.

 

국비 교육에 사람들이 어렵다고 그러는건 짧은 시간동안 엄청나게 많은 내용을 때려박기 때문이다. 내용자체가 어려운것은 아니다. 어떤 언어를 어떻게 공부하든, 그 난이도는 크게 차이나지 않는다.

당신이 전공자이든 비전공자이든 마찬가지이다. 비전공자라 몰라요, 못해요. 그런 이야기는 이제 시장에서 사라질때가 되었다. 전공자와 비전공자 수준차이를 비하해서 말하자면 CS50 강의를 들었는지 안들었는지 정도이고, 그 차이를 메꾸고 싶다면, mooc를 이용해서 한편 보면 된다. 네이버 부스트코스에서는 자막까지 지원해준다. 그래도 4년이라는 시간에 대해 존중을 담아 차이를 이야기하자면 '정보처리기사' 정도 차이이려나.

 

컴퓨터공학과를 무시하는건 아니다.

컴공을 나왔더라도 프로그래밍을 못하는 친구들도 많고, 인문학과를 나왔어도 프로그래밍을 잘하는 친구들이 많다. 실무에서 요구하는 역량은 학교에서 가르쳐주는 역량이 아니며, 학교에서 가르쳐주는 내용을 메꾸기에 생각보다 긴 시간이 걸리지 않는 다는 이야기를 하고 있는 거다.

 

정리
  1. 다른언어에 비해 Java가 유달리 어렵거나 하지는 않다.
  2. 학습방식에서 오는 착시현상일 뿐이니, Java를 공부하기로 했다면 겁먹지 않아도 된다. 
  3. Java도 부트캠프방식으로 공부하면 python과 JavaScript와 비슷하게 느껴질것이다.
  4. 비전공자와 전공자의 구분은 무의미하다.
  5. 앞으로는 대학에서 가르치는 지식들도 무의미하게 될 가능성이 크다.

덤. 공부를 하기로 마음먹었다면, 좋은 친구들과 함께해라. 베이스캠프를 짓고 생존해 나가는 과정은 아무래도 혼자하는 것보다 여럿일때가 생존확률이 더 높다.

반응형

'칼럼' 카테고리의 다른 글

스타트업에 겨울이 오고 있다? 웃기는 소리.  (4) 2022.06.11

댓글