Bio-O 표기법 알아야 하나요?
포스트 난이도: HOO_Junior
Q: 빅오 표기법 솔직히 몰라도 되는 거 아닌가요?
Q: 빅오 표기법 파이썬에서는 필요 없잖아요.
Q: 빅오 표기법 어렵지만 알아두면 좋은 거 아닌가요?
Q: 빅오는 몰라도 개발자 될 수 있죠?
# 프로그래머라면 알고리즘을 알아야 한다.
며칠 전에도 미국에서 공부를 하는 Bro가 필자에게 "빅오 표기법 솔직히 필요 없잖아요.", "파이썬에서는 필요 없는 거 아닌가요?"라는 말을 했다. 솔직히 CS 전공으로 와서 이제 막 공부하는 친구들이 프로그래밍 언어가 전부인 줄 알고 있다가 Data Structure, 자료구조 수업을 들으며 겪는 어려움이라고 생각한다.
거두절미하고 프로그래머가 되고 싶다면 빅오 표기법에 대해서는 알아야한다. 여기서 필자가 말하는 프로그래머의 기준은 최적의 프로그램 개발을 위해 알고리즘을 선택적으로 골라서 사용할 줄 알고 유지 관리 면에서도 최고의 효율성을 위해 프로그래밍을 할 수 있는 개발자들을 의미한다. 한마디로 필자는 프로그래밍 언어만 알고 있거나 코드를 작성할 줄 안다고 해서 프로그래머라고 생각하지 않는다. 왜냐하면 응용 개발이 되지 않기 때문이다.
알고리즘을 왜 배워야하고 필요한지에 대해서 이야기를 하면 길어지지만 간단하게 말하면 프로그램 개발을 하기 위해서 필요한 것이다. 모든 프로그램은 간단히 만들어지지 않는다. 일명 복붙만 해서 모든 프로그램이 만들어지는 것이 아니다. 솔직히 프로그램 개발 과제를 놓고 5살 애기부터 90세 노인까지 동일한 프로그램을 개발하라고 했을 때 모두 다 프로그램 개발이 가능하다. 다만 누가 효율적으로 신속하고 정확하게 개발하는지는 다르다. 따라서 프로그래머는 프로그램을 만들 줄 안다는 것은 기본이고 프로그램을 어떻게 잘 만드는지가 중요한 게 그때 필요한 것이 알고리즘이다.
# 알고리즘과 빅오 표기법
"그러면 알고리즘과 빅오 표기법이 왜 상관성이 있는 건가요?"라고 물어보는 Bro가 있을 것이다. 거두절미하고 빅오 표기는 아~주 기초적인 알고리즘 활용을 위한 기본 상식이다. 한마디로 빅오 표기법을 공부하지 않는다는 것은 요리사가 소금을 얼만큼 넣어야 음식의 맛이 바뀌는지 모르는 상태와 같다. 빅오 표기법을 모르면 프로그램 개발에 있어서 효율성에 대한 부분을 알지 못하고 결과적으로 알고리즘 활용을 할 수가 없다. 예를 들어, 두통이 있어서 약국에 갔는데 약사가 두통에 대한 처방해야될 약 성분과 특징을 알고 있는 게 아니라 두통 = 타이레놀 이렇게만 알고 있는 상태와 같은 것이 알고리즘은 모르는 채 프로그램 개발하는 거와 같다.
# 빅오 표기법은 꼭 알아야 한다.
결과적으로 제대로 된 프로그래머로써 일을 하고 싶다면 빅오 표기법은 꼭 이해하고 알고 있어야 되는 부분이다. 그저 "난해하지만 알아두면 좋은 것"이 아니라는 것이다. 일부 학생들 중에서 잘 못해서 주변에 잘못된 정보를 공유함으로써 알고리즘 공부를 소홀히 하거나 알고리즘의 공부의 기초와 같은 빅오 표기법 같은 공부에서 포기하고 무시하는 경향이 종종 있다. 하지만 필자는 제발 그러지 말라고 이야기하고 싶다. 알고리즘 공부를 포기한다면 학교에서 공부할 때 힘들 것이며, 졸업도 힘들고, 취업 준비도 힘들다. 심지어 연차가 쌓여 경력자 개발자가 되었지만 항상 같은 레벨에서 남겨져 있는 최악의 결과가 발생할 수도 있다. 결국 필자가 이야기하고 싶은 부분은 알고리즘 공부는 프로그래머의 한 부분인 셈이다.
# In conclusion, 3줄 요약
1. 프로그래머는 알고리즘 공부를 꼭 해야 된다.
2. 빅오 표기법은 프로그래머로써 알아야되는 기초 상식이다.
3. 빅오 표기법에 대해서 오해하지말고 잘 이해해야 한다.
'미국 개발자 > HOOTips' 카테고리의 다른 글
[HOO's INFO] 신입 개발자가 경력 쌓는 방법: 대학교 연구소 (0) | 2021.12.08 |
---|---|
[INFO] 회사에서 중고 신입 개발자를 뽑는 이유 (0) | 2021.12.07 |
[HOO's Q&A] 전역 변수를 많이 사용해야 하지 않는 이유 (0) | 2021.08.29 |
[HOO's Information] 프로그래밍 공부하는 방법 #02 - 읽는 습관의 중요성 (0) | 2021.08.21 |
[HOO's Information] 프로그래밍 공부하는 방법 #02 - 프로그래머와 영어 (0) | 2021.08.12 |
댓글