최근 제 머리속에 있는 화두는 "프로그래밍은 감성적인 학문일까? 혹은 이성적인 학문일까?"하는 부분입니다. 딱 꼬집어 한 부분의 학문이라고 하긴 어렵지만, 대부분의 프로그래머나 사람들은 프로그래밍? = 컴퓨터! = 이성적이고 수학적인, 혹은 공학적인 딱딱하게 생각을 하기 마련이라, 프로그래머로써 제가 대하는 '프로그래밍'이란 학문은 개인적으로 견해가 다르기 때문입니다.
이전에 글을 몇 번 썼듯이, 프로그래밍은 '언어'입니다. 언어란 문학적인(혹은 감성적으로도 표현이 가능할듯) 부분임에 틀림이 없습니다. 언어하면 떠오르는 '영어' '한국어' 등의 언어와 뜯어보면 전혀 다르지 않은 하나의 언어입니다. 다만 컴퓨터와 대화하기 위해 기본적인 문법이 다를 뿐, C언어, JAVA언어 등 프로그래밍언어는 또 다른 언어세계의 '영어' '한국어'입니다. 공부를 쭈욱 해오고 직업으로써도 프로그래밍을 하고 있지만, 이 생각에는 공부해오던 시절과 전혀 달라진 바가 없습니다.
(프로그래머는 하나의 언어에 정통하게 되면 다른 언어로 작업을 하거나 배워도 크게 어려움이 없이 금방 습득합니다. 안드로이드나 웹언어를 다루다가 iOS언어를 해도 짧은 시간내에 프로그래밍이 가능합니다. 물론 익숙하냐 아니냐의 차이는 있겠지만, 이런 점도 프로그래밍 언어가 하나의 '언어'와 다를 바 없다는 생각을 들게 하는 요소입니다. 한국어와 비슷한 문법의 외국어는 배우기 쉽다는 것과 같은 맥락에서)
'소설'과 '수학', 감성과 이성의 대표적인 키워드입니다. 글을 읽는 당신이 프로그래머든 아니든간에 '프로그래밍'이란 단어를 앞의 두 단어로 대체 한다면, 어느 단어가 더 잘어울릴까요? 아마 대부분의 사람들은 '수학'이라는 단어를 선택할 것입니다. 하지만 제 머릿속은 '소설'에 가깝습니다. 프로그래밍을 전혀 모르는 사람들은 숫자가 가득한(0101010) 혹은 복잡한 수학식이 들어간 뺵빽한 코드들을 생각합니다. 프로그래밍을 공부하는 사람들조차 복잡하고 어려운 것으로 치부해 본인의 발전속도가 저해되거나, 언어를 공부하다 다른언어를 공부하는 것을 굉장히 어렵고 두려운 일이라 생각하는 사람이 많습니다.
프로그래밍은 감성적인 학문.
이라는 생각이 요새는 샤워할 때나 혹은 잠들기 전 많이 생각하는 부분입니다. 어릴 적부터 글쓰기를 좋아하고 이래저래 글에 대해서 많이 공부하고 소설책들을 많이 읽었던 것이 최근에는 프로그래밍에 많은 영향을 끼치고 있다고 생각합니다. (물론 코딩을 할 때도 글을 쓴다는느낌으로 합니다) 이를 테면, 소설에서 flow가 중요하듯 코드가 짧든 길든간에 한 Class내의 Flow를 생각하며 코딩을 진행합니다. 객체지향 역시도 글을 쓰는 하나의 방법으로 Class를 나누고, Naming 역시나 다른 사람이 코드를 보게 되는 경우(협업의 경우), 혹은 내 코드를 1년뒤 다시 봤을 때 등을 생각한다면, 꼭 필요한 부분입니다. 컴퓨터 보다 프로그래머에게 잘 읽히는 코드(글)이 되는 것은 소설을 쓰는 것과 다름이 없습니다. 그런 점에서 프로그래밍은 감성적인 학문임에 틀림이 없습니다. (물론 백프로라는 말은 아닙니다. 제 기준에서는 이성적과 감성적 둘 중 감성적인 부분에 더욱 치우쳐 있다는 말입니다)
프로그래머, Programmer 는 Pro + Grammer가 합쳐진 말입니다. 즉 프로페셔널한 문법을 구사하는 사람이라는 뜻으로도 풀이됩니다. 이러한 화제에 대해 지금 바로 단정을 지을 수는 없겠지만, 꾸준히 여러가지를 생각하면서 지속적으로 글을 써나가면 나중엔 제 머릿속에 있는 "프로그래밍 = 감성적"이라는 화제에 대해 좀 더 명확한 글을 쓸 수 있지 않을까 싶습니다. 물론 이런 생각을 가지고 개발자를 꿈꾸는 사람들이 좀 더 쉽게 프로그래밍에 다가가고, 항상 같은 그릇내에 기술적인 면만 발전시키기 보다는 프레임워크의 원리나 혹은 이론등을 문학적으로 보는 시점으로 재미있게 공부를 했으면 좋겠다는 바램도 있습니다.
두서없이 뚜렷한 결론을 내지 못하긴 했지만, 앞으로도 지속적으로 고민해봐야 할 화두인 듯 합니다.
'옛글 > 프로그래밍이야기' 카테고리의 다른 글
1인 개발자로써의 회고와 스타트업에 대한 생각 (0) | 2013.04.20 |
---|---|
고급 개발자에 대한 6가지 진실 (0) | 2013.01.04 |
HTML5 플랫폼은 과장광고된 플랫폼이였다 (0) | 2012.10.08 |
굳건한 1위 프로그래밍언어 "자바"의 종말이 다가온다 (0) | 2012.09.05 |
[Programming] 날짜 형식(Date Format) 정리 (1) | 2012.06.08 |