요즘에는 데이터 구조와 알고리즘에 많은 투자를하고 프로그래밍 퍼즐을 풀려고 노력하고 있습니다.
Java 및 Clojure로 코딩하고 해결하려고합니다.
나는 시간을 낭비하고 있습니까? 더 깊이있는 지식을 얻고 더 빠르게 코딩 할 수 있도록 이미 알고있는 기술과 프레임 워크에 더 많이 투자해야합니까?
데이터 구조와 알고리즘을 연구함으로써 더 나은 프로그래머가됩니까? 아니면 그 과목이 대학 시절에만 중요합니까?
요즘에는 데이터 구조와 알고리즘에 많은 투자를하고 프로그래밍 퍼즐을 풀려고 노력하고 있습니다.
Java 및 Clojure로 코딩하고 해결하려고합니다.
나는 시간을 낭비하고 있습니까? 더 깊이있는 지식을 얻고 더 빠르게 코딩 할 수 있도록 이미 알고있는 기술과 프레임 워크에 더 많이 투자해야합니까?
데이터 구조와 알고리즘을 연구함으로써 더 나은 프로그래머가됩니까? 아니면 그 과목이 대학 시절에만 중요합니까?
답변:
알고리즘 및 데이터 구조에 대한 최소한의 지식만으로도 대부분의 경력 전체를 중요하고 유용한 작업에 소비 할 수 있습니다.
최소 순서 알고리즘과 데이터 구조체에 대한 지식의 수준에 당신이 필요합니다, 성공합니다 :
* 최대 * 가 없습니다 . 원한다면 박사 학위 수준 이상의 연구를 할 수 있습니다. 유용성은 관심있는 직종과 가장 흥미롭고 보람있는 직종과 직접 관련이 있습니다.
즉, 대략적인 (절대적이지는 않지만) 지침으로 작업중인 언어, 프레임 워크 및 응용 프로그램의 수준이 낮고 자원 집약적이며 자동화 수준이 낮을수록 필요한 기술 수준이 높아집니다. 알고리즘 및 데이터 구조. 예를 들어, 어셈블리에서 Ukkonen의 알고리즘 을 구현 하면 알고리즘 및 데이터 구조에 대한 마스터 수준의 이해를 원할 것입니다.
Java 개발 배경에서 iO 작업에 이르기까지 특정 상황에서는 알고리즘과 데이터 구조에 대한 일반적인 이해가 약간 더 높아질 것으로 예상됩니다. 사용 가능한 리소스가 적은 장치에서 효율적으로 실행할 수 있습니다. 또한, 무기고에 두 가지 새로운 카테고리를 추가 할 것으로 예상됩니다. 특히, 메모리 관리에 대해 더 알고 싶습니다.
아냐 방금 시작한 경우 UI 프로그래밍과 같은 큰 그림으로 들어 가려고하면 등이 막히게됩니다. 결국 거기에 가서 더 큰 프레임 워크를 배워야합니다. 다른 사람들이 작성한 데이터 구조와 알고리즘을 사용하는 방법. 제한된 범위의 문제를 고수하는 것이 좋지만 처음 시작할 때입니다.
알고리즘과 데이터 구조는 기본적으로 초보자 단계를 지나면 결코 자신의 것을 쓰지 않더라도 기본적으로 모든 것의 기초입니다. 그것들을 알고 있거나 최소한 알고 있으면 결국 더 나은 개발자가 될 것입니다. 작동 방식을 알기 때문에 각각을 언제, 왜 사용해야하는지 알 수 있습니다. 또한 알고리즘 및 데이터 구조를 일반화하여 인터페이스 X를 사용하여 모든 유형 또는 유형에서 작동 할 수 있도록하는 것은 실제로 경력의 나머지 부분에서 사용하는 것입니다.
나는 Ct에 대한 지식이 전혀없는 질문을하는 Qt와 같은 사람들을 너무 많이 보았습니다 (예 :). 너무 많은 단계를 건너 뛰려고하지만 결국 배우는 데 시간이 더 걸립니다. 나는 당신이 올바른 길을 가고 있다고 말하고 싶습니다.
당신은 당신의 시간을 낭비하지 않습니다.
업무 중에 이전에 사용하지 않은 도구 또는 프레임 워크를 사용해야하는 경우이를 배우고 사용하게됩니다.
그러나 이전에 사용하지 않은 데이터 구조 또는 알고리즘을 사용해야하는 경우 데이터 구조 나 존재 여부를 알지 못할 가능성이 높으며, 더 많이 사용되는 끔찍한 차선책을 사용하여 문제를 해결할 수 있습니다. 노력과 비늘이 정말 심합니다.
내가 말하려는 것은, 이것은 단지 당신이 행함으로써 배우는 것이 아니라 , 학업 상황에서, 또는 개인적 노력으로 당신이 배우는 동안 배우면서 배울 필요가 있다는 것입니다. 지금하고 있어요
그것이 당신을 행복하게 만드는 것이라면, 반드시 그것을 고수해야합니다. 이론을 충분히 적용하지 못하는 것이 걱정된다면 이론이 많은 프로젝트를 고려하십시오. Potion 과 같은 작은 프로그래밍 언어 를 처음부터 작성하십시오. 완전한 구현에는 해시 테이블, 그래프, 트리 및 거대한 알고리즘이 사용됩니다. 흥미로워 보이는 경우 최적화, 기본 코드 생성 또는 사용자 확장성에 대해 자세히 알아볼 수 있습니다.
실용적이지만 약간 둔한 프로젝트를 수행 할 때가 아니라 관심과 집중력을 유지할 때 더 나은 프로그래머가됩니다.
토끼 구멍 아래로 도로시!
OpenGL을 사용하여 C / C ++에서 해킹하는 데 많은 시간을 보냈습니다. 나는 언어와 API를 충분히 알고 있습니다 ... 그리고 그 경험 때문에 합리적인 개발자와 프로그래머가되었습니다. 즉, 다양한 문제를 해결하는 데 필요한 실제 알고리즘 지식 은 실제로 파악할 수 없었습니다.
개인적인 경험에서 말하면 응용 프로그램 작성에 집중하는 것은 문제의 영역에 대한 이론을 모르는 경우 시간 낭비가 될 것입니다.
여러 종류의 소프트웨어의 경우, 이러한 영역은 고유 한 틈새 기반 이론 (예 : 컴퓨터 그래픽의 선형 대수, 암호의 숫자 / 정보 이론 등) 외에도 알고리즘 연구에서 배운 기본 사항에서 비롯됩니다.
당신은 반드시 모든 것 뒤에 계산적 위즈 키드가 될 필요는 없지만,이 포스트 시점에하고 있던 일을하는 것은 프로그래밍 여정에서 적어도 한 번 내려갈 수있는 매우 필수적인 경로입니다. 그들은 스스로 가르친 것이 아닙니다.