자료구조가 기본 중에 기본이라는 말을 많이 들어왔는데,
중요한건 알겠지만 정확히 어느 정도로 숙련도가 있어야 하는건지 궁금하네요.
프로그램 = 자료구조 + 알고리즘; - 니클라우스 비르트
프로그래머가 되겠다고 한다면, 자료구조 와 알고리즘은 꼭 배워야 하는 부분입니다.
그래서 컴퓨터 사이언스 공부 하는 사람들은 2학년 과정 쯤에 이 둘은 필수과목으로 듣게 되는데요,
어떤 프로그램도 데이터를 다루지 않는 경우는 없다고 봅니다. 대부분의 자료구조는 이미 사용하실 언어에
내장되어 있거나 라이브러리화 되어 있습니다. 직접 만들어 사용할 일은 거의 없다는 말이죠.
직접 자료구조를 구현하여 사용할 필요는 없지만, 각 자료구조 라이브러리를 아주 잘 사용하기 위해서는,
자료구조에 대한 이해가 필요합니다.
어느정도 공부 해야 할지를 물어 보신거니 제 생각을 그냥 말씀드리자면,
직접 메이저 급 자료구조 라이브러리를 작성할 정도의 수준, 기술력 까지는 필요 없다.(취미가 아니라면)
교과서의 자료구조를 구현 해보면서. 이후 해당 라이브러리를 사용할때, 그 동작원리와 내부구조의 이해를
바탕으로 가장 효율적으로 라이브러리를 사용할 수 있는 정도의 지식 수준을 쌓는 것이 바람직 하다고 생각합니다. 어떤 문제를 해결해야 하는데, 링크드 리스트 라이브러라가 적합할지 아니면 단순 배열이 적합할지를 판단하고.
딱 맞는 라이브러리를 골라사용할 수 있는 센스를 가지는 정도면 충분하지 않을까요?
신세대 프로그래밍언어라 할 수 있는 Java, C++ 등에서는 라이브러리나 클라스로 많이 제공되어 사용하기 편리합니다만, 아직도 많은 곳에서 사용중인 C 로 구현된 어플리케이션 시스템에서는 직접 자료구조론에서 배운 방식들을 프로그래밍할 기회가 생깁니다.
예를 들어, 링크드 리스트나 큐 등은 제가 개발에 참여하거나 경험한 금융업쪽 시스템에서는 아주 많이 쓰입니다. 특히 멀티 쓰레딩을 C 로 구현하자면 큐 개념과 포인터 개념을 완벽하게 이해하여야 합니다.
그런데, 너무 걱정할것이 없는게, 이미 선배들이 셈플을 많이 만들어 놓아서 돌리면서 따라가 보면 쉽게 이해할 수 있을겁니다.
여의도자바
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
제가 생각하는 자료구조란...
프로그램 = 자료구조 + 알고리즘; - 니클라우스 비르트
프로그래머가 되겠다고 한다면, 자료구조 와 알고리즘은 꼭 배워야 하는 부분입니다.
그래서 컴퓨터 사이언스 공부 하는 사람들은 2학년 과정 쯤에 이 둘은 필수과목으로 듣게 되는데요,
어떤 프로그램도 데이터를 다루지 않는 경우는 없다고 봅니다. 대부분의 자료구조는 이미 사용하실 언어에
내장되어 있거나 라이브러리화 되어 있습니다. 직접 만들어 사용할 일은 거의 없다는 말이죠.
직접 자료구조를 구현하여 사용할 필요는 없지만, 각 자료구조 라이브러리를 아주 잘 사용하기 위해서는,
자료구조에 대한 이해가 필요합니다.
어느정도 공부 해야 할지를 물어 보신거니 제 생각을 그냥 말씀드리자면,
직접 메이저 급 자료구조 라이브러리를 작성할 정도의 수준, 기술력 까지는 필요 없다.(취미가 아니라면)
교과서의 자료구조를 구현 해보면서. 이후 해당 라이브러리를 사용할때, 그 동작원리와 내부구조의 이해를
바탕으로 가장 효율적으로 라이브러리를 사용할 수 있는 정도의 지식 수준을 쌓는 것이 바람직 하다고 생각합니다.
어떤 문제를 해결해야 하는데, 링크드 리스트 라이브러라가 적합할지 아니면 단순 배열이 적합할지를 판단하고.
딱 맞는 라이브러리를 골라사용할 수 있는 센스를 가지는 정도면 충분하지 않을까요?
경우에 따라 다릅니다.
신세대 프로그래밍언어라 할 수 있는 Java, C++ 등에서는 라이브러리나 클라스로 많이 제공되어 사용하기 편리합니다만, 아직도 많은 곳에서 사용중인 C 로 구현된 어플리케이션 시스템에서는 직접 자료구조론에서 배운 방식들을 프로그래밍할 기회가 생깁니다.
예를 들어, 링크드 리스트나 큐 등은 제가 개발에 참여하거나 경험한 금융업쪽 시스템에서는 아주 많이 쓰입니다. 특히 멀티 쓰레딩을 C 로 구현하자면 큐 개념과 포인터 개념을 완벽하게 이해하여야 합니다.
그런데, 너무 걱정할것이 없는게, 이미 선배들이 셈플을 많이 만들어 놓아서 돌리면서 따라가 보면 쉽게 이해할 수 있을겁니다.
여의도자바
댓글 달기