블램의 일상 IT카페

내가 우리학교 교육과정에 없는 C언어를 따로 공부하는 이유. 본문

IT/C언어

내가 우리학교 교육과정에 없는 C언어를 따로 공부하는 이유.

ble_ram 2022. 11. 15. 21:28

Hi Hi~ 에이치 아이~!

 

반갑습니다. 오늘도 활기찬 하루...

 

는 하루종일 문제푸느라 힘빠지는..(라기엔 브론즈 문제들이지만 ㅋㅋ;; 시작한지 얼마 안됐다요 이해점 ..)

 

내가 블로그를 만들고 카테고리칸을 만드는데

 

나도 뭔가 IT 블로그답게 언어에 대해 글 한 번 써보고 싶은 욕구로 인해

 

내가 공부하고 있는 C 카테고리를 만들었다.

 

내가 C카테고리를 만든이유는

 

1. C언어만 따로 올리고싶어서

2. 나중에 따로 내가 정리해둔걸 보려고(요약집 같은 느낌?)

3. 남들보라고

 

이다.

 

뭐 이정도가 이 카테고리의 창설 이유이고, 이 글의 본론은 내가 왜 C언어를 공부하냐 이다.

 

이제 본론으로 들어가도록 하겠다.

 

 

 

 

 

서론 : 나는 C언어를 공부한다.


요즘 대학교들이 그렇듯 옛날과는 다르게 과도 개편하고 

 

커리큘럼도 변경하는 일이 잦아졌다.

 

최근 IT쪽 분야가 엄청 뜨기도 했고, '파이썬' 이라는 언어의 엄청난 인기도 한몫 했을 것이다.

 

 그래서 그런지 외국 아이비리그 CS학과나 우리나라의 상위권 서울권 대학교들도

 

요즘은 C언어부터 시작하는 경우를 배제하고

 

C나 C++, 또는 파이썬을 같이 병행하는 경우가 많아졌다.

 

우리학교도 그렇듯 C언어를 없애고 파이썬으로 갈아탔다.

 

그만큼 파이썬은 쉽고 좋고 강력한 언어이다.

 

하지만 난 그런 파이썬은 따로 공부하고 있지는 않는다.

 

왜냐하면 내가 공부하고 있는 것은 'C언어'이다.

 

뭐 많은 컴공 학부에서 이미 배우는 과목이라 뭐가 특별하다고 생각하겠지만

 

난 입학 전부터 너무 배우고싶던 언어였다.

 

그런데 입학 후 정작 C언어를 배우지 않아서 딱히 흥미가 나지 않았다.

 

그래서 학기초엔 놀고, 여름방학때 짬내서 기본적인 개념을 익히기로 했다.

 

그렇다면 내가 왜 이렇게까지 굳이? 옛날 언어이고 어렵다는 C언어를 배우려는 이유가 무엇인가?

 

 

 

 

본론 : 내가 C언어를 공부하는 이유.


1. C언어는 컴파일 언어이다.

 

: 요즘 인기있는 파이썬 같은 언어는 인터프리터 언어이다.

컴파일 언어, 인터프리터 언어의 차이는 간단히 말하자면 전체를 기계어로 번역하는가, 한줄씩 번역하는가 이다.

컴파일 언어는 많은 과정이 있지만

인간이 작성한 소스코드를 컴퓨터(cpu)가 읽을 수 있게 기계어로 번역하는 과정을 거친다.

 

인터프리터 언어는 한줄 한줄 기계어로 번역된다고 보면 된다.

 

그래서 컴파일 언어는 속도가 빠르고, 인터프리터 언어는 좀 느리다.(이것도 옛말인거 같다...)

 

그래서 인터프리터 언어는 수정에 용이하지만 컴파일 언어는 수정하기 힘든 단점이 있다.

 

 

 

2. 컴퓨터와 가장 가까운 언어.

 

: C언어는 가장 기계친화적 언어이다. 

그래서 하드웨어를 다루는 분야에서 c언어를 자주 사용한다.

그만큼 속도가 빠르고, 하드웨어와 궁합이 잘 맞는다.

그래서 따로 '임베디드 분야'도 존재한다.

 

더 깊게 나아가 포인터 파트를 배우고 메모리 할당하고 하다보면 컴퓨터에 대해서도 더 잘 알게된다.

(그런거 같기도 ... 아직 깊게는 못배워서..)

 

 

 

 

3. 타 언어를 배우기에 용이해진다.(모든언어가 그렇겠지만...)

 

: 내가 C언어를 잠시 여름방학때 개념만 떼었는데도, 타 언어가 너무 익숙해보였다.

일례로 자바스크립트를 배울때 반복문이나 조건문이 c와 너무 비슷해서

금방 익혔고, 파이썬 코드를 볼때 무슨 함수인지 기능만 모르지

수식자체는 눈에 잘 익었다.

 

 

 

 

4. 컴퓨터 공학적인 부분에 대해 많은걸 알게 될 수 있다.

 

:  우리가 흔히 배우는 컴공과목들은 OS, 컴퓨터구조, 알고리즘, 자료구조가 있다.

이런 것들의 교재의 상당 수는 C로 작성되어있다.(물론 요즘엔 파이썬으로도 나오더라)

이뿐만이 아니라.

좀 더 세부분야인 해킹, 보안이나, 하드웨어쪽, IOT 쪽으로 가면 C의 필요성은 점점 더 커지게 된다.

 


뭐 여기까지 인데 추가적으로 좀 더 이유가 있지만 쓰지는 않겠다 ㅎㅎ;;

 

뭐 학부생주제에 뭘 아냐라고 할 수도 있겠지만 다 알아보고 공부하고 있다.

C언어를 물론 무조건 배워야한다! 고 누구도 강요하지 않았다.

 

하지만 내가 정보를 찾아보고 서칭해보니 타 아이비리그 CS학과나 타 명문대 커리큘럼을 본 결과

 

아직까지 c를 가르치는 곳이 많았다. (물론 MIT는 다 배운다... 서울대도 다 배운다..!?)

그만큼 나온지는 꽤 되었지만 정말 활용도 높은 좋은 언어라는 사실은 변하지 않는 듯하다. 

MIT CS학과 커리큘럼

(참고로 스탠퍼드, MIT, 하버드 등등 아이비리그에서 조차 거의 다 파이썬은 필수라고 보시면 된다...) 

 

아직까지도 부족하다보니 C를 공부하고, 알고리즘 문제를 푸는 과정 속에서도

심화적인 부분을 들어가면 정말 깊고 깊은 세계란 것을 알 수 있었다..;;;

 

나의 C언어의 목표는 이 언어를 마스터 하겠다라는 것은 아니다.

적어도 기초적인 부분은 기억하고 익혀서

 

이런 알고리즘에선 아. 이 함수를 쓰면 더 효율이 좋겠군.!

아 이 문제에선 이렇게 함수를 사용하면 좋겠다.

 

이 포인터를,,,, 등등

 

1. 언제나 응용가능하고 자료구조, 알고리즘 개념을 자유자제로 사용할 수 있게 만드는것.

2. C언어 연산자, 포인터 등 개념을 블로그에 정리해두기.(언제나 서치할 수 있게 ㅎㅎ;;)

3. 클론코딩을 해서라도 프로그램 하나 개발해보기(아두이노 이용, 라즈베리파이 이용 등등 뭔가를 활용하든 안하든..)

까지가 목표이다.

 

뭐 오래 걸리면 오래 걸리겠지만

 

내가 어떤 분야로 나갈지 모르는 것이기에 C언어를 계속 붙잡을 수는 없는 셈.

 

목표한 바를 다 이루면 어차피 자바를 해야한다.(교과목땜시..)

거기다 코테를 위해 파이썬도 따로 공부해야한다..(아무래도 제일 편하니깐... C로 풀기전에 파이썬을 썻었다.(고딩떄 잠깐이지만.. ㅋㅋ;;))

 

대충 여기까지가 C언어를 공부하는 이유였다.

 

여러분들도 C언어를 안배워보셨다면 짬내서 맛보기라도 해보면 좋을 것 같다.

그만큼 재밌고, 얻을게 많은 언어이다.

(하지만 현업에선 그렇게 많이 쓰이지는 않는 것같은,....크흠..:;)


추가로.

 

여러분들이 생각하는 C언어를 배워야하는 이유에 대해 다양한 의견을 남겨주세요.!!

또는 추천하는 언어, 추천하는 CS과목을 적어주시면 좋겠습니다.!!!!

 

Comments