프초딩3// 오해를 피하기 위해 부연 설명이 필요할 듯 합니다. 당연히 공부해서 나쁜 건 없습니다. 하지만 같은 시간을 투자했을 때 비효율적인 경우는 있습니다.
전 개발에 입문할 때 대략적인 분야를 우선 정하고 해당 분야에서 널리 쓰이는 언어를 먼저 보는 것이 가장 좋다고 생각하지만, 만일 분야와 상관없이 하나의 언어를 골라야 한다면 고수준의 다중 패러다임 언어를 고르는 것이 최선이라고 봅니다.
이유는, 프로그래밍 언어에서 가장 중요하고 배우기 어려운 것은 패러다임이기 때문입니다. 문법 같은 건 경험이 쌓이면 잠깐만 봐도 금방 배워서 쓸 수 있지만, 새로운 패러다임을 익히는 건 보통 몇 년 정도는 이론과 실습을 병행해야 익숙해질 수 있는 내용입니다.
C의 경우 '패러다임'이라고 할만한 건 명령형/절차지향적인 접근, 그리고 넓게 해석하면 포인터에 대한 이해 정도인데, 양 쪽 모두 실무에서 널리 쓰이는 고수준 언어에선 중요도가 크게 떨어지는 내용입니다.
(참고로 C로 객체지향을 흉내내는 방법이 없는 건 아닙니다만, 일반적이지도, 완벽하지도 않습니다.)
특히 경험이 부족한 개발자들의 경우 한 가지 패러다임에 익숙해지면 다른 언어를 배울 때 해당 틀에 갇혀서 새로운 개념을 이미 알고 있는 내용에 억지로 끼워 맞추려는 경향을 흔하게 보이는데, C를 오래하다가 고수준 언어를 배우는 분들의 경우도 구문 단위의 최적화에 집착을 한다던지 객체 지향의 개념을 모두 메모리로 이해하려 한다던지 하는 문제를 보이기도 합니다.
반면에 자바, C#, 코틀린, 파이썬 같은 여러 패러다임을 지원하는 언어를 먼저 배우면 객체지향이나 함수형 프로그래밍 같이 실무에서 널리 쓰이고 유행하는 개발 방식을 미리 접해볼 수 있고, 또한 다른 고수준 언어와도 비슷한 개념이 많아서 분야를 정하고 실무에 사용할 언어를 배울 때도 도움을 받을 수 있습니다.
아마도 해외에서 입문 언어로 C보단 파이썬 같은 언어를 가르치는 것도 비슷한 이유일 것이라고 짐작합니다. 참고로 미국의 경우 대학의 입문 과정에서 가장 많이 쓰는 언어는 이미 20년 전에 C/C++을 밀어내고 자바가 차지했으며, 대략 10년 쯤 전부터 다시 그 자리를 파이썬이 밀어낸 상황입니다.
그런 점을 종합하면, 특히 아직 하나의 언어도 제대로 익숙하게 다루지 못하는 입문자라면 임베디드 등 C/C++이 필요한 분야를 지향하는 것이 아닌 한, C 언어를 우선 배우는 건 효율적인 선택은 아니라고 봅니다.
물론 효율이나 그런 거 안 따지고 그냥 관심가고 재미있는 걸 하겠다면 당연히 C를 배우는 것도 좋습니다. 하지만 특별히 저수준 분야 지향이 아니고 C나 하드웨어에 관심이 없는데 막연하게 C를 배워야지 무언가 심오하고 근본적인 걸 깨달을 수 있을 것 같다는 생각에 시작한다면 그건 좋은 선택이 아님을 지적하고 싶을 뿐입니다.