yuchi's Development Home


[여치스컬럼] 열심히 해도 실력이 안느는 이유

조회 수 3396 추천 수 143 2007.04.09 00:26:13
프로그래밍에 국한된 얘기임을 먼저 밝혀두겠다.

업계 사람들이랑 얘기하다보면 '걔는 열심히 하는데 실력이 안늘어.' 라고 안타깝게 토로하는 경우가 있다.

열심히라...내 생각엔 말이다.

아마 열심히 하지 않았을 것이다.

아니 물론 본인들 입장에선 열심히 했겠지.

수천라인짜리 switch,case문을 구사했다던가(손가락에 물집 잡히지 않았을까?), 모든 데이타를 하드 코딩했다던가..

나름 열심히 했겠지만 이건 열심이라 볼 수 없다.

자. 시나리오를 보자.

초짜 프로그래머. 나름 열심히 일을 한다.

한참 하다보니 뭔가 한계를 느낀다.

검색속도가 너무 느리다던가, 비교구문이 너무 많다고 느낀다거나 메모리를 너무 많이 먹는다고 느끼는 경우는 흔하다.

자료구조에 대한 학습이 되어있지 않은 초짜 프로그래머에게는 특히나 많이 있을법한 경우다.

그래 이러한 문제중 하나가 발생했다 치자.

누군가의 조언을 듣고 자료구조책을 폈다.

링크드리스트? 이런 정도는 쉽다.

해쉬? 뭐 것도 그럭저럭 할만하다.

2진트리? 약간 어렵게 느껴진다.  실제로 해보니 삽입하는건 쉬운데 삭제하는건 만만치 않다. 하루,이틀,삼일 소모해봤지만 뜻대로 잘 안된다. 슬슬 짜증이 난다.

에라 모르겠다. 하던대로 엄청난 하드코딩으로 코드를 짠다.

아니면 좀더 잔머리를 굴려서 STL이라는 신이 내려주신 '불' 같은 도구를 사용하기로 한다. '직접 만드는건 고집불통의 바보들이나 하는 짓이다'라고 말하면서.




좀 다른 케이스를 볼까?

나름 우아한 서버 모델을 구현하고 싶어서 멀티스레드를 사용했다.

동기화 문제가 발생하기 시작한다. 데드락이 걸리거나 전혀 이해할 수 없는 어드레스에서 크래쉬한다.

옆에서 선배 프로그래머가 조언을 해준다. os책을 좀 봐라. 내용이 너무 동떨어진거 같으면 시스템 프로그래밍 책이라도 좀 봐라.

버그 슬레이어의 debugging application같은 책을 추천할지도 모른다.

그래 이런 책들 한권이라도 떼면 훨씬 상황은 좋아질 수 있다.

그러나....

보니까 내용이 꽤 많다. 만만치 않다고 느낀다. 뭔 소린지 잘 모르겠다.

CPU와 메모리,인터럽트 제어에 대한 기본 컨셉이 없으면 사실 내용을 이해하긴 힘들다.

결국

'에라이...멀티스레드를 쓰지 말자.' 요렇게 되거나...

'나는 게임을 만들고 싶어서 프로그래밍을 하는거지, 프로그래밍을 하려고 게임을 만드는건 아니다' 따위 어설픈 변명을 늘어 놓는다. '

x랄. 네가 게임업계의 순교자냐?




그리고 꽤 많은 케이스인데...


풍운의 꿈을 안고 3D프로그래밍에 입문.

D3D 샘플 가지고 좀 끄덕대보니 삼각형도 출력되고..

오호라 d3dx라이브러리를 사용하니 모델도 쉽게 출력된다.

거기까지다.

이제 뭔가 제대로 돌아가는걸 만들려고 하면 수많은걸 알아야한다.

적어도 고교수학정도는 되새겨야한다.

처음엔 벡터 덧셈만 하면 될 것 같았지만 나름대로 꽤 많은 수학식이 등장한다.  

벌써 눈앞이 캄캄해진다.

애니메이션 하나를 구현하려고 해도 쿼터니온이니 뭐니 알아야 하고.

그 유명한 bsp/pvs따위를 구현해보려고 하니 CSG를 또 구현해야한다.

n각형을 자르고 조립하는 모델링 코드를 짜야하는데 수학도 수학이고 터져나오는 수많은 버그에 감당이 안된다.

아 어려워!!!!

하다 때려치고.

'해보니까 전 서버가 잘 맞아요. 서버 프로그래머 체질이입니다.'

혹은 더 나쁜 케이스로

'전 컨텐츠를 얹는 게임 프로그래머가 적격입니다. 그러려고 게임 프로그래머가 되었거든요'

따위의 소리를 늘어놓게 된다.

프로그래머면 프로그래머지, 서버는 뭐고 클라이언트는 뭐고, 엔진은 또 뭐냐.

이런 케이스 숱하게 많이 봐왔다.

이 글을 보고 '그 새끼 말하는거 졸라 싸가지 없어.' 라고 말할 사람이 많을줄로 안다. 아니 이미 지금도 그렇게 욕하는 자들이 많은것도 알고 있다.

내가 싸가지가 있거나 없거나 난 현실을 말했다.

컴파일러와 툴은 널렸다. 인터넷과 책에는 수많은 정보가 널렸다.

하려고 마음먹고 껍질을 하나 깰 각오만 되어있다면 웹에서 OS제작까지 못할건 없다.

시간을 투자하는것 외에도 과감히 문 열고 눈보라가 치는 바깥으로 나가는 모험을 감행하는 것이 '노력'이다.

아는것만 쥐고 안주하려고 하면서 감히 '노력'이나 '열심'이란 단어를 사용하지 말라.




xevious7

2007.04.26 09:16:18
*.100.138.192

100% 공감이네요 ~ 프로그래머면 프로그래머지 , 서버고 클라고 엔진이고 이렇게 구분지어 생각하는 것은 한참 모자라는 거지요. 프로그래머의 의미를 모른다고 할까요 -0-;;

이선우

2007.07.04 16:12:51
*.134.46.211

서버프로그래머 3d프로그래머 등의 한정적 용어도 문제가 있고

마찬가지로 '프로그래머'라는 단어도 자기 능력을 한정시키는것이 아닐까 생각합니다.

개인적으로는 소프트웨어 엔지니어가 더 맘에 듭니다.


공학을 하는사람이라면 목표달성을 위해서는

자기 자신에대한 편견부터 없애야 하는게 아닐런지 싶군요

엔지니어라면 문제를 바라보는 시각이 프로그래머와는 틀릴겁니다.
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 法輪功 Falun Dafa 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 肅清 活摘器官 障テ社會 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達償ワ喇嘛 Dalai Lama 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region free tibet

자유게시판



XE Login

天安門大屠殺 六四天安門事件 反右派鬥爭 大躍進政策 文化大革命 六四天安門事件 The Tiananmen Square protests of 1989 天安門大屠殺 The Tiananmen Square Massacre 反右派鬥爭 The Anti-Rightist Struggle 大躍進政策 The Great Leap Forward 文化大革命 The Great Proletarian Cultural Revolution 人權 Human Rights 民運 Democratization 自由 Freedom 獨立 Independence 多黨制 Multi-party system 民主 言論 思想 反共 反革命 抗議 運動 騷亂 暴亂 騷擾 擾亂 抗暴 平反 維權 示威游行 法輪功 Falun Dafa 李洪志 法輪大法 大法弟子 強制斷種 強制堕胎 民族淨化 人體實驗 胡耀邦 趙紫陽 魏京生 王丹 還政於民 和平演變 激流中國 北京之春 大紀元時報 九評論共産黨 獨裁 專制 壓制 統一 監視 鎮壓 迫害 侵略 掠奪 破壞 拷問 屠殺 肅清 活摘器官 障テ社會 誘拐 買賣人口 遊進 走私 毒品 賣淫 春畫 賭博 六合彩 台灣 臺灣 Taiwan Formosa 中華民國 Republic of China 西藏 土伯特 唐古特 Tibet 達償ワ喇嘛 Dalai Lama 新疆維吾爾自治區 The Xinjiang Uyghur Autonomous Region free tibet