우선 눈 앞에 있는 Front-end에 대한 라이브러라나 프레임워크 공부에 집중하다보니 알고리즘이나 자료구조에 대한 공부는 조금 뒷전이 되고 있었다. 솔직히 자료구조 알고리즘은 어려운 부분이라서 단기간에 해결이 될 것 같지 않았다. 좀 더 코드를 만나다보면 익숙해지는 시기가 오겠지 싶었다. 그런데 다시 만난 자료구조는 내가 생각한 것과는 조금 다른 만남이 되었다.
생각보다 놓고 있다가 다시 풀려다보니 이상하게 생각이 잘 안났다. 이럴 때는 보통 "어? 예전엔 어려웠는데 풀리네?"
이런 스토리를 상상했겠지만 현실은 전혀 그렇지 않았다. "어? 뭐였지?"
이게 현실이다. 시간을 들이니까 그래도 예전에 공부 했던것이 생각났다. 그래도 여전히 어려웠다. 드라마틱한 이해 이런거 없었다. 너무 안일한 전략이었다. 지금 생각해보면 내가 하려던 전략은 시기상조였다. 아직 기초도 잘 안잡힘 상태에서 경험이 쌓이길 기대했던게 잘못이었다. 너무 어려운 문제도 있지만 아직 어떻게 해결해야 할지 머리속으로도 풀이가 되지 않았다.
이제는 하루에 공부하면서 한 문제 정도는 알고리즘이나 자료구조에 대한 문제를 생각하고 풀이하는 시간을 지속적으로 가져야겠다. 알고리즘 문제 하나를 하루에 접근하는 시간은 있지만 온전하게 푸는 것이 못되고 풀이하다가 그치는 수준으로 반복되다보니 공부하지 않은 것과 비슷해보였다. 내 답이 나오기 전에는 레퍼런스 코드를 보는 것을 극도로 싫어하는데 실력이 안되는데 시간도 없으면 싫어도 보는 수밖에 없다. 문제는 레퍼런스도 이해가 되지 않을때다. 처음에는 정말 당황스러웠다. 지금은 익숙해졌지만 생각해보면 당연하다. 머리로 풀지 못하면 코드로도 당연히 못푸는 것이니 말이다. 기본기가 쌓이기전까지는 우선 풀이를 구구단 외우듯이 까지는 못외우더라도 문제 유형을 보고 접근하는 방법이 생각날 수 있게 익숙해지는것이 지금의 나에게는 필요한 전략인 것 같다. 끝까지 생각해보고 나만의 답을 찾는 것도 시간이 있을 때 가능한 방법인 것 같다. 제일 좋은 방법으로 공부할 수 없지만 공부하는 시기에는 시간이 정말 중요한 자원이니 실력이 부족한 내게는 이렇게 공부해야겠다.