능숙함과 익숙함의 경계에서.

처음 프로그래밍 언어를 접할때가 생각이 난다.
내 주임교수님은 프로그래밍을 독특하게 가르치셨다. 이론적인 부분은 그냥 책에서 나온대로 가르치면서 비유와 은유를 적절히 섞어서 이해를 하게 만들었지만, 사실 시험은 컴퓨터로 프로그래밍을 짜는 것이 아니로 손으로 프로그래밍을 짜는 것이다. 
그렇기 때문에 집에서 수십번 해당 프로그램을 개발해 보지 않으면 코드가 머릿속에 남아 있지 않는다. MFC의 이벤트 핸들로에 파라미터 까지 다 외워서 시험봤던 기억이 난다. 덕분에 해당 언어에 대한 코딩 실력은 조금은 남들보다 빨리 늘었던것 같다. 하지만, 어떻게 생각해야 하는지는 몰랐던것 같다. 
![](http://ash84.net/wp-content/uploads/1/cfile2.uf.1176AD0B4C1749C83DB9F4.jpg)
스누피가 프로그래밍을 하면?
프로그래밍은 문법을 익히는 단계가 있다. 그 단계가 지나면, 해당 프로그래밍 언어에 익숙해진다. 그리고 몇몇 프로젝트를 해당언어로 수행하다 보면 해당언어에 능숙한 단계에 이르게 된다. 여러가지 라이브러리를 사용하게 되고 클래스 라이브러리의 구석구석을 사용해보기도 하고 재미도 느낀다. 
사실, 이러한 재미 때문에 많은 개발자 분들이 개발에 손을 놓지 못하고 있는것이 아닌가. 
(나도 그렇지만)
그런데 익숙함이 능숙함으로 넘어가고 그 언어를 씀에 있어서 밥먹기 보다 쉬워지고, 애인 만나는 횟수보다 컴퓨터를 켜서 그 언어로 코딩하는 일이 많아지면, 해당 프로그래밍 언어에 사람이 귀속 혹은 종속 되어버린다. 아니, 사람의 생각이 종속되어 버리는 것이다. 
그래서 다른 프로젝트를 할때, 만약 프로그래밍 언어를 익히려고 하면 마치 걸음마를 다시 시작하는 아이처럼 어렵게 느껴진다. 참 아이러니 한 것은, 한 프로그래밍 언어에 능숙해 진다는 것은 고도로 뇌가 발전한다는 것인데 새 언어를 배울때는 “이건 왜 이렇지, 그 언어는 참 쉬웠는데..” 이런 생각을 많이 하곤한다. 
[![](http://book.daum-img.net/R72x100/KOR9788991268357)](http://book.daum.net/detail/book.do?bookid=KOR9788991268357)
[사랑하지 않으면 떠나라](http://book.daum.net/detail/book.do?bookid=KOR9788991268357)
카테고리컴퓨터/IT
지은이**차드 파울러** (인사이트, 2008년)
[상세보기](http://book.daum.net/detail/book.do?bookid=KOR9788991268357)
**[사랑하지 않으면 떠나라!]** 라는 **차드 파울러**의 책에서는 새로운 프로그래밍 언어에 대해서 어떤 주기로 배우라고 되어 있지는 않지만,** 새로운 사고방식을 할수 있는 언어를 배워 보라**고 권하고 있다. Java 개발자가 C# 이라는 반대진영의 언어를 배우기 보다는 루비나 스몰토크와 같은 다른 형식의 언어를 배우는 것을 추천하고 있다. 
프로그래머는 특히 기술적 사고가 유연해야 한다고 생각한다. 나도 모르게 방어적인 태도를 취하는 경우가 많은 경우는 많이 당해서 그런것일지도 모르지만, 어쩌면 기술적 사고가 유연하지 못하기 때문일지도 모른다는 생각이 든다. 
본인 역시 C# 을 쓴지 벌써 3년정도 된것 같다. C#은 너무 편했다. 포인터도 없고, 메모리 관리도 알아서 해주고, UI와 코드가 직관적으로 이어지는 등등 닷넷 라이브러리도 한몫을 했다. 회사에서 와서도 C#을 사용하고 있긴 하지만, 최근에 아이폰 어플 개발을 위해서 Object-C를 조금 건들여 봤는데 생각처럼 쉽게 머릿속에 들어오지가 않는다. 너무 나의 생각과 뇌가 C#의 체계와 시스템에 길들여져 있다는 생각이 들었다. 무서웠다.  그래서 이 글을 썼다. 
![](http://ash84.net/wp-content/uploads/1/cfile8.uf.1808A40F4C1748A90903FD.gif)
현대사회에서 유연한 사고는 필수라고 생각한다. 그리고 특히 개발자, 프로그래머에겐 더 필수적이라는 생각이 든다. 단순히 한 프로그래밍 언어에 귀착되는 것에서 비유 했지만, 우리 같은 사람들일 수록 좀더 많은 사람을 사귀고 이야기사고 삶을 나누어야 한다고 생각한다. 
새로운 프로그래밍 언어를 배울때 가장 효과적인 방법은 열린 마음으로 받아 들이는 것이다. 열린 마음, 유연한 사고, 스폰즈 같은 뇌 이런것들은 하루 아침에 이루어 지지 않는다. 나를 위해서 라도 조금 스스로 유연해 지도록 노력해 보는것은 어떨까? 
그게 행복한 프로그래머가 되는 여러가지 조건중 하나라는 생각이 든다
**ps) [사랑하지 않는다면 떠나라!] <- 이책 꼭 읽어보시길^^**
** **