My/Riverlog

2022년 2월 회고: 알고리즘 성장통

리버김 2022. 7. 26.

Photo by Davis Patton on Unsplash

What I've learned...

2월은 web(bootstrap) 수업을 마무리하고, 나머지는 모두 알고리즘 수업으로 채워졌다. list, string, stack, queue 개념을 배우고 SWEA와 백준 등에서 문제 풀이 연습을 했다.

 

컴공 친구들이 '백준푼다'고 하는 말이 무슨 말인지도 몰랐던 내게 알고리즘은 신세계였다. 사실 수학과 친하지도 않고, 알고리즘이 무엇을 뜻하는지도 몰랐던 나는 알고리즘을 왜 배워야 하고, 왜 문제를 풀어야 하는지 분명하게 알기 어려웠다. 한 친구가 알고리즘은 '프로그래머들의 문법' 같은 것이라고 했다. 그러니까 코딩을 할 때, 아무 개념이나 가져다가 마음대로 코딩을 하면 십중팔구 효율적이지 않고 가독성도 좋지 않은 코드가 나올 것이다. 그러면 컴퓨터의 자원을 낭비하게 되고, 개발자들 간의 커뮤니케이션 자원도 낭비된다. 알고리즘 기법과 접근법을 배우고, 계속해서 문제를 풀면서 '좋은 코드'에 대해 공부하는 이유는 바로 여기에 있다고 한다. 그렇게 설명을 듣고 나니 알고리즘을 배우는 이유가 확실히 와닿았고, 그 과정을 훨씬 재미있게 즐길 수 있었다. 

 

처음에는 문제에 손도 대지 못했던 내가 2월 말 IM 등급을 취득하고, 문제풀이 사이트에서 문제를 풀 수 있게 되기까지의 과정은 대략 이랬다.

 

Python 개념 학습 -> 자료구조 학습 -> 수업에서의 예제 풀이를 통한 기본적인 유형 학습 -> 심화된 문제 스스로 풀기 -> 안 풀리는 문제는 다른 친구들이나 인터넷의 코드 참고해 접근 방법 공부하기

 

이런 과정을 반복하니 느리지만 실력이 조금씩 성장하는 것을 느꼈고, 이제는 새로운 문제를 만나도 내가 공부한 내용들을 응용해 접근할 수 있게 되었다. 선배들이 공통적으로 말하는 것이 알고리즘 풀이를 긴 시간 하지 않으면 풀었던 문제 조차도 어렵게 느껴지기 때문에 꾸준함이 중요하다는 것이었다. 이제 3월이 되었는데, 매일 한 문제 이상은 꼭 문제풀이 해야겠다.

 

 

Bootstrap. web 수업에서 web 개발에 흥미를 가지게 되었는데, bootstrap을 만나게 되니 한 번 더 신세계였다. 혼자서도 더 공부해보고 싶은 마음이 생겼고, 내가 만들고 싶은 걸 내 마음대로 표현할 수 있을 때까지 공부해봐야겠다. 

 

사실 뉴욕타임즈와 같은 언론사의 데이터 저널리즘 팀에서 일해보고픈 꿈이 있다. 기자들과 데이터 엔지니어들이 별도로 일하는 것이 아니라, 서로 의견을 주고받으며 협업한다. 당연히 기자들도 해당 knowledge가 있다. 그런데 그러려면 뉴욕타임즈에 취업해야 하는데...ㅋㅋㅋㅋ

 

너무 큰 꿈은 잠시 한 쪽으로 놔두고, 당연히 한 번에 이루고 싶다는 것은 아니다. 차근차근, 지금도 우리 언론의 현실을 바꾸고자 노력하는 선배님들로부터 배우고, 자격을 갖춰가면서 꿈을 이뤄나가보고 싶다.

 

Thoughts

개발자가 되고자 입과했던 것은 아니다. 그러나 너무나 당연한 이야기지만, 코딩/개발은 내 생각보다도 훨씬 더 유용하고, 이제는 세계 공통 언어 같은 것이 되었다. 3월이 되면서 차차 취업에 대해서도 생각하게 되는데, 내가 데이터를 다룰 수 있고, 웹 페이지를 만들 수 있다는 것을 보여줄 수 있는 프로젝트부터 시작하려고 한다.

 

사실 내가 희망하는 직무는 한 가지는 아니다. 기자가 하는 일은 고귀하고, 다른 직무는 그렇지 않다고 생각한다. 다만 나는 오로지 기계와 그것에서 파생된 상품만을 다루는 것이 가치의 전부인 일과는 맞지 않는 것은 맞다. 3월부터는 현실적인 직무도 정리해보고, 포트폴리오를 잘 만들어 나가야 겠다.

 

Next month will be like...

- CS 지식 공부하기

- 자격증 일정 잘 맞춰 신청하기

- 데이터 & 웹 프로젝트

- 알고리즘

반응형

댓글