본문으로 바로가기

안녕하세요? 비제로입니다.

꾸준히, 조금씩 C언어 강의를 작성해 보려고 합니다.

얄팍한 지식이지만... 최선을 다해 써 보도록 하겠습니다!

C언어 / 정보올림피아드 /코드잼 / ICPC 관련 문의사항이 있으면 남겨주세요 ㅎㅎ

 

일단 C언어를 시작하기 전에, C언어를 왜 배우는지부터 알아봅시다.

대체 C언어를 왜 배우는 걸까요?

사실 C언어를 손대 보지도 않은 사람들에게 이런 질문을 하긴 좀 그렇습니다.

열심히 공부해서 대회도 나가고, 취미로 알고리즘 문제도 풀고...

이런 사람들도 사실 정확히는 모르는 경우가 많거든요 ㅜㅜ

 

 

하지만 목적이 없는 상태로 배운다는 건 전혀 의미가 없겠죠?

물론 학점이라던가, 간단한 개발을 한다던가, 대회에 나간다던가 하는 개인적 이유가 있을 수 있습니다만,

다른 언어가 아니고 굳이 'C언어'로 프로그래밍에 입문하는 건 큰 의미가 있어요!

C언어를 배우는 가장 큰 이유는 바로, C언어가 많은 프로그래밍의 기초가 되기 때문입니다.

 

오늘날 C언어보다 쉽고 노가다가 덜하며 다양한 부가 기능을 가진 언어가 많아요!

그 대표적인 게 바로 파이썬(python)입니다.

오늘날 대학들은 C언어 말고 파이썬으로 프로그래밍 기초를 다지는 경우도 많죠.

하지만 아직 C언어의 비중이 더 높고, 그런 데에는 이유가 있습니다.

 

우선, C언어는 역사가 가장 오래된 언어 중 하나이며, 오늘날 많은 프로그램은 C언어 기반으로 되어 있습니다.

뿐만 아니라 C언어에서 배우는 문법이 유사하게 적용되는 언어도 정말 많습니다.

그러다 보니 C언어를 배우면 다른 언어를 습득하기 더 쉬워집니다!

 

또한, C언어는 많이 사용되는 언어 중 가장 컴퓨터와 가까운 언어라고 해도 과언이 아닙니다.

무슨 의미냐구요? 말 그대로입니다.

C언어를 공부하다 보면 포인터 개념과 같이 컴퓨터의 저장 방식과 구조를 생각해야 하는 경우가 많습니다.

즉, 컴퓨터와 가장 친해질 수 있는 언어 중 하나라는 거죠!

 

이러한 점은 또 다른 장점들을 가져다줍니다.

오늘날 간단한 개발의 경우 python을 이용해 각종 라이브러리에 접근하여 쉽게 할 수 있는 경우가 많습니다.

사람들이 미리 만들어놓은 구조 속에 몇 가지 변형만 진행하면

완성품이 뚝딱 나오는 거죠!

그런데 이러한 방식의 개발로 그 프로그램을 자신만의 것으로 만들 수 있을까요?

그 시스템 자체에 대한 이해가 없으면, 오류가 생겼을 때 주먹구구식으로 고쳐나가게 될 뿐만 아니라

자신만의 시스템을 구축할 수 없게 됩니다.

 

쉽게 말해 공구 사용법은 알지만 원리를 모르게 되는 거죠.

원리를 아는 사람은 문제가 생겼을 때 그 이유를 생각하고 어렵지 않게 해결할 수 있지만.

원리를 모르는 사람은 '어? 왜 평소 하던 대로 안 되지?'라며 주변인에게 다시 물어보게 됩니다.

처음에는 원리를 모르고 공구를 사용하는 게 더 빠르겠지만,

관련된 일이 많아질수록 결국은 뒤쳐지게 되죠.

물론 파이썬과 같은 언어를 사용한다고 무조건 그렇게 된다는 건 아닙니다.

하지만, C언어로 컴퓨터의 구조를 깨닫고, 직접 알고리즘을 짜 보는 등의 훈련을 통해

원리를 아는 사람이 될 수 있다는 겁니다!

 

지금은 약간 뜬구름 잡는 소리처럼 들릴지 모르겠지만,

C언어를 어느 정도 배우고, 새로운 언어를 접하고, 개발을 하게 되면

왜 C언어로 다지는 기초가 탄탄하고 효율적인지 깨닫게 됩니다. (꼰대같나요...?)

 

여기까지 C언어를 배워야 하는 이유에 대해 이야기해 보았습니다.

앞으로 분명한 목적의식을 가지고 함께 기초를 다질 준비가 되셨나요?

그럼 다음 강의부터 본격적으로 시작해 보도록 하겠습니다!

이상입니다!

 

 

'IT > 코딩' 카테고리의 다른 글

[C언어 기초 1강] 코드블럭(Codeblocks) 설치하기  (0) 2020.06.14