요사이 들어 궁금해지는 질문이 하나 있다.
왜 엔지니어(여기에서 엔지니어란 실제 필드에 나가서 일하고 있는 practitioner를 일컬음)는 졸업 후 일을 하는데 있어 논문을 읽지 않는가?
- 부분문자열 검색에 있어 Boyer-Moore 알고리즘이 최대 N/M 여기에서 N은 스트링 길이, M은 검색 문자열의 성능을 제공해 주는 것을 안다면 char by char로 하나씩 비교하는 것이 얼마나 무식한 짓인지 알텐데... 아니면, 단순히 라이브러리에서 제공하는 substr()함수라는 것이 어떻게 구현되어 있는지는 알고 사용하는 건가?
왜 엔지니어는 시스템의 scalability는 고려하지 않고, 그냥 돌아가게만 짤까?
- 포인터로 넘기라고 해도 구현이 복잡하다고 value copy를 해버리고. 크기가 큰 struct를 value copy하는 것이 잘못되었다는 것을 굳이 pointer address의 길이와 struct의 크기만 비교를 해도 알 수 있을텐데...
왜 엔지니어는 scalability는 무조건 서버 담당이라고 생각을 할까?
세상에 쏟아지는 알량한 개발 기술들 익히기 전에 기본부터 잡아 놓고 있어야 하는 것이 아닌가. 프로그램 짜면서 간단하게나마 알고리즘의 복잡도는 지속적으로 신경써야 하는 것 아닌가..
지금 잘나간다는 개발 기술이 몇년, 몇십년 지나고나서도 계속 쓰일 것도 아닐 것이고... 변화하는 개발환경에 맞춰가는 것도 중요하지만 어떤 경우에 있어서도 비범하게 사용될 기본은 있어야 하는 것이 아닌지..
왜 우리나라엔 남의 나라 회사 기술들의 전도사들이 이렇게 많은지...
결국엔 그 기술로 비즈니스 솔루션 만들고 보면 scalability 면에서 도저히 외산을 못 따라가 종국엔 외산 비즈니스 솔루션 통채로 사 버리고, 나중에 하는 것이라곤 외산 서버 위에서 애플리케이션의 개발 밖에 되지 않는다.
그럼 다시 처음으로 돌아가서 왜 자료구조, 알고리즘 과정을 배우고 졸업한 엔지니어들이 최소한의 scalability도 고려하지 않는 것일까? 왜 그들에게 논문이란 읽고 이해하기가 그토록 어려운 것일까? Practitioner와 theorist 간의 장벽은 그리도 두꺼운가?
이런 문제에 대해서 대학에서 신경써줘야 하는 거 아닌가..?
근데 이런 주제는 CS의 어느 분야에 속하지? SE인가 아니면 전산교육인가.
왜 엔지니어(여기에서 엔지니어란 실제 필드에 나가서 일하고 있는 practitioner를 일컬음)는 졸업 후 일을 하는데 있어 논문을 읽지 않는가?
- 부분문자열 검색에 있어 Boyer-Moore 알고리즘이 최대 N/M 여기에서 N은 스트링 길이, M은 검색 문자열의 성능을 제공해 주는 것을 안다면 char by char로 하나씩 비교하는 것이 얼마나 무식한 짓인지 알텐데... 아니면, 단순히 라이브러리에서 제공하는 substr()함수라는 것이 어떻게 구현되어 있는지는 알고 사용하는 건가?
왜 엔지니어는 시스템의 scalability는 고려하지 않고, 그냥 돌아가게만 짤까?
- 포인터로 넘기라고 해도 구현이 복잡하다고 value copy를 해버리고. 크기가 큰 struct를 value copy하는 것이 잘못되었다는 것을 굳이 pointer address의 길이와 struct의 크기만 비교를 해도 알 수 있을텐데...
왜 엔지니어는 scalability는 무조건 서버 담당이라고 생각을 할까?
세상에 쏟아지는 알량한 개발 기술들 익히기 전에 기본부터 잡아 놓고 있어야 하는 것이 아닌가. 프로그램 짜면서 간단하게나마 알고리즘의 복잡도는 지속적으로 신경써야 하는 것 아닌가..
지금 잘나간다는 개발 기술이 몇년, 몇십년 지나고나서도 계속 쓰일 것도 아닐 것이고... 변화하는 개발환경에 맞춰가는 것도 중요하지만 어떤 경우에 있어서도 비범하게 사용될 기본은 있어야 하는 것이 아닌지..
왜 우리나라엔 남의 나라 회사 기술들의 전도사들이 이렇게 많은지...
결국엔 그 기술로 비즈니스 솔루션 만들고 보면 scalability 면에서 도저히 외산을 못 따라가 종국엔 외산 비즈니스 솔루션 통채로 사 버리고, 나중에 하는 것이라곤 외산 서버 위에서 애플리케이션의 개발 밖에 되지 않는다.
그럼 다시 처음으로 돌아가서 왜 자료구조, 알고리즘 과정을 배우고 졸업한 엔지니어들이 최소한의 scalability도 고려하지 않는 것일까? 왜 그들에게 논문이란 읽고 이해하기가 그토록 어려운 것일까? Practitioner와 theorist 간의 장벽은 그리도 두꺼운가?
이런 문제에 대해서 대학에서 신경써줘야 하는 거 아닌가..?
근데 이런 주제는 CS의 어느 분야에 속하지? SE인가 아니면 전산교육인가.
'CS 전공 > 생각?' 카테고리의 다른 글
한국이 노벨상 없는 이유 (0) | 2009.07.31 |
---|---|
DB쪽 논문 인용 수 TOP5? (2) | 2009.07.29 |
불태웠어 새하얗게... (4) | 2008.08.29 |
이 학회는 대체... (2) | 2008.06.26 |
IEEE TKDE 리뷰 (3) | 2008.06.23 |