Skip to content
 

C 는 배우기 쉬운 언어인가?

프로그램어라면 누구나 한번은 배워야 한다고 생각하는 언어중에 하나가 C 언어 또는 C++ 라고 생각한다.

질문에 대한 답은 정말 배우기 쉬운 언어라고 생각한다.
하지만 사용하기는 너무나 어려운 언어라는 상반된 언어다.

나도 C 언어를 사용한지 벌써 18년정도 된거 같은데도 아직도 그 정체를 잘 모를때가 많다..내가 머리가 나쁜가 보다.
주변에서는 C를 배우겠다고 나를 거쳐간 인간도 셀수 없을 만큼 많았었지만..글쎄 다들 잘 쓰고 있을까 …별로 그렇지 않은거 같기도 하고

왜 C 는 다들 배우기 힘들다고 할까..그건 아마도 C관련된 책을 보면 그럴만한 이유가 있다.

잠시 삼천포를 가면 얼마전 강남에 있는 중형급 서점에 가게되서 항상 그렇듯이 프로그램관련 부스를 찾았다. 요즘 별로 서점에 갈 일이 없기도 했지만 너무 오랜만에 간거라서 그런건지 약간 충격적인 상황이 있었다. 그건 모든 C언어 관련책자가 무릎아래에 전시되어있었다. 그건 안필리는 책이라는 뜻이고 더 많은 종류의 책이 안나올 예정이라는 거다. 사실 요즘 대학 졸업자들중에 제대로 C 언어 하나 배우고 졸업한 경우는 정말 사막에서 물찾는 격인거 같고 그나만 좀 알아도 실업무적용에 1년정도는 배워야 될 정도니 세계 최고 IT강국이 얼마나 오래갈지 걱정이 앞선다.

다시 주제로 돌아와서
모든 C관련 책자에서 보면 다들 특이하게도 신택스만 잔뜩 나열되있다. 예제는 눈씻고 찾아봐도 별로 없고 무슨 메모리 트리나 기껏해야 엉성한 파일관리같은거 뿐이다. 요즘처럼 그 결과를 빨리 보고 싶은 엔지니어들이 이론도 아닌 신택스만 잔뜩 나열된 책을 보고 싶지도 않을게 당연하다. 모든 사람이 알듯이 보통 책은 1장,2장만 열심히 보는 편이여서리 우니라나가 사람들이 영어에서 명사만 잘하는 이유와 무관하지 않을것도 같다^^

왜 다른 언어는 특히 웹관련,디자인관련 등은 예제도 다양한데 유독 제일 막강하다고 생각하는 C 는 예제가 없을까?

이유는 C는 목적이 없는 언어기 때문이다. 다른 언어들은 그 특성이 매우 한정적이여서 그 사용처가 분명하기 때문이다. 즉 웹을 배우는 사람들은 회원가입/게시판/자료실/디자인등의 업무로 그 범위가 명확하다는 거다. 하지만 C는 그 사용처가 너무 광범위 하기 때문에 배우는 단계에서 조차 내가 앞으로 이걸 어디다 쓸지를 알 수 없다는 점이다. 그러다 보니 단순 신택스를 배우고 나서 뭘 할지 막막하다는 점이다.

내가 C언어를 가르칠때는 빠르면 하루에서 길어야 3일정도면 C언어에서 중요한 사용 및 그 기능을 다 설명하게 된다. 배우는 입장에서는 정말 난감하겠지만..마치 알파벳 가르쳐놓고 미국에 혼자 나두는 느낌일꺼다..ㅋㅋ..

참 외울것도 없고 신택스도 무진장 간단한 언어가 왜 이리 사용하기 힘들까. 그건 우리나라 사람의 성격상 기초과학 보다는 응용과학쪽에 관심이 많은 사회 분위기가 아마도 성격을 급하게 하면서 배우기 어렵다는 언어로 치부된게 아닌가 싶다.

나와 같이 사업을 하고 있는 파트너의 친누나가 미국에서 매우 큰 방위사업체에서 개발 이사를 하고 있는데 그 분의 말을 빌면 그 누님 아래 3백여명의 고급 C언어 엔지니어가 밤새가며 코딩하고 있다고 들었다. 괜히 미국이 강대국이 아닌거 같다는 생각도 들고 왜 우리나라 많은 엔지니어들은 이렇게 못할까도 속상하고ㅠㅠ

C는 보통 학원에서 말하듯이 속성이 될수 없는 언어다.
최소 6개월정도는 아무 프로젝트 없이 그 본질을 배워야 하고 2년정도 실무를 해봐야 그 맛을 느끼게 되고 한 십년 정도 쓰다보면 그 철학이 보이는 오묘한 언어라 생각한다. 그렇다고 이렇게 길게 배워야 한다는게 아니고 그냥 우리나라 장맛처럼 오래 묵어야 재 맛이 나는거지 오래되야 짠맛이 난다는건 아니다.

좀더 느긋한 마음으로 접근한다면 C는 너무나 쉬운 언어다. 그리고 그걸 한번 배우는 순간 다른 언어는 너무나 쉽고 그 원리와 이해가 그냥 보이게 된다. 모든 O/S나 패키지가 C로 만들고 대부분의 엔지니어가 경험했듯이 어려운 문제를 만났을때 최종적으로 이건 C로 해야되는데 라는 말은 정말 흔한 말이기 때문이다.

절대로 ASP, PHP나 기타 다른언어를 평가절하 하는 뜻은 아니다.
그 언어들의 특성상 특정 분야에서는 C를 능가하는 좋은 결과물을 내놓기 때문이다. 하지만…엔지니어는 편식을 하면 안돼며 기초기술에 충실해야 장기적으로 살아남지 않을까 생각된다.

자바, ASP, PHP로는 아마도 달나라 가는 프로그램은 못할꺼다. 하지만 그 부분에서 약간에 주변 언어로 사용하겠지만.

IT 최강의 인프라만을 가지고 IT최강국이 될수는 없다. 그 인프라를 가지고 인프라를 내것으로 조정하고 다스릴 수 있을때 진정한 IT 강국이 되지 않을까 생각된다.

Leave a Reply