프로그래밍으로 무엇을 얻을 수 있을까요?

꿀 떨어지는 가성비.
안 배우면 손해.

문제 해결 능력

프로그래밍에 적용되는 사고 능력은 우리가 일상에서 마주치게 되는 여러 상황에서 유용하게 사용됩니다. 왜일까요? 프로그래밍은 대부분 문제를 더 작은 여러 단계로 축소시키고 그것들을 푸는 과정을 반복하는 특징이 있기 때문입니다. 이것이 바로 일반적인 프로그래밍의 기본적인 방법론이거든요. 하지만 이와 같은 방법론은 실제 일상생활에서 마주치는 다양한 문제를 해결하는 과정에도 유용하게 적용될 수 있습니다.

가족과 함께 먹을 저녁 메뉴를 선택하는 과정을 예로 들어볼까요? 선택장애가 있는 사람에게는 어려울 수도 있는 문제죠? 그럼 이 문제에 프로그래밍의 방법론을 적용해 보겠습니다.

우선 문제를 더 작은 단위로 잘게 쪼개봅니다. 우선 한식, 중식, 양식 등 요리의 종류를 먼저 선택하면 되겠죠? 요리의 종류를 선택하면 그 중에서 선택된 종류의 대표 메뉴를 찾아서 선택합니다. 대표 메뉴를 찾았으니 일단은 문제가 해결 되었네요. 추가로 다른 작업도 진행해 봅니다. 그 대표 메뉴를 파는 가게가 근처에 있는지 찾아봅니다. 그리고 마지막으로 근처에서 찾은 가게들 중에서 가장 맛있는 집을 찾습니다. 완벽하네요. 적어도 선택을 하지 못해 저녁을 망치는 상황은 피할 수 있을 것 같습니다.

앞에서 문제를 잘게 쪼개는 것이 바로 프로그래밍 적인 방법론이라고 했죠? 문제를 잘개 쪼개다 보면 다양한 해결책이 있다는 것을 알게 되고, 다양한 해결책이 있다면 그 중에서 가장 나은 방법을 선택할 수도 있습니다. 프로그래밍을 익히고 사고하는 습관을 들인다면 문제해결 능력도 자연스럽게 기를 수 있습니다.

이렇게 프로그래밍이 어떤 아이디어를 생각해 내고 프로그래밍을 통해 그 아이디어를 실현시키는 과정이라면, 우리의 삶은 목표를 이루어가는 과정에서 마주치는 다양한 문제를 해결해 나가는 과정이라고 할 수 있지 않을까요? 이렇게 생각해보니 프로그래밍과 인생의 목표를 이루어 가는 과정이 비슷하다고 생각됩니다.

업무 효율

예전에 뉴스에서 한 카이스트 출신의 대학원생에 관한 기사를 본적이 있습니다. 이 대학원생이 사회복무요원을 하면서 하루에 8시간씩 꼬박 6개월을 해야 겨우 끝낼 수 있는 엄청난 양의 단순 반복 업무를 단 30분만에 끝내 화제가 되었다는 내용이었죠. 어떻게 그것이 가능했을까요? 바로 프로그래밍의 힘이었습니다.

그 대학원생은 우편물 발송 기록 4000개를 일일이 조회해서 캡처한 뒤 정리하는 일을 프로그래밍으로 자동화한 덕분에 1,440시간을 들여서 해야 할 일을 30분만에 단 한번의 클릭으로 해결 할 수 있었습니다. 이렇게 프로그래밍은 반복되는 지루한 업무의 효율을 극대화 시키는데 특히 아주 뛰어난 효과를 보입니다.

꼭 이런 경우가 아니더라도 일정 수준의 프로그래밍 능력을 갖춘다면 자신의 업무와 커리어에 가치를 더할 수 있겠죠?

대인 관계 기술

어려운 기술을 개발해야 하거나 규모가 큰 대형 프로젝트에서 프로그래머들은 대부분 협력을 통해 업무를 수행해야 합니다. 그래서 대부분의 프로그래머들은 동료들과 어울리고 토론하는 것과 같은 커뮤니케이션 활동을 업무의 일부로 생각하게 되고, 커뮤니케이션 기술은 자연스럽게 향상됩니다.

뛰어난 커뮤니케이션 기술은 상사나 부하 직원 또는 외부 이해관계자와의 상호작용 뿐만 아니라 친구, 가족들과 함께 더욱 잘 지내게 해주는 훌륭한 도구가 됩니다. 당연히 개인의 삶에도 많은 긍적적인 영향을 주겠죠?

논리적인 사고능력

대부분의 사람들은 유튜브, 페이스북, 비디오 게임 또는 자율주행과 같은 IT 기술을 자연스럽게 이용합니다. 하지만 이런 기술이 어떻게 운영되고 개발되는 지에 대해서는 잘 모르겠죠? 만약 프로그래밍에 대해 알고 있다면 어떨까요?

우리가 일상 속에서 사용하는 다양한 기술을 이해할 수 있고, 이런 기술들을 더 잘 활용할 수도 있습니다. 또 프로그래밍은 논리적인 사고능력도 높여줄 수 있습니다. 그 이유는 프로그래밍이 기계나 컴퓨터가 이해할 수 있도록 정밀하고 코드화 된 명령 체계를 만드는 일이기 때문입니다.

사실 프로그램은 대부분이 코드로 이루어진 하나의 문서라고 할 수 있습니다. 프로그래머가 작성한 문서를 컴퓨터가 읽고 해석하는 거죠. 프로그래머는 프로그램이 원하는 데로 동작하도록 만들기 위해 코드를 작성해야 하는데 컴퓨터에 명령을 내리는 코드는 일정한 규칙에 따라 단어와 숫자로 작성해야 합니다.

이 과정에서 프로그래머는 코드를 작성하면서 프로그램이 무슨 일을 어떻게 해야 할 것인지에 대해 미리 추론하고 논리적으로 사고해야 합니다. 이런 과정을 거치지 않는다면 컴퓨터에게 올바른 명령을 내릴 수 없겠죠? 그래서 프로그래머에게 논리적인 사고능력은 필수입니다. 프로그래밍을 배우면 논리적인 사고와 추론 능력을 키울 수 있는 이유이기도 하죠.

창의력

자신만의 아이디어가 담긴 프로그램을 만든다는 것은 정말 멋진일입니다. 프로그래밍을 배우고 자신의 무한한 가능성에 눈을 떠보세요. 프로그래밍은 새로운 언어를 배우는 것과 같습니다. 프로그래머는 그 언어를 통해 자신만의 아이디어를 표현하고 구체화 시킬 수 있습니다.

많은 사람들이 게임하는 것을 좋아합니다. 그런데 많은 프로그래머들은 단지 게임을 하는 것에서 멈추지 않고 직접 게임을 만들고 공유하기도 합니다. 실제로 우리가 사용하는 서비스와 기술들은 이렇게 작은 프로젝트에서 시작되어 구체화 된 경우가 많습니다.

프로그래밍을 배우면 나만의 아이디어가 담긴 앱이나 웹사이트 서비스를 직접 만들 수 있습니다. 정말 멋지지않나요? 이것은 나 스스로가 아이디어를 구체화시키고 실현시킬 수 있는 도구를 가지고 있다는 의미잖아요. 도구를 가지고 있다면 우리는 언제든지 스스럼없이 도전하고 새로운 서비스를 만들어 낼 수 있습니다. 종종 구체화 되지 않은 아이디어를 구체화 시키는 과정에서 더 나은 문제 해결 방법과 새로운 아이디어를 발견하기도 하죠.

즐거움

“즐거움”도 프로그래밍의 장점 중 하나입니다. 많은 프로그래머가 프로그래밍을 통해 스스로 무언가를 창조한다는 순수한 즐거움과 다른 사람들에게 쓸모있는 것을 만든다는 기쁨, 복잡한 퍼즐을 맞추듯 정교한 작업을 통해 프로젝트를 완성해 가는 과정에서 얻는 희열감 등의 감정을 느낄 수 있다는 것에 공감합니다.

마무리하며

마이크로소프트를 창업한 빌 게이츠와 페이스북을 창업한 마크 주커버그, 구글을 창업한 래리 페이지의 공통점은 무엇일까요? 부자라구요? 그렇죠. 세계 최고의 부자들이죠. 하지만 또 다른 공통점도 있습니다. 바로 이 억만장자들 모두가 어려서부터 프로그래밍을 배웠다는 사실입니다.

빌게이츠는 독학으로 프로그래밍을 배웠고, 마크 주커버그는 아버지에게서 프로그래밍을 배웠습니다. 래리 페이지는 어머니에게서 프로그래밍을 배웠다고 하네요. 어려서부터 프로그래밍을 시작했으니 성인이 된 후에는 상당히 뛰어난 프로그래머가 될 수 있었겠죠? 그런데 이 세계 최고의 부자들 중에서 MBA와 같은 경영 수업은 받은 사람은 아무도 없습니다. 놀랍지않나요?

빌 게이츠와 마크 주커버그는 하버드 대학을 다니다가 중퇴했고, 래리 페이지는 학사-석사-박사 과정을 모두 컴퓨터 과학 분야로만 마쳤습니다. 그렇다면 이들의 뛰어난 경영 능력은 어떻게 만들어진 것일까요?

CEO라는 자리는 해당 사업에 대한 전문적인 지식과 리더십 그리고 협상 능력, 뛰어난 체력 등의 다양한 능력을 필요로 하는 자리입니다. 특히 한순간에 기업의 운명을 바꿀 수도 있는 의사 결정을 해야 하는 자리이기도 하기 때문에 그 부담감은 상당하다고 하죠. 그래서 뛰어난 많은 경영자들은 의사 결정을 내려야 하는 상황에서 직관과 분석을 조화롭게 사용한다고 합니다.

이 때 분석은 그 직관이 옳은지를 검증해주거나, 그 자체만으로 최종적인 의사 결정에 강한 영향력을 발휘하는 요소가 됩니다. 여기서 경영자의 능력과 프로그래밍 능력 사이의 공통된 비밀의 키는 바로 앞에서도 이야기했던 “논리적인 추론 능력”입니다.

교육계에서 이루어진 여러 연구에 따르면 컴퓨터 프로그래밍이 논리적인 추론 능력이나 논리적인 사고, 계획하는 능력과 일반적인 문제 해결 능력 등을 향상시킨다고 합니다. 프로그래밍이 우리가 직장이나 인생에서 만나는 수많은 문제들을 풀어나가고 해결하는 최고의 도구가 될 수 있다는 것이 정말 놀랍지않나요?

여러분도 세상을 바꾸거나 놀라운 부를 쌓아올린 부자가 되고 싶지않으세요? 사람들은 누구나 머릿속에 무한한 상상력이 있습니다. 그 무한한 상상력을 현실로 만들어보세요. 프로그래밍은 여러분의 놀라운 영감과 성공을 만들어내는 강력한 도구가 되어 줄 테니까요.

답글 남기기

Recent Posts

행복만 있는 세상, 정말 우리가 꿈꾸는 이상향일까요?

행복만 있는 세상, 정말 우리가 꿈꾸는 이상향일까요?

SCSS Style Guide

SCSS Style Guide

CSS Style Guide

CSS Style Guide

왜 코딩 컨벤션이 중요할까요?

왜 코딩 컨벤션이 중요할까요?

HTML Style Guide

HTML Style Guide