바른 생각 바른 글

프로그래머는 매력적이고, 프로그래밍은 매혹적인 일이다.

지구빵집 2018. 5. 2. 13:50
반응형




프로그래머는 매력적이고, 프로그래밍은 매혹적인 일이다.


프로그래밍은 높은 수준에서 이루어지는 기술과 예술의 창의적인 활동이다. 프로그래밍은 컴퓨터에게 사람이 시키고 싶은 일을 하게끔 만드는 일이다. 프로그래머는 들어주는 사람이며, 조언하기도 하고, 어떤 면에선 통역하고, 명령을 내리는 사람이다. 필요한 사람의 애매모호하기 짝이없는 요구사항을 듣고, 단순한 기계까지도 일을 잘 수행하도록 만드는 사람이다. 그는 다른 사람도 이해할 수 있도록 자신의 작업을 문서로 만들고, 자신의 일을 바탕으로 다른 일을 하도록 작업을 설계하고, 완성하고, 공개하고, 토론하고, 발전시킨다. 


오직 특정한 환경 조건의 집합마다 각 집합에 가장 잘 어울리는 시스템이 있다. 프로그래머는 도구, 언어, 운영체제 등과 같은 특정 기술에 얽매이면 안 되며, 개별 상황마다 좋은 해결방안을 고를 수 있는 배경지식과 경험을 가져야 한다. 배경지식이란 컴퓨터 과학의 기본 원리들을 이해하는 것에서 나오고, 경험은 다양한 세상, 학문, 응용 분야에서 실제 프로젝트들을 수행해 보는 것이다. 


프로그래머는 한 사람 한 사람 모두가 서로 다른 강점과 약점, 좋아하는 것과 싫어하는 것을 지닌 개별적이고 독특한 존재들이다. 시간이 흐르면 모든 프로그래머는 자신만의 작업환경을 만들게 된다. 취미와 입는 옷, 좋아하는 음악과 영화, 머리스타일과 대화하는 버릇 등은 모두 프로그래머의 개성을 드러낸다. 그래도 프로그래머들은 매력적이고, 그들의 일은 매혹적이다. 


그들은 새로운 일과 제품에 빨리 적응한다. 기술과 제품에 대한 본능적인 감각이 있다. 새로운 일을 시도해 보기 좋아한다. 


이런 사람은 질문을 많이한다. "멋진데, 어떻게 하는 거야?" 라이브러리는? BeOS 라고 들었는데 머야? 링커는 어떻게 로딩되?" 너저분한 지식을 머리에 쌓아두며, 어떤 것들은 몇년 후의 결정에 영향을 주기도 한다.


그들은 비판적인 사고를 가지고 있다. 사실관계와 논리적인 면이 일치하지 않을 때는 어떤 것도 들은 대로 믿는 일이 없다. 지금까지 해왔던 방식을 종종 거부하고 검증되지 않은 새로운 방식을 제안한다. 모든 것의 해결책을 가져오는 사람을 보면 도전 욕구가 샘솟는다.


그들은 이상적이지 않고 현실적이다. 맞닥드리는 모든 문제의 근본적인 성경을 이해하려고 노력한다. 시간이 얼마나 오래 걸리고, 어려운 문제는 무엇인지, 필요한 자원은 무엇이고, 난이도와 성격을 우선 파악한다. 이런것을 이해하게 되면 끈기 있게 추구할 지구력이 생기게 된다.


그들은 여러 방면의 기술에 익숙하다. 넒은 범위의 기술과 환경에 친숙해지려고 노력한다. 지금 하는 일이 어떤 특정 분야의 작은 부분을 탐색하더라도, 언제든 새로운 영역과 새로운 도전으로 옮겨 갈 준비가 되어 있다. 


오래된 IBM의 표어 '생각하라!'가 그들의 표어다.


영국 잉글랜드의 이튼칼리지 Eton college 를 구경하던 한 관광객이 이렇게 완벽한 잔디밭을 어떻게 만들 수 있는지 정원사에게 물었다. 정원사는 "그건 쉬워요."라고 대답했다. "매일 아침 이슬을 털어주고, 이틀에 한 번 잔디를 깎아 주고, 일주일에 한 번 잔디밭을 골라주면 되지요."


"그게 다에요?" 관광객은 물었다.


"그게 답니다." 정원사는 대답했다. "그렇게 500년만 하시면 당신 잔디밭도 이 정도로 괜찮아질 겁니다."


훌륭한 잔디밭은 매일 조금씩 손질해 주어야 한다. 훌륭한 프로그래머도 마찬가지다.(실용주의 프로그래머. 인사이트 참고) -見河- 



이미지 출처: http://kimstar.kr/6489/



프로그래밍은 재미있는 일이다. 프로그래밍은 왜 재미있는가? 어떤 즐거움을 기대하며 프로그램을 만드는가? 


첫째, 무얼 만드는 데서 느끼는 기쁨이 있다. 사람은 무언가를 만드는 것을 즐기며, 그것이 직접 설계한 것이라면 더욱 그렇다.


둘째, 다른 사람에게 쓸모 있는 사물을 만드는 데서 오는 기쁨도 있다. 우리는 자신이 만든 걸 타인이 유용하게 쓰기를 바란다.


셋째, 서로 맞물려 돌아가는 부속품으로 이루어진 복잡한 퍼즐 같은 사물을 만들고, 거기 담은 여러 법칙이 멋지게 펼쳐지는 것을 바라보는 매혹적인 경험의 기쁨이다.


넷째, 계속 배우는 데서 오는 기쁨이다. 프로그래밍은 반복적인 작업 없이 거의 모든 문제가 어디든 새로운 측면이 있고, 문제를 해결하는 사람은 뭐라도 배우게 된다는 특성에서 비롯된다.


마지막으로, 아주 유연하고 다루기 쉬운 표현 수단으로 작업하는 데서 오는 기쁨이 있다. 프로그래밍은 순수한 사고의 결과물이다. 개발자는 원하는 마음대로 유연하게 장대한 개념의 구조를 실체화할 수 있다.




반응형