티스토리 뷰

Software 이야기

#2. Programming이란건 그럼 뭘까요?

생각하고플때 2017. 12. 25. 20:26


이번 챕터에서는 소프트웨어를 만드는 프로그래밍이라는 거에 대해 이야기할께요.

관심 있으신 분들께 "배우고 싶은데 어떻게 해야할지 모르겠다.", "내가 이걸 할 수 있을지 모르겠다." 라는 이야기를 종종 들어요. 저도 어렵게 프로그래밍을 배운 편이라서요. 시작할 때의 막막함, 몇년 지나도 잘 모르겠다 싶은 기분... 을 겪었더랬죠. 

저는 독서와 글쓰기를 좋아해서 아마 문예창작과 정도에 갔으면 즐겁게 대학 생활을 했을 것 같아요. 아버지께서 1997년 IMF를 겪으시고 직장생활을 할 때 기술이 있어야 덜 짤리더라는 나름의 생각을 정리하시고 저와 누나를 모두 컴퓨터공학과에 가야 한다고 주장하시는 바람에 약간은 뜬금없이 컴퓨터공학과에 왔더랬죠. 그 무렵의 저는 제 생각을 주장할만큼 주관이 뚜렸하지 않았고, 아버지가 다른 과에 가면 등록금을 지원해주시지 않겠다는게 먹혀들어 갔더랬죠. (나중에 정산해보니 등록금은 반은 제가 낸 셈이 되었지만요. ~_~) 

원하던 공부가 아니어서, 대학에 들어오니 목표를 상실해버려서 한동안 방황한 탓도 있겠지만... 프로그래밍은 금방 익숙해지지 않더라고요. 처음엔 곧잘 따라가는 것 같더니만 어느새 미궁에 빠져버리더군요. 군대를 다녀와서는 어떻게든 따라가 보겠다고 도서관에서 두꺼운 C언어 책 하나 펴놓고 한챕터 한챕터씩 따라가보면서 연습문제를 풀어보던 기억이 나요. 

작은 프로그램은 어찌어찌 짤 수 있게 되었지만 학년이 올라가니 조금 큰 프로젝트들을 한학기에 걸쳐서 하게 되었는데 이건 어디서부터 손을 대야할지부터가 어렵더라고요. 프로그래밍을 해야하는 과목은 조금씩 피하게 되고 프로젝트는 망치고 이론 시험으로 학점을 어찌어찌 받아오다가 4학년 2학기 때 마지막으로 전공 수업을 하나 듣게 되었어요.

임베디드 프로그래밍이라는 과목이었는데, 각종 센서, 장치가 달린 보드판을 가지고 거기서 돌아가는 프로그램을 만드는 프로젝트를 했죠. 2인 1조로 "화상통신" 프로그램을 짜야 했어요. 두대의 보드판을 연결해서 카메라로 화상 보여주면서 음성이 오가는 거였요. 후배와 같이 하는데 미안해서라도 중간에 포기가 안되더라고요. 

후배와 파트를 나눠서 제가 네트워크 부분을 맡았는데 마지막까지 안풀리는 문제가 하나 있었어요. 한번 연결은 되는데 두번째 연결은 안되는거였죠. 명백하게 네트워크 문제인데 도통 어떤 이유인지 모르겠더라고요. 몇일 밤을 새도 모르겠고... 코드는 몇번을 읽었는지 모르겠고... 그러다 발표 시간이 다 돼서 교수님 방으로 가지고 가야하는데 5분 전에 "아, 이게 문제겠구나." 라고 머릿속에 생각이 스쳤지나갔어요. 그리고 그부분을 고치니 두번 연결해도 문제 없이 동작하더라고요. 교수님 방에 가서는 설명하고 시연하는데, 교수님은 한번만 연결해서 보시고 두번째 연결은 안해서 수정한 부분이 실제 쓰이지는 않았지만 몇주야를 지나 고쳐서 돌아가는걸 봤을 때의 그 기분은 지금도 잊기 어렵네요. 그때 처음으로 "프로그래밍으로 벌어먹고 살 수 있지 않을까?"라는 생각을 처음으로 했죠.


제가 어렵게 배웠던 만큼 이걸 배우는게 쉽지는 않다고 생각해요. 4년동안 같이 배운 과친구들 중에서는 결국 프로그래밍은 포기하거나 다른 길로 간 친구들도 많고요. 그렇지만 이전에 비해 배울 수 있는 방법도 늘어났고, 프로그래밍 언어는 쉽게 사용할 수 있도록 진화하고 있고 툴도 쉽고 강력해지고 있어요. 한번쯤 도전해볼만한 분야라고 생각해요. 다만 한번 시작하면 최소한 반년 정도는 풀타임으로 배워봐야 내가 정말 이걸 할 수 있을지 없을지 알게 된다고 생각해요 :)


프로그래밍을 배우고 싶다면 여러가지 방법이 있어요. 간혹 독학을 하는 분들도 있는데 그보다는 온라인 교육을 권하고요.


1. 온라인 교육

- 구글에서 만든 간단한 퍼즐 게임으로 배우는 코딩 원리 (어린이 코딩 50주년 기념) https://www.google.com/doodles/celebrating-50-years-of-kids-coding

- Code.org. 2013년 출범한 미국 비영리단체 주로 어린이를 위한 코딩 강좌가 많다. https://code.org/

- 생활코딩 강좌 : https://opentutorials.org/course/1

- 생활코딩, 모두를 위한 무료코딩 교재 만든다. http://www.bloter.net/archives/292443


2. 오프라인 교육

- 멋쟁이 사자처럼 (대학생 코딩 강의 및 프로젝트 하기) https://likelion.net/ 

- 코딩 야학 (구글과 생활코딩에서 하는 오프라인 교육) http://code-night.ga/


3. 국비지원 교육

- 국비지원교육정보센터. 국가가 교육비를 지원하는 여러가지 교육 모음 http://www.gukbi.com/

댓글
댓글쓰기 폼