알고리즘 학습의 긴 여정에서 많은 사람들이 앞으로 나아가지만 종종 길을 잃습니다. 최근 내 학습 과정을 되돌아보면서 많은 친구들이 알고리즘과 데이터 구조를 배우는 방식에 큰 문제가 있다는 것을 깊이 깨달았습니다. 다년간 축적된 알고리즘 학습 경험을 통해 나의 통찰력이 모든 사람의 안개를 걷어내고 앞으로 나아갈 길을 밝혀줄 수 있기를 바랍니다. 다음으로, 먼저 실수를 보여준 다음 올바른 학습 방법을 설명하고 인터뷰의 핵심 사항을 간략하게 논의하고 질문 시나리오를 검토합니다.
많은 알고리즘 교과서의 교수법은 현대 중국어 사전으로 중국어를 배우는 것과 같습니다. 연결 목록 장을 예로 들어 보겠습니다. 처음부터 연결리스트를 직접 정의하고, 다이어그램을 그려서 설명하고, 노드 검색, 삽입 등 일반적인 작업을 나열합니다. 학생들은 이해하는 것처럼 보이지만 실제로는 기억하지 못합니다. 그들은 여전히 의심으로 가득 차 있습니다: 연결 목록의 용도는 무엇입니까? 왜 공부하나요? 배운 것을 어디에 활용했나요? 이 질문들은 책 전체를 읽을 때까지 답이 나오지 않을 수도 있습니다. 대부분의 강좌는 이러한 방식으로 지식을 전달합니다. 모든 사람들이 문제를 더 명확하게 이해할 수 있도록 돕기 위해 외국 최고의 대학에서 제공하는 두 가지 개방형 데이터 구조 과정인 MIT의 6.006과 Stanford의 CS106B를 특별히 확인했습니다(두 과정 모두 온라인에서 무료로 볼 수 있음).
위에서 언급한 대로 올바른 방법으로 공부하더라도 시험과 면접에 합격하려면 여전히 실력이 필요합니다. 인터뷰 과정에서 연결리스트가 무엇인지 아는 것만으로는 충분하지 않습니다. 면접관이 중요하게 생각하는 것은 연결 목록을 사용하여 실제 프로젝트에서 어려운 문제를 해결하는 능력입니다. 예를 들어, 이력서에서 웹 기반 다중 총알 게임을 만든다고 언급했습니다. 하지만 총알이 너무 많아 게임이 지연됩니다. 이때 Linked List를 이용하여 수천 개의 Bullet을 미리 초기화하고 Bullet Object Pool을 구축하여 Lag 문제를 효과적으로 해결하였다. 면접 중에는 실제 경쟁 디스플레이와 결합되어 면접관에게 깊은 인상을 남길 것입니다. 또 다른 예는 연결된 목록을 사용하여 운영 체제 메모리 할당을 구현하고, 연결된 목록을 사용하여 메모리를 연결하고, 사용량에 따라 노드를 자르고 삽입하는 것입니다. 이 애플리케이션은 단순히 연결리스트의 개념을 설명하는 것보다 인터뷰에서 더 설득력이 있습니다. 데이터 구조의 실제 적용에 대해 더 자세히 알고 싶다면 AI 도구를 활용하는 것이 좋습니다.
문제를 공부할 때 많은 교과서에서는 문제를 낸 후 바로 답을 주는 경우가 많습니다. 그러나 정말로 배워야 할 것은 질문과 답변 그 자체가 아니라, 질문에서 답변까지의 구불구불한 사고 과정이다. "문제 해결 방법"이라는 책이 있습니다. 주로 수학에 초점을 맞추고 있지만 구체적인 문제를 가르치지는 않지만 모든 사람이 참고할 만한 문제 해결 아이디어를 가르칩니다. 알고리즘 질문을 인터뷰할 때도 마찬가지다. 3분간 침묵 후 화이트보드에 직접 답을 적는다면 면접관은 대략적인 인상만 남게 될 것입니다. 면접관은 당신의 사고력과 의사소통 능력을 이해하지 못하고, 심지어 당신이 질문을 외웠다고 의심할 수도 있기 때문입니다. . 면접 중에는 면접관과 충분히 소통하고 사고 과정을 보여주세요. 이해하지 못하는 질문이 나오더라도 원활한 의사소통을 통해 힌트를 얻고 마침내 질문에 대한 답을 완성할 수도 있습니다.
내 학업 경력을 되돌아보면, 강좌와 교과서의 절반 이상이 지식을 주입하기 위해 벼락치기를 사용했다는 것을 알게 되었습니다. 이 글을 통해 알고리즘 학습에 대한 오해를 벗어나 자신에게 맞는 학습 경로를 찾을 수 있기를 바랍니다. 이 글이 도움이 되셨다면, 꼭 세 번 클릭해주세요. 또한 알고리즘 학습의 길에서 함께 발전할 수 있도록 댓글 영역에서 학습 경험과 질문을 공유하실 수 있습니다.
트위터에 공유 페이스북에 공유
코멘트
현재 댓글이 없습니다