그냥 저수준 언어중에 가장 간단하게 저수준 아키텍쳐를 배울 수 있어서 그런거임


그냥 단순하게 

C배워 언어배워! 


이런게 아님


그니까 미국에 대해서 알고 싶다! 그러면 영어 배우라하잖아.


그 미국식 영어에 있는 미국 문화 전반을 알면 편하듯이


그거랑 같은 개념인거. 


지금 저수준 다루는 언어중에 C,C++,Rust 있는데 C++는 라이브러리부터 시작해서 기본적으로 외워야 것들이 많고


C++는 사실상 모던 C++로 이미 C++11때 철학적으로 재창조됨


그리고 C++랑 다르게, 스택,힙  포인터 자료구조등도 유저가 구현해야하고


현대 고수준 언어에서 가비지 컬렉터가 있어서 메모리 관리 방법 상대적으로 덜 중요해진건 맞음


근데 여전히 알면 좋은거임. 


사실 모든 언어를 배울때 제일 중요한 건 자기가 뭘 만들고 싶어하는지에 따라서 언어 선택하는게 맞고, 대부분의 프로그래머가 권장하는거임


그래서 꼭 XX언어를 해야할 필요가 없다는 맞음. 그냥 자기가 하고 싶은 분야의 주류 언어 배우는 걸 보통 강조함


그럼에도 C를 배우라는 건 C는 간단하고,

C에 쓰였던 방법론들이 현대에 원시적으로 남아있어서 그 원시 형태를 보고 어떻게 바뀌어갔는가를 체감하라는 형태적인 의미에서 배우라는거.


그거 아니면 C++,RUST 시작하면 C++은 당장 출력 라이브러리 자체가 Iostream인데, 이 출력이 왜 생겼는지에 대한 역사적 의의를 알아야하는데 이건 접근 방법이 까다롭지.

당장 수많은 C++ 라이브러리가 왜 생겼는지 알아야 제대로 쓸거 아니야.


결국 그런 의미에서 C를 배워보라고 하는거지


꼭 C를 통해서 메모리 레이아웃, 스택 자료구조 구현은 안해도 되는데, C가 그런면에 특화된 면이 있음. 왜냐하면 원시적인 형태로 남아있는 부분이 많기때문.


C를 배우라는 건 언어를 배워라는게 아니라, 저수준 프로그래밍의 개념과 철학에 접근하기 위한 일종의 도구적인 관점에서 배워보라는거임.


근데 현대 프로그래밍은 기술 발전이 되면서 거기까지 안가도 되니까 그냥 그런 부분이 옅어진거지.


저수준 프로그래밍을 배워둘때 도구로써 C가 편하기때문에 C하라는거임.