JAVA, C, C++, C# 언어 선택 고민하는 신입과 경력자분에게
- 블라블라
- 2018. 10. 8.
프로그래머 지망하는 신입과 현직 개발자분들에게 JAVA, C, C++, C# 언어 선택 고민?
신입 개발자를 지망하는 분들이 흔히 하는 고민입니다. C/C++은 조금 하고 JAVA는 배우는 중인데 C++은 어려워 손이 안 가지만 JAVA는 할만합니다. 객체지향이란 무엇인지 자바를 보면 알 수 있어요.
어느 날, C# 언어를 봤는데 많이 놀랍니다. WinAPI 보다가 C# 코드를 보니 같은 기능을 구현하더라도 속도가 훨씬 빨라요. C#의 장점을 알고 나니 C#을 파고들어 가고 싶은 욕심이 생깁니다. 그렇다고 C/C++ 배운 게 있는데 버리기는 아까워요. C#에 욕심은 나는데 C++ 손을 놓자니 이러지도 저러지도 못하겠습니다.
코딩 입문 생각할 점
그러면 문득 이런 생각을 합니다.
JAVA 배우고 C#에 집중하자!! C#이 나아 보여~!! 난 C# 개발자가 될 거야!!
앞으로 C# 추세인 거 같은데 C++을 더 깊이 파고들어야 할까? 고민됩니다.
저 같은 프로그래머 경력자들은 이렇게 말합니다.
『언어는 도구에 불과』합니다. 목수에겐 톱을 고르는 능력보다 건축 기술이 더 필요하죠.
아키텍쳐와 프로그래밍 기초를 이해하는 게 중요하다는 뜻입니다. 사실 C++을 주로 다루는 저도 C++11, C++ 14, C++17 계속 발전하는 언어라 끝이 안 보여요. 또한, C# 개발 속도, 그러니깐 생산성이 높은 건 사실이지만, C++, JAVA도 잘 다루면 생산속도 높일 수 있습니다. 개발자의 한계는 계속 연장되는 겁니다.
그 사이에 포기해야 할 부분도 많을 거라는 생각도 해봐야 합니다. 가령 inline 함수 단점이 구성된 코드 양이 많아질수록 퍼포먼스에 악영향을 줍니다. 인라인 써도 되는데, 쓰면 좋은데 그 이면에 생각할 점이 많습니다. 이건 닷넷 프레임워크라고 예외는 아닙니다.
코딩 입문 생각할 점
그래서 시스템이 잘 갖춰진 회사일수록 개발 언어를 선택할 때, 같은 기능을 여러 언어로 구현해 보고 퍼포먼스 테스트를 진행합니다. 상황에 어울리는 언어를 선택할 줄 아는 능력이 필요한 셈이죠. 개발자에게 필수입니다.
C++ 탄생 이후 많은 객체지향 언어가 생겼습니다. 객체지향의 개념을 본떠서 새로운 언어가 만들어지고 있으며, 기본 원리는 비슷합니다. 그러니 C++을 할까, 자바를 할까, C#을 할까 이런 고민 자체는 학생이라면 본질적으로 무의미합니다. 현업에서 일하는 프로그래머들에겐 중요할 수 있는데 이제 배우는 학생들은 고민할 여지가 없죠.
닥치는 대로 배우고 닥치는 대로 이해하세요.
이건 제가 학생들에게 할 수 있는 최고의 조언입니다.
코딩 입문 생각할 점
그리고 하나 더 생각해보죠. JSP, JAVA, PHP를 다루던 웹 개발자가 C++, JAVA 언어 전향을 생각합니다. 그럼, 윈도우 환경에서 비주얼스튜디오 다루는 것이 첫 번째라 할 수 있어요. 물론 학교 다닐 때 C++ C# 자바 기초는 배웠기에 대충은 알고 있습니다. 문제는 현업 경력이죠.
웹 프로그래밍해 본 분들은 아시겠지만, 『CS 환경과는 개념』이 달라요. 그래서 처음 이해하는데 있어서 어려운 점이 많습니다. 그래서 체계적인 공부 방법이 필요하죠.
코딩 입문 생각할 점
자신감은 실력에서 나온다는 말이 있습니다. 프로그래머 업무를 통해 경험을 쌓는 것도 중요하지만, 웹에서 CS로 전향한다면 무조건 남의 도움을 받는 것이 좋습니다. 현실적으로 회사 내 CS 개발자에게 해당 언어를 배우는 것이 좋고, 기회가 된다면 실제 업무를 맡아보는 게 좋아요.
- 로그 메시지 바꾸는 단순한 일부터 시작하면 금상첨화죠.
그게 안 된다면, 재직자 학원 과정(JAVA, C++, C#)을 밟는 것도 좋습니다. 혼자 집에서 공부하고 그러는 거 저는 추천하지 않습니다. 아무것도 모른다면 도움을 받고 기초를 쌓으세요. 이후에 혼자 공부하는 게 좋습니다. 숫자를 모르는 사람이 수학 공부를 하고 싶습니다. 그럼 숫자와 기초 연산 방법을 남에게 배우고 깊이를 추구하는 게 합리적이죠. 프로그래밍도 마찬가집니다.
코딩 입문 생각할 점
대게 현업 프로그래머가 전향하려는 데엔 결정적 이유가 있습니다. 생계를 위해서건 미래를 위해서건 자기 업종을 바꾼다는 게 보통 이유론 실행되지 않아요. C++을 포함한 윈도우 개발자인 제가 웹으로 전향한다면 엄청나게 심각한 일이 걸렸다는 전제가 성립되어야 합니다.
- 그러니, 현업에서 업종 변환하려면 꼭 도움을 받으세요.
코딩 입문 생각할 점
또한, 장비 업체로 가는 건 좋은데, 장비 업체는 하드웨어 이해도 필요하므로 적응하는데 어려울 수 있습니다. 가령, 시리얼 통신을 하는데 현장마다 에러 유형이 다를 수 있어요. 그럼 소프트웨어보단 하드웨어와 설치 환경을 분석해야 합니다. 이런 과정이 괴로울 수 있어요. 적성에 맞으면 다행이지만.
물론 이때도 언어 선택의 고민이 들 겁니다. 그러나 CS로 전향하기로 했다면 C++, JAVA, C# 상관없습니다. 하나만 제대로 알면 짬이 있는데 나머지 언어 이해 못 하겠습니까? 언어 하나 이해하는 게 중요합니다. 경력자라면 나머지 이해하는 거 어렵지 않아요. 용기를 내세요.
프로그래머 지망하는 신입과 현직 개발자분들에게 JAVA, C, C++, C# 언어 선택 고민?