Algorithm problem solving study
잡담-
실무를 계속하다보면 생각보다 알고리즘 문제풀때처럼 머리를 엄청 쓰는 경우는 적은 것 같다.
그래서 가끔 머리가 굳은 것 같을때마다, 알고리즘 문제를 풀었었는데 이걸 정기적으로 꾸준히 해야 실력이 늘 것 같아 공부를 시작하려고 한다.
알고리즘에 대해 중요성은 느낀 것은 최근 Google BigQuery mini course에 대한 Webinar를 들으면서 BigQuery Mechanism에 대해 들을 때 병렬처리를 구현했고 이는 논문에서 예전부터 논의된 것이라고 했을 때였다.
주니어 개발자에서 시니어 개발자로 넘어가는 연차에서 이제 Compute science에 대한 깊은 이해와 알고리즘, 실무 경험, 프러덕트 개발 경험은 Opensource에 대한 개발, 사내 중요 프로젝트 개발 등에서 역량이 발휘된다고 생각하는데 이 방향에 어느정도의 알고리즘 능력은 도움이 된다고 생각했다.
알고리즘 문제를 풀기 위한 문제 요건 정의, 제약 사항, 구현 방법에 대한 생각, 생각한 것에 대한 실제 구현으로 이어지는 것이 알고리즘 공부하는 것과 비슷한 것 같다.
물론 이것도 너무 에너지를 쓰지 않고 적절한 배분이 중요한 것 같다.
목표
외국 사이트 중, 추천 받은 HackerRank라는 사이트가 있는데, 여기서 공부를 시작해보려고 한다. HackerRank말고 Leetcode라는 곳도 많이 사용하는 곳이지만 시작하는게 더 중요한 것 같아 크게 신경쓰지 않고 선택했다.
아래는 하려고 하는 목표이다.
알고리즘 매일 최소 2문제 이상 풀기(난이도에 따라 1문제일 수 있음)
난이도에 따라 약 1~2문제를 매일 풀면 이직 준비와 머리 굳은 것을 푸는데 굉장히 좋을 것 같다.
중급 난이도를 평이하게 풀 레벨이 되었을 때, 알고리즘 관련 책 읽어보기
책은 아직 정하지 않았지만 공부하다보면 자연스럽게 어느 책을 공부해야될 지 알 수 있을 것이라 생각한다. 지금 정해도 나중에는 오히려 책의 난이도가 평이하거나 어렵게 되는 등의 문제가 있을 수 있어 추후 정의를 해본다.
댓글남기기