본문 바로가기
Computer Science/Language

C언어 공부 - 프로그래밍이란 무엇인가?

by 리코더@typing4life 2018. 5. 11.

안녕하세요! 꼬부기입니다.

C언어 기초 카테고리에 앞으로 C언어 기초를 다시 한 번 되돌아보기 위해서 공부도 할 겸 포스팅을 하려고 합니다. 백준 온라인 저지에서 문제를 풀어보면서 실력을 닦고는 있지만, 문제를 풀 때 제가 쓰지 않고 있는 스킬이나 문법이 있지는 않은지, 더 쉽게 짤 수 있는 방법은 없는지 고민하기 위해서 기본에 대한 공부를 하려고 합니다. C언어나 프로그래밍을 처음 접하시는 분들이라면 블로그 글을 따라오시면서 기초를 닦고 백준 단계별로 풀어보기를 정리한 포스팅을 보면서 실전 코딩을 연습해보시면 좋을 것 같습니다. 처음 포스팅인 만큼, 이번 포스팅 내용은 '프로그래밍'에 관한 내용으로 시작하려고 합니다.

프로그래밍이란?

프로그래밍이라는 단어는 컴퓨터를 사용하면 자연스레 사용하게 되는 '프로그램'을 만드는 것을 의미합니다. 영어로는 Programming이라고 쓰는데, 보통 개발이라고 표현하기도 합니다. 자연스레 프로그램을 개발하는 사람인 개발자는 프로그램을 만드는 사람이라는 의미로 Programmer라고 표현합니다. 이 단어들에 공통적으로 사용되고 있는 프로그램은 무엇인지 알아보아야 단어의 의미를 더욱 정확하게 알 수 있습니다.

프로그램은 정말 다양한 곳에서 사용되고 있습니다. 쉽게 접할 수 있는 엑셀과 파워포인터와 같은 문서 작업을 도와주는 도구부터 컴퓨터 게임, 카카오톡이나 페이스북, 인스타그램과 같은 SNS, 그리고 에어컨, 냉장고, 스마트폰, 컴퓨터 등 일상 생활에서 많은 사람들이 사용하는많은 것들에 프로그램이 이용되고 있습니다. 한 문장으로 프로그램을 정의하자면 '특정 목적을 위해 기계에 내리는 명령의 집합'이라고 할 수 있습니다. 어떠한 목적으로 프로그램을 사용하는지에 따라 각 프로그램은 전혀 다른 종류의 성질을 가지게 됩니다.

프로그래밍을 연습할 때 중요한 점은 우리가 컴퓨터에 명령을 내렸을 때 컴퓨터가 우리의 명령을 받아들이는 태도는 항상 일관적인 것을 생각해야 합니다. 사람과 다르게 컴퓨터는 무엇을 알거나 이해하고 있지 않습니다. 단순히 0과 1로 이루어져 들어온 명령을 처리하기만 할 뿐입니다. 컴퓨터와 인간의 사고방식에 대한 차이는 C언어와 같이 프로그래밍 언어를 배우기 시작하면 자연스럽게 이해하게 되니 '프로그래밍은 너무 어렵다!'라고 지레 겁먹지 말고 시작하는 것이 제일 중요하다고 생각합니다. 다시 말하면 프로그래밍이란 컴퓨터가 작동하는 방식을 이해하고, 컴퓨터가 알아들을 수 있도록 올바르게 명령을 내리도록 코드를 짜는 것입니다.

왜 프로그래밍을 공교육으로?

2018년 부터 중학생을 대상으로 코딩 교육이 의무화가 되었고, 내년부터는 초등학생까지 코딩 교육을 받는 학생의 범위가 늘어나게 됩니다. 커뮤니티를 보면 많은 학부모님들이 '코딩이 뭔가요?', '코딩을 왜 해야하나요?'라고 질문하시는 분들과, 프로그램 관련 전공을 하시거나 현직에 계시는 분들 중에서는 '코딩을 뭐하러 공교육으로 했느냐?', '애들 학업 부담이 늘어날 뿐이다!'라고 부정적으로 말씀하시는 분들이 있습니다. 물론 성적을 잘 받기 위해서, 혹은 포트폴리오에 한 줄 추가하기 위한 목적을 가지고 코딩 교육을 한다면 위와 같은 주장이 옳다고 저 또한 생각합니다. 하지만 코딩교육이 의무화되면서 생기는 긍정적인 효과가 더욱 크다고 생각하기 때문에 저는 이번 결정이 정말 잘된 일이라고 생각합니다.

그 중에 가장 큰 장점은 두 가지라고 생각합니다. 첫 번째는 논리적으로 사고하는 법을 배울 수 있다는 점입니다. 해결해야하는 문제가 학생한테 주어졌을 때, 프로그래밍을 할 때와 같이 생각한다면 훨씬 더 체계적이고 논리적이며 창의적으로 판단하고 해결 방안을 찾을 수 있는 힘을 기를 수 있기 때문입니다. 어렸을 때부터 생각하는 방법을 배운다는 것 자체는 앞으로 공부를 하거나 다른 일을 시작함에 있어서도 매우 큰 영향을 끼칠 것입니다. 두 번째는 새로운 분야를 경험해 볼 수 있다는 점입니다. 저는 고등학생 때 문과였지만, 언어 외국어에 비해 수리 점수가 높았기 때문에 교차지원으로 공대에 오게 되었습니다. 처음에는 재밌겠다는 이유와 성적에 맞춰서 온 것이 크지만 지금와서 생각해보면 정말 잘한 선택이었다고 느낍니다. 저는 프로그래밍을 대학교에 입학하고 나서야 접했기 때문에, 이 무궁무진한 학문의 세계에 조금 더 빨리 접할 기회가 있었으면 좋았을 것이라고 생각하게 되는 경우가 종종 있습니다. 그런데 이렇게 공교육으로 바뀌게 되면 학생들은 자신의 적성에 맞는 것이 무엇인지 체험해보고 공부해볼 수 있는 경험을 한 가지라도 더 할 수 있기 때문에 진로 선택의 폭이 넓어질 수 있어 좋다고 생각합니다.

컴퓨터와 스마트폰 없는 일상은 생각하기 힘든 요즈음 컴퓨터가 어떻게 작동하는지 이해하고, 그 작동 원리에 맞는 명령을 내리는 행동을 반복하면서 사고 능력을 기르는 것은 플러스 요인이 아니라 필수적인 요소라고 생각합니다. 프로그래머가 되고 싶은 것이 아니라 단순히 호기심에서 들어오게 된 분이라도 포스팅을 따라오시다 보면 많은 것을 얻어가실 거라고 생각합니다.

다음 포스팅 부터 C언어의 기초 내용을 시작하겠습니다.

반응형

댓글