개발자는 왜 자료구조와 알고리즘을 배워야 할까?

AmeriKano·2023년 4월 7일
0

사담

목록 보기
4/4

지금 나는 조금 더 체계적인 배움을 위해 제로베이스 백엔드 스쿨을 수강중이다. 이제 1개월 정도 되었고, 지금까지 자료구조와 알고리즘에 대해서 전공수업의 기억을 살리며 다시 한 번 공부했다.
본격적인 프로그래밍을 위해서는 그 사용하는 프레임워크에 따른 학습이 필요하지만 아직 그 단계는 아니고, 그렇다면 그 전에 자료구조와 알고리즘을 왜 배워야 하는걸까 개인적으로 생각해보았다.

코딩테스트?

코딩테스트, 물론 중요하다. 이것에 합격하지 못하면 개발자가 될 수 없으니까. 다양한 문제들을 코드를 작성해 해결하는 것이고, 거기에서 얼마나 효율적으로 자료구조 및 알고리즘을 응용할 수 있는지를 확인하는 단계이다. 하지만 단순하게 코딩테스트를 합격하기 위해서만 이것들을 공부해야 하는걸까?

사고력

대학생 때 비전공학과 대상 교양 코딩과목 수업을 진행하는 조교를 1년 정도 해본 경험이 있다. (공과대학 학생들이었다.) 그 때 내가 가르치는 학생들에게 전공에 직접적으로 도움이 되지는 않겠지만 결국 전공 문제들을 해결하려면 수학적 사고력이 필요하고, 코딩이 그 수학적 사고력을 키워주는데 어느정도 도움이 된다는 이야기를 해주면서 성실히 참여하면 얻어가는 게 있을거라고 말을 해줬던 적이 있다. 위에서 말한 어떤 수단을 어떻게 효율적으로 사용하는지 생각하는 것이 사고력이라고 생각하는데, 이런 사고력을 키울 수 있는 것이다. 그렇다면 이 사고력은 키워서 어디에 써먹을 수 있을까?

문제 해결의 경험

진짜 개발의 단계로 넘어와서, 학부생 조별과제 정도의 프로젝트더라도 최소한의 과정이 있고, 우리가 마스터 개발자도 아니기 때문에 다양한 문제들이 발생한다. 우리는 이를 대부분 구글링으로도 해결할 수 있지만, 문제를 어떻게 해결할수 있을지에 대해 생각해본다. 이 때 더 효율적으로 해결할 수 있었던 경험이 쌓이고 쌓여 실력이 될 것이다. 현업에서 발생할 수 있는 문제도 당황하지 않고 이런 경험을 살릴 수 있다면 더욱 사랑받는 개발자가 될 수 있을 것이라고 생각한다.

마치며

결국은 경험이 가장 중요한 것이다. 다양한 문제를 해결하고 거기에서 얻을수 있는 것들을 내 것으로 만들어 더 어려운 문제들을 해결해나가도록 노력해야 한다.

profile
똑똑한 사람이 되게 해주세요

0개의 댓글