성공적인 엔터프라이즈 Java 개발자가되고 싶습니다. 어떤 알고리즘과 데이터 구조에 정통해야합니까? 나에게 어떤 책을 추천 하시겠습니까?
성공적인 Java 개발자가 되려면 CLRS에 제공된 것과 같은 모든 고급 알고리즘을 알아야 합니까?
우선 순위의 내림차순으로 학습해야 할 주제 목록을 제안 할 수 있습니까?
내가 알아야 할 것 :
- 수색?
- 정렬?
- 그래프 / 나무?
기타?
성공적인 엔터프라이즈 Java 개발자가되고 싶습니다. 어떤 알고리즘과 데이터 구조에 정통해야합니까? 나에게 어떤 책을 추천 하시겠습니까?
성공적인 Java 개발자가 되려면 CLRS에 제공된 것과 같은 모든 고급 알고리즘을 알아야 합니까?
우선 순위의 내림차순으로 학습해야 할 주제 목록을 제안 할 수 있습니까?
내가 알아야 할 것 :
기타?
답변:
알고리즘 에 대한 Cormen의 소개 는 몇 가지 기본 이론적 기초를위한 좋은 책입니다.
즉, 대부분의 알고리즘과 데이터 구조는 이미 다른 사람들에 의해 코딩, 테스트 및 최적화되었으므로 다시 구현할 이유가 없습니다. 성공적인 Java 개발자가 되려면 Collections Framework 를 알아야 합니다.
어떤 종류의 프로그래머라도 되려면 모든 기본 데이터 구조 (스택, 큐, 배열, 링크 된 목록, 해시 테이블, 트리 등)를 자세하게 이해해야합니다. 컬렉션 프레임 워크가없는 세상에서 자신을 위해 일한다면 자신을 위해 구현할 수있을 만큼은 충분합니다.
알고리즘과 관련하여 데이터 구조는 기본 빌딩 블록 인 반면, 작업을위한 더 많은 도구 인 것 같습니다. 나는 당신이 실행할 수있는 모든 알고리즘을 구현하는 방법에 대한 세부 사항을 아는 것이 중요하다고 생각하지 않습니다. 당신이 할 수있는 것은 주어진 목적을 위해 알고리즘이 얼마나 잘 작동하는지 평가하는 것입니다. 깊이 우선 검색과 너비 우선 검색 또는 데이터에서 수행하는 정렬 유형의 차이로 인해 코드의 성능이나 일반적인 성공에 큰 차이가 생길 수 있으므로이를 판단하는 방법을 아는 것이 중요합니다.
나는 지금 하루에 Java를 배우고 있습니다.
성공적인 엔터프라이즈 개발자가되고 싶습니다. 그렇다면 어떤 알고리즘과 데이터 구조에 정통해야합니까? 어떤 책을 추천 하시겠습니까?
성공적인 Java 개발자가 되려면 CLRS에 제공된 것과 같은 모든 고급 알고리즘을 알아야합니까?
우선 순위의 내림차순으로 배워야 할 주제 목록을 제안 해 주시겠습니까?
알아야 할 몇 가지 주제의 이름을 알려주십시오. 검색, 정렬, 그래프, 트리 등?
프로그래밍 기술을 확장하고 향상시키기를 열망하는 것이 좋습니다. 그러나 알고리즘을 암기 할 항목의 카탈로그로 취급하지 않는 것이 중요합니다. 좋은 개발자가되기 위해 알아야 할 것은 (자바 나 다른 문제에서) 알고리즘 분석을 이해하는 것입니다.
선택한 몇 가지 데이터 구조와 알고리즘 을 배우고 시간과 공간 (메모리) 측면에서 성능을 분석하는 방법을 배웁니다. 검색, 정렬, 그래프, 트리, 힙, 스택 및 모든 좋은 것들. 이것은 또한 계산 및 이산 수학의 몇 가지 기본 이론을 따라야합니다 (자바 영역에서는 실제로이 두 주제를 직접 사용할 수는 없지만 이점은 간접적입니다).
알고리즘 분석 학습 (알고리즘 및 데이터 구조의 "암기"와는 다름)으로 프로그래밍 언어 학습 (자바 Java의 경우)을 분리하십시오.
George T. Heineman, Gary Pollice 및 Stanley Selkow의 "간단한 알고리즘" 은 좋은 출발입니다. Sanjoy Dasgupta, Christos Papadimitriou 및 Umesh Vazirani의 "알고리즘"은 훌륭한 저학년 교과서입니다.
가장 좋은 생각은 저학년 3000 레벨의 알고리즘 과정을 수강하기 전에 프로그래밍에서 9-12 학점을 수강하는 것입니다. 내가 언급 한 두 권의 책에 대한 자율 학습은 좋은 대안이 될 수 있습니다 (자기 학습은 모든 사람을위한 것은 아닙니다).
행운을 빕니다!