반응형

어느정도 프로그래밍 언어 하나에 익숙해지면 

겪게 되는 고민이 있습니다. 언어를 더 배워야 하는 건가?

 

왜 이리 프로그래밍 언어는 이토록 많지? 

 

개발자라면 당연히 C는 알아야 한다는데, 

요즘 다트가 유행이라는데, 

 

인공지능 개발하려면 파이썬은 기본이라는데, 

서버는 Go언어로 짜야 성능이 좋다는데 

이 모든 걸 다 배워야 될 것 같은 생각이 듭니다. 

 

심지어 폴 그레이엄은 그의 책, '해커와 화가'에서 자바만 아는 개발자는 심각한 문제라는 이야기도 하였죠. 

 

조엘 스폴스키는 '얼랭' 같은 특이한 언어를 배운 개발자를 뽑으라고 권하기도 했구요. 

 

여러 언어를 배우는 게 정답일까요? 

 

그렇지 않습니다. 

 

언어는 2개 정도만 깊이 파고

언어 자체보다는 소프트웨어 자체를 만들기를 권합니다. 

 

프로그래밍은 외국어와 비슷한 측면이 있습니다.  

 

외국어를 7개 국어 한다는 사람도 있지만

모국어 수준으로 하는 건, 2~3개 정도이고

나머지는 간단한 회화나 독해가 전부입니다. 

 

안 쓰면 잊혀지기 때문이죠. 

 

프로그래밍 언어를 7~8개 한다는 사람을 실제로 봐도

문법을 아는 정도지, 자유 자재로 상용 소프트웨어를 만드는 경우는 많지 않았습니다. 

(근데 다 하는 사람이 가끔 있긴 합니다 가끔요..)

 

한 언어를 택해서, 그 언어의 숙련도를 높이는 게 좋습니다. 

프론트 엔드 개발자가 목표라면, 바닥부터 웹사이트를 만들어보고 브라우저 원리도 공부해보고, 

네트워크로 데이터 주고 받기, 재사용성 높게 클래스 만들기, 내가 필요한 거 라이브러리로 만들어보기, 

실제 서비스 만들어 유저 받기 같은 걸 하는 게 낫습니다. 

 

괜히 파이썬으로 rest api 짜다가, Vue가 뜬다고 하니 뷰하다가, 리액트가 낫다니 리액트 해보고

이런 건 정말 안 좋습니다. 

 

데이터 분석을 배운다면 데이터를 분석한 뒤 

어떤 결론을 도출해 내거나, 보고서를 작성해 실제 서비스에 반영되도록 시도하는 게 낫습니다. 

내가 분석한 내용이 실제 환경 (마케팅이든, 앱의 ui 든)에 적용된다면 그보다 나을 게 없죠. 

 

파이썬이 크롤링 하기 좋다니 파이썬 배우다가, R이 통계 기능이 낫다니 R 배우고, 

딥러닝 최적화 하려면 C++이 필수라고 하니  C++ 배우고 이럼 진전이 없습니다. R이든 파이썬이든 하나 정해서 끝장을 보는 게 나아요. 

끝장을 본 다는 건 하나의 분야에서 a to z를 말합니다. 

 

여러 언어를 배우는 건 중국어로 자기 소개 배운다음에, 스페인어로 자기소개 배우는 거랑 똑같아요. 

한 언어를 잘하고 난 다음에 다른 언어로 넘어가는 게 낫습니다. 

 

저도 여러 언어를 배워봤는데 숙련도 차이가 큽니다. 어떤 언어는 컴파일을 안 해도 동작이 예상되지만, 어떤 언어는 한줄 한줄 쳐봐야 되죠. 

당연히 개발 속도나 질에서도 차이가 납니다. 

 

이 글에서 언어 하나의 숙련도를 높이라고 했지만

그래도 2~3개 정도는 아는 게 필수라고 생각합니다. 

 

다른 언어를 배우면 주 언어를 더 깊이 이해할 수 있고

어떤 언어에선 못하는 걸, 다른 언어에선 쉽게 할 수 있는 경우가 종종 있거든요. 

이럴 때를 대비해서 배워두면 필요에 따라 활용할 수 있습니다. 

 

책 파이썬 '실전 스케일링 파이썬 프로그래밍’를 보면 

async io 라이브러리 개발자의 인터뷰가 나옵니다. 

그분도 “고성능 병렬 프로그램을 짤때는 GO”를 씁니다라고 하더군요. 

파이썬으로 멀티 프로세싱을 할 때는 어려움이 있다면서요. 

 

이렇듯 더 나은 문제 해결을 위해, 다른 언어를 알면 좋습니다. 

 

동적 언어로 시작했으면 정적 언어를 배워보고

정적 언어로 시작했으면 동적 언어를 배워보는 게 제일 효과적이라고 생각합니다. 

 

결론 

처음 개발을 배우거나 아직 서비스를 만들어본 경험이 없다면

언어 하나에 집중하자. 그치만 틈틈이 1~2개 정도는 추가로 배워두자. 

반응형

+ Recent posts