2013년 3월 3일 일요일

구종만씨, 알고리즘 문제해결 전략

상당히 좋은 책이다.

3권이나 구입했다. 멘티에게 줬던 책 아니면 중학생 때부터 모으기 시작한

개인 소장 IT 서적이 1000권이 되었을 내가 가진 책 중에 상위권에 랭크될 만큼...

(상위권이라 함은 프로그래밍 언어 '씨앗', The XXX programming language 等)

장점은 인터넷에서 쉽게 찾을 수 있을 것이다.

다만 모든 책은 단점이 있기에 단점만 나열하려고 한다.

1. 지금은 그렇지 않은 한국 프로그래밍 교육을 꼬집는다.

우선, 한국의 컴퓨터관련 교육 과정에 대해서 불만이 많아 보인다. 직접적으로 언급하는 부분이 있지만 프로그래밍 대회의 우수성에 대해서 여러번 말하기 때문이다. 한국에는 정말 뛰어난 교수님이 많은데 교육 과정을 논한다는 것은 정말 어려운 부분이다. 그러나 TMAX 소프트처럼 누군가는 불을 질러야 하므로 이해는 간다. 인터넷에서 보면 나이대가 나랑 비슷할 것 같다. 우리 때는 사실 제대로된 컴퓨터 제대로된 과정이 없었다. 연세대, 부산대 等 컴퓨터 특기자를 뽑는 것도 이 시기였다. 어찌보면 학교가 필요없었던 시절. 병특까지 했으니... 요즘은 병특 실력이 좀 그렇지만(멘티들보면 오로지 군대 안가려는 목적으로 온갖 치장을 하는 것을 보면) 이 때는 아니었다. (삼성 소프트웨어 멤버십에서 만났던 이 시기의 병특은 모두 뛰어났다.) 남들 2년 2개월 놀 때 개발을 했으니 많이 뛰어날 듯.  이력도 화려한데 아쉬운 것은 알고리즘으로 유명한 "구글"이라는 회사에서 우리가 알 만한 서비스를 만들고 세계 대회에서 수상했었으면 하는 바램이다. 개인적으로 돈놀이 하는 회사는 선호하지 않기 때문이다. 서울대 모 연구실의 경우 세계 대회에서 1등도 하는데... 하지만 "성공"이란 단어에는 상대성이 존재한다. 자신의 영역을 정하고 잘 파고들어 영역을 구축했다. 그것이 나중에 협회의 성격을 띠지는 말았으면 한다. 교육은 모두 학교로 돌려 보내야 하기에 그런 노하우나 프로그래밍 대회 교육 과정도 학교로 편입시켜야 한다.

2. 인터넷 강의가 없다.

인강이 왜 유행할까? 많은 사람들에게 기회를 주기 때문이다. 개발쪽에 대표적 인물이 교육으로 돈을 벌고자 했는데 인강하나 없다는 것은 아쉽다. 출판사에서 엄청 졸랐던 거면 할말이 없긴하다.

3. 체계적인 그래프가 너무 부족하다.

순서도는 아니더라도 GoF 디자인 패턴 표지 뒷부분에 새겨진 그래프처럼 완벽한 하나의 그래프는 있어야 한다. 알고리즘은 수학이고 수학은 방대해서 그래프를 못 그린다고 할 수 있다. 그러나 수학과 4학년 학생만 해도 칠판에 4번은 쓰고 지우는데 간결한 프로그래밍을 추구하는데서 그런 것을 짤 수 있을리 만무하다. 그것이 아쉽다. 나를 위해 만든 내가 연습하는 프로그램에서는 다음과 같은 변수가 있다. boost::regex re("(?i)Simple math|Math|Advanced math|Sorting|Simple Search/Iteration|Search|String Parsing|String Manipulation|Dynamic Programming|Brute Force|Encryption/Compression|Geometry|Graph Theory|Greedy|Recursion|Simulation");
바로 알고리즘을 카테고리를 나누는 것이다. 그리고 대학교 교육과정에서 문제 축소는 문제 분할을 포함하는 용어이다. 용어도 혼용되어 있는데 문제 축소를 하려면 카테고리를 알아야 한다. 그러나 그렇지 않다.

4. 객체지향 알고리즘을 단계는 아니다.

하나의 메소드 안에 들어가는 솔루션을 짜는 것은 맞다. 그러나 실무 경험까지 있다면 특정 도메인 지식까지 더해서 실무에서 정말 도움 되도록 객체지향으로 생각하고 객체지향으로 짜서 해당 알고리즘으로 문제를 푸는 방법이 있었으면 한다. 워낙 작은 문제들이라 그것이 가능하지는 않겠지만. 더 나아가 최신 버전의 기술은 전혀 없다. 람다 함수까지는 아니더라도 디자인 패턴으로 생각하고 푸는게 있었으면...

그 외에도 단점이 있지만 유명한 사람이라 너무 많이 까면 프리랜싱이 힘들 것 같아서 이만해야 겠다. 단점을 보완해서 계속 책이 출판되기를 바란다. 단점보다 장점이 많은 책이고 여러 권을 사서 주변에 줄 정도로 괜찮은 책임은 분명하기 때문이다.

이 책의 가장 큰 장점은 전체적으로 '겸손'함이 묻어나는 데 있다. 그리고 가장 큰 단점은 분야가 분야이니 만큼 재미는 없다. 중, 고등학생도 접할 수 있게 삽화도 많이 들어가고 좀 더 재미있는 책으로 계속 바뀌었으면 한다.

끝으로 늙을 수록 현명해지고 지식이 많아진다고 하는데 계속해서 대회 출전해서 좋은 성적을 거두었으면 한다. 재야에 수많은 고수들이 있겠지만 아직은 구글 코드잼에 한국 사람이 1위 했다는 것을 할 수 있는 사람은 구종만씨 밖에 없어 보인다.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...