케세라세라, 무엇이 되야하나.

*주의* : 전방에 개소리~.

프로그래밍/코딩이라는 별로 시덥지 않은(?) 종목에 대해 관심을 가졌다면 초입부터 혼란스럽지 않을까? 알고리즘, 자료구조, 운영체제, 컴파일러, 그리고 등등등... 도대체 어디서부터 시작해서 어떻게 그 길을 걸어야할지 혼란스럽고 주변의 말들도 많지 않을까 싶다.

언제나처럼 이런 질문에 대해서 정해진 해가 1개나 혹은 2개 아니면 '해가 없다'라고 적어낼 답안용지는 없다. 대신 자신의 주관을 갖고 그에 따라 충실히 이를 실행하여 그를 증명해 보이는것밖에는 길이 없으리라 생각된다. 모두가 수긍해주지는 않아도, 모든 질문에 답이 되지는 못해도 자신의 문제에 대해서, 그리고 자신의 필요에 대해서 충분한 주관을 갖고 문제를 인식하고 이를 받아들여가는 문제일것이다.

그냥 이 포스트에서는 '그 주제'에 대해서 별볼일 없지만 '나의 주관'(금서제목같죠?-_-)에 대해서 주절거릴 생각입니다. (수긍하건말건.)

적어도 개발자, 혹은 소프트웨어 개발과 조금이라도 관련이 있고 이를 위해 '프로그래밍'/'코딩'이라는 주제에 대해서 알고자 한다면 그 목표를 어떻게 생각하는가에 따라서 많은 부분이 바뀌지 않을까 생각합니다.

단순히 자신의 수단으로서의 입장이 '뭔가 복잡하고 어렵고 까다로운 무언가를 익숙하게 다룰줄 아는 오퍼레이터'라든가 '남들이 지겨워서 하지 못하는 양이 많은 타이핑/코딩을 즐거이 수행하는 사람'이길 바라는 사람은 많이 않으리라 생각합니다. 그리고 그렇지 않기 위해서 자신의 행위의 방향이 어떤 힘들수도 있는 일을 쉽고 단순한 일로 바꾸어 컴퓨터를 이용하여 이를 처리하는 것을 목적으로 해야지 어느 순간엔가 단순히 컴퓨터의 입력을 넣어 어떻게든 출력을 만드는 매트릭스의 건전지가 되어서는 안되지 않을까 생각합니다.

우스운 예로 제가 아는 어떤 사람은 매일 같이 야근을 합니다. 휴일도 없이 일을 합니다. 매일 회사에서 서비스하는 시스템의 디비에 변경된 열들을 '추적'(그사람의 표현에 따르면)하여 이를 걸러내는 쿼리를 만들고 그 결과를 csv등으로 백업을 받습니다. 매일 같이 꾸준히 그러한 작업을 손수한다는 점은 정말 존경하지 않을수 없습니다. 본인도 자신의 회사에 대한 헌신에 대해 대단한 자부심을 갖고 있는것 같습니다. 하지만 간단히 ORA_ROWSCN등과 같은 것을 이용하여 자신의 작업을 자동화할 생각은 하지 못했고, 그를 이용하도록 권고하고 스크립트를 작성해줘도 그저 무시할 따름입니다.(ORA_ROWSCN은 오라클 DBMS에서 각 행이 속한 데이터블럭의 변경의 고유번호를 얻을 수 있는 pseudo-column입니다. 이를 이용한다면 어젯밤 백업을 받을 당시의 번호에서 증가하거나 변경된 데이터블럭에 속하는 행들만을 골라낼 수 있습니다.) 어떤 기분이 듭니까? 마음속에 한심함, 동정이 생기지 않습니까? 이 사람은 단순히 자신의 어리석음으로 자신의 정력과 시간을 낭비할뿐만 아니라 자신의 가치를 단순한 스크립트와 같이 깎아먹고 있습니다. 전형적으로 컴퓨터를 이용하는 사람이 아니라, 컴퓨터를 작동시키기 위해서 컴퓨터에 이용되는 건전지입니다. 이러한 사람들의 또 한가지 특징은 그 어리석음만큼이나 슬프도록 완고하다는점입니다.

또 한가지 이야기가 있습니다. 앞으로는 어떨지 몰라도 그리스몽키등이나 파이어폭스등의 수많은 플러그인, 그리고 오픈소스 문화를 보며 어떤 동료는 앞으로 프로그래머는 사라지리라 생각합니다. 단순히 텍스트 에디터를 통해서 코딩을 하는 작업은 GUI툴로도 좀 더 정규화한다면 이루어질수있는 작업이고, 나날이 지식의 변화도 빠르지만 그 파급도 빠른 요즘 누군가 해주기를 기다리는 대신 자신이 직접 자신의 필요를 채우는 사람들도 많은 것이 사실입니다. 그리고 한쪽에서는 우아하고 간편한 '비쥬얼한' 개발도구들이 개발자들의 자리를 몰아낼것이라 경고하는 사람들도 있습니다. 그 모든사람들의 말처럼 그렇게 될지도 모르겠습니다. 그건 모르겠지만 적어도 그렇게 되더라도 차별화되는 것은 단순히 난해하고 복잡한 시스템을 다루는것을 업으로 하여 남들이 단순히 공부하지 않았기 때문에 내가 대신하는, 그래서 언젠가 그것을 다루는일이 쉬워질때는 밥그릇을 잃는 그런 씁쓸하면서 우스운 경우가 아니려면 더욱이 단순히 '그것을 다루는 사람'이 아니라 '어떻게 일을 진행해야 할지'를 선택하는 사람이 되어야 한다고 생각합니다.

최근 어떤 대학생과 이야기한적이 있습니다. 자신의 학교에 프로그래밍 담당교수에게 파이썬을 C/C++대신에 프로그래밍 입문을 위해 가르치면 어떻겠냐는 제안을 했지만(그 자세한 내용은 잘 모르겠지만) 그 학생이 듣기에 온당치 않은 이유들로 그저 거부된것이 불만이었습니다. 요즘에 대학에서 많이들 하는 '교양과목'으로서의 C/C++은 정말 우습습니다. 도대체 그걸하면서 뭘 배울지 깜깜합니다. 심해어에 달린 촉수처럼 육지생물에게는 무의미한 느낌을 주는 포인터 연산자와 그 우선순위에 따른 미묘한 차이점?... 차라리 이들에게 SICP/HTDP, 혹은 파이썬과정 등을 가르치며 포인터 연산 따위를 가르치는것이 아니라 프로그램을 어떻게 구성하고 이들로 어떻게 논리를 전개할 가는지를 보이는게 오히려 '교양'이라든지 '프로그래밍 입문'이라는 이름에 걸맞지 않을까 싶습니다. (다시한번 말하지만 컴퓨터를 이용하는 목적과 컴퓨터에 이용되려는 목적은 다릅니다. 컴퓨터를 이용하여 어떤 다른 일을 해보고 싶은 것이지, 컴퓨터의 온갖 구조와 잡다한 것들에 얽메이며 삽질을 하는게 바람질할 경우도 있지만 20세기초중반에 비해서 21세기인 지금에는 점점 더 줄어들것이라고 생각합니다. 더더욱이 그것이 '입문'이라면. 그렇게도 포인터와 잡다한 것들이 중요하다면 마이크로프로세서와 납땜질을 중심으로 프로그래밍을 가르치지 않는지 궁금합니다.)


ps. 세줄요약?;;;

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 아겔 | 2007/08/30 19:33 | 5.1ch DogSound | 트랙백 | 핑백(1) | 덧글(3)

트랙백 주소 : http://ageldama.egloos.com/tb/3363674
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Linked at ageldama님의 글 - [.. at 2007/08/30 19:34

... 0 metoo 프로그래밍 입문에 대한 주관? dogSound 하나 추가요~ 오후 7시 34분 ... more

Commented by 이재우 at 2008/01/10 00:46
넌 천재다.......
Commented by 아겔 at 2008/01/10 10:13
이자식, 너무 알바스러운 답글 고맙다 ㅜ.ㅜ;;;
Commented by chardin at 2008/01/10 11:28
세 줄 요약을 해야 진정한 천재라고 할 수 있지.
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.

◀ 이전 페이지          다음 페이지 ▶