알고리즘 문제를 푸는 것이 실력 향상에 도움이 될까요?
포스트 난이도: HOO_Intern
# 알고리즘 문제
프로그래밍을 공부하는 초보 프로그래머에게 있어서는 공부를 어떻게 해야 할지 조차도 막막하다.
공부를 어디서 어떻게 시작하고 무엇을 해야할지 조차도 정하기가 어렵기 때문이다.
심지어 수업을 듣고 이론을 이해했다고 하지만 막상 코딩을 하려고 하면 모르는 경우가 종종 있다.
다행스럽게도 필자가 프로그래밍 공부를 시작할 무렵(라떼는 말이야)에는 국내에 개발자 공부를 위한 가이드라인이라든지 자료들이 많지는 않았다.
하지만 4차 산업 시대 이후에 개발자의 수요와 공급이 증가함에 따라 정말 다양한 매체를 통한 프로그래밍 관련 자료나 공부 가이드라인들이 많이 생겨났다.
그중에 하나가 바로 알고리즘 문제 자료이다.
이미 많은 Bro들이 알고리즘 문제를 풀고 있다.
Bro 중에 한 명은 매일 5개의 알고리즘 문제를 풀어보면서 실력 향상에 도움이 되는 걸 느낀다고 한다.
# 알고리즘 문제는 탄탄한 기본기 습득에 도움이 된다.
기본기가 부족하거나 실제로 프로그래밍을 한 경험이 적은 초보 개발자에게는 알고리즘 문제를 푸는 것이 실력 향상에 도움이 되는 건 사실이다.
알고리즘 문제는 마치 요리할 때 재료를 다루는 실력과 비슷하다.
알고리즘 문제를 많이 풀고 익숙해질수록 마치 요리를 하는 과정에서 재료마다 칼질하는 방법이나 각각의 음식 재료를 다루는 방법을 배우는 것과 같다.
우리가 요리를 만든다고 했을때 기본 재료 손질도 미숙하고 재료를 다룰 수 있는 능력이 부족하면 당연히 요리의 퀄리티가 낮아지거나 요리를 완성하는데 시간이 오래 걸릴 수밖에 없다.
알고리즘도 마찬가지이다.
알고리즘 문제를 풀면 특정 알고리즘에 대해서 연습해볼 수 있고 코드 안에서 자주 사용하는 구조나 기능을 쉽게 익힐 수 있다.
눈으로 보는 것보다 직접 고민해보고 문제를 풀어보면서 프로그래밍에 필요한 기본 실력을 쌓는데 매우 도움이 되는 방법이다.
# 알고리즘 문제 푸는 것만이 정답은 아니다.
하지만 알고리즘 문제를 푸는 것만이 실력 향상에 도움이 되는 것은 아니다.
알고리즘 문제를 푸는 것은 기본기를 익히는 것에 도움이 된다.
기본기가 어느정도 충분히 익혔다면 실질적인 프로젝트를 통해서 개발 능력을 향상해야 한다.
예를 들어서 게임에서 초보자에게 초보 몬스터를 잡는게 도움이 되겠지만 그렇다고 해서 계속 초보 몬스터만 잡을 수는 없다.
어느 정도 레벨이 되면 다음 몬스터를 잡으러 가듯이 알고리즘 문제만 푸는 것이 개발자 실력 향상에 도움이 되지는 않는다고 본다.
물론 새로운 몬스터를 잡는 것이 버겁고 힘들 수는 있다.
하지만 어려운 몬스터를 잡을수록 경험치와 보상이 많듯이 알고리즘 문제를 통한 기본 실력을 쌓았다면 프로젝트를 통해 실력 향상을 해야 한다.
필자가 이 부분을 강조하는 이유는 한국 개발 전공자 Bro들이 이런 경우를 많이 봤기 때문이다.
개발 능력을 향상하고자 혼자서 스스로 공부하는 건 기특하고 멋있다.
하지만 프로젝트라는 걸 하기에 본인의 실력이 부족하다고 자부하여 계속 알고리즘 문제만 푸는 경우가 있다.
알고리즘 문제는 말 그대로 문제이다.
실무에서 일을 하기 위해서는 직접 프로젝트도 해봐야 한다.
또한 취업이나 경력을 쌓기 위해서는 알고리즘 문제를 푸는 것보다 프로젝트에 참여하거나 프로젝트를 해보는 것이 중요하다.
# In Conclusion
결과적으로 알고리즘 문제를 푸는 것은 프로그래밍 기본 능력 향상에 도움이 되지만 그다음 단계인 프로젝트 참여에 두려워하지 말고 같이 병행해서 해야 한다는 것이다.
'미국 개발자 > HOOTips' 카테고리의 다른 글
[HOO's INFO] 개발자 포트폴리오 작성 방법: 기술 경험 위주로 작성해야 한다 (0) | 2022.02.11 |
---|---|
[Q&A] 유학생 컴공 전과 괜찮나요? (0) | 2022.02.10 |
[HOO's INFO] 자바를 해야 하는 이유 (0) | 2022.01.19 |
[HOO's INFO] 신입 개발자가 경력 쌓는 방법: 자격증, Certificate (0) | 2022.01.16 |
[HOO's INFO] 메타버스(Metaverse)란? (0) | 2022.01.05 |
댓글