개인적으로 무엇인가를 꾸준히 한다는 것은 쉽지 않은 일이라고 생각해요. 새로운 공부를 하거나 새해가 시작되면 모든 사람들은 계획을 짜기 시작하죠. 스스로에게 동기부여를 하지만 처음부터 높은 목표치와 지속적으로 의지 할 곳이 없어 쉽게 포기하게 됩니다.

그런데 말이죠, 무엇인가를 시작한다는 첫 걸음은 굉장히 위대한 일이라고 생각해요

하지만 컴퓨터 공학을 전공하지 않고 이제 막 혼자 프로그래밍을 시작하시는 분들에게는 코딩 또는 프로그래밍이라는 키워드는 여전히 낯설고 어려운 존재인것 같더군요. 어디서부터 어떻게 시작해야 할지 모르는 외계어가 난무하는 그런 존재 말이에요, 저 역시 그랬어요—낯설고 어렵기만 하고 좀처럼 관심을 갖기가 힘들었어요, 전공을 잘못 선택한 것이 아닐까라는 생각도 했습니다.

하지만 결론은 프로그래밍은 누구나 배울 수 있습니다.

이 글을 시작으로 프로그래밍에 관심이 있지만 어떻게 시작해야 될지 모르는 분들을 위해 천천히 따라해 볼 수 있는 프로그래밍 기초 강의를 연재해 볼까 합니다. 안녕 프로그래밍으로 이름을 지은 이 기초 강의를 통해 프로그래밍과 처음 인사하듯 가벼운 마음으로 시작해 보시길 바랍니다.

안녕 프로그래밍의 목적은 단순해요

  • 프로그래밍을 처음 시작하시는 분들은 스스로 학습 할 수 있는 기초 체력을 만들 수 있습니다.
  • 강의노트와 포함된 동영상을 통해 학습하시면 프로그래밍을 다른 이에게 가르칠 수 있게 됩니다.

프로그래밍 관련 지식이 전혀 없어도 이해가 될까요?

프로그래밍을 시작하기 두려운 이유를 저는 프로그래밍 수업이 대체로 어렵기 때문이라고 생각해요. 안녕 프로그래밍은 우리가 새로운 언어를 배울 때 Hello, Hola, Bonjour 와 같이 그 언어의 인사말부터 시작하듯이 가볍게 보실 수 있어요, 깊은 수학적 지식따위는 필요 없습니다. 프로그래밍에 대해 관심이 있지만 평소 용기가 나지 않으셨다면, 일단 시작해보시고 앞으로 강의노트를 보시면서 스스로 학습 할 수 있는 기초 체력을 만들 수 있기를 바랍니다. 물론 처음에 겁이 나죠, 하지만 그것은 비단 프로그래밍 뿐만은 아닐거예요.

그렇다면 어떻게 위대한 첫걸음을 지속하고 습관으로 이어 나아갈 수 있을까요?

왜(Why) 부터 시작하기

저 역시 영어 또는 새로운 언어를 공부하거나, 새로운 기술 등 무엇이 되었던 간에 관심있는 것들을 홀로 시작하게 되었을 때 “습관”이 되지 못한체 포기한 적이 많아요. 하지만 관심이 가는 것이 있다면 제 자신에게 질문하는 것을 시작으로 지속적인 동기부여가 필요하다고 생각합니다. 일단 Just Fucking Do It 말이죠.

먼저 그 시작으로 프로그래밍은 왜 배워야 할까요? 이 질문에 대해 함께 이 영상을 보는 것으로 시작했으면 좋겠어요

Everybody in this country should learn how to program computer because it teach you how to think - Steve Jobs -

어떤가요? 프로그래밍에 대해 조금은 흥미가 생기시나요? 프로그래밍을 시작하는 것으로 인해 새로운 가치를 만들어낸 명사 대부분이 이렇게 말하고 있어요.

프로그래밍을 통해 사고하는 방법을 배울 수 있다.

새로운 언어를 배운다는 것은 새롭게 생각하고 사고하는 방식을 배우는 것과 같습니다. 서양의 언어와 동양의 언어 차이를 통해 동, 서양의 사고방식이 다르다는 학술적인 연구결과도 있어요. 최근에 개봉한 컨택트라는 영화에서는 이러한 주제를 심오하게 다루고 있기도 하죠.

상상하기(What)

더욱 구체적으로 이야기 해볼까요? 컴퓨터는 물론이고 인간만이 할 수 있는 한 가지 능력이 있습니다. 뭘까요?

그것은 바로, 상상하기

우리는 무엇인가를 상상하는 것을 시작으로 실제를 만들어내죠. 우리에게 익숙한 예를 들어 볼께요. 바로 여러분 옆에 있는 아이폰 또는 안드로이드폰의 앱들을 살펴보면 모두 우리의 상상에서 부터 시작되었다는 것을 알 수 있습니다.

  • 암산하기 쉽지 않은데 쉽고 빠르게 계산할 수 있으면 어떨까?
  • 언제 어디서나 사람들과 소통할 수 있는 메신저같은 통로가 있으면 어떨까?

이러한 상상을 시작으로 구체적으로 어떻게 실제로 만들어 낼까에 대한 방법(How)을 고민하게 됩니다. 여기서부터 우리는 지속적으로 문제에 노출됩니다. 프로그래밍 언어를 배우게 된다면 이러한 문제를 효율적으로 해결하기 위한 사고방식을 배울 수 있습니다.

  • 더욱 비판적으로 (critically)
  • 더욱 체계적으로 (methodically)
  • 마치 컴퓨터와 같이 문제 해결을 위해 사고하게 되죠. (computationlly)

함께 방법(How) 고민하기

최근에는 우리에게 친근한 Youtube 를 시작으로 Coursera, Udacity 등 MOCC를 통해 공학, 예술, 기초과학 그리고 비지니스까지 다양한 분야에서 입문자를 위한 훌륭한 강의 컨텐츠가 제공 되고 있습니다. 거기다 모두 무료예요 개이득-어떻게(How)?해야 할까에 대한 문제는 네트워크만 되는 환경이 있다면 쉽게 누구나 방법을 찾을 수 있게 되어 가고 있어요, 하지만 무엇인가를 혼자 지속적으로 해 나아간다는 것은 결코 쉬운일이 아니죠. 시간이 지날수록 의지력은 상실되고 큰 문제에 봉착하면 쉽게 포기하게 됩니다.

함께 고민하고 해결해 나간다면 어떨까요?

특히 IT 분야에서는 이메일, 메신저를 시작으로 최근에는 Hangout, Slack, Github, Dropbox 등의 커뮤니케이션, 생산성 도구로 효율적으로 함께 문제를 해결해 나아가고 있어요. 프로그래밍을 시작하는 것도 작지만 첫 걸음부터 누군가와 함께 한다면 지속 가능한 습관을 만들수 있지 않을까요?

그래서 말이죠, 같이 해봐요.

  1. 먼저 왜 하는가에 대해 항상 고민하세요.
  2. 다음으로는 방법보다는 먼저 무엇을 만들지 상상하세요.
  3. 앞으로 업데이트 되는 강의노트와 영상을 통해 프로그래밍에 대한 이해도를 높혀 나가세요.
  4. Slack, Github와 같은 효율적인 협업 도구를 적극적으로 사용하세요. 서로 질문도 하고 함께 문제를 해결해봐요.

앞으로 강의 노트를 보시면서 궁금한 점이 있으시거나 소통하고 싶은 분들이 있으시다면 페이스북 그룹에서 함께해요. 아래의 링크를 통해 그룹 페이지에 접속하신 이후에 참여하시면 됩니다.

안녕 프로그래밍 페이스북 그룹
https://www.facebook.com/groups/holaxprogramming/