내가 한 것들이 효과가 없는 것만 같은건 사실이지만 그래도 급해지지 말자.

오늘 나의 고민은 이렇다.

  • 지금 레벨을 올릴 수 있는 방법을 선택할 것인지,
  • 아니면 앞으로 확실히 좋아하고 레벨을 꾸준히 올릴 수 있는 방법을 선택할 것인지.

알고리즘 강의를 듣고 3주가량 지나면서, 나는 하루에 기본난이도의 1, 2문제 외에 더 이상 풀지 않았고, 아래의 내용들에 대해 확실히 최소한의 구성, 성격, 의도, 기본 조건등을 파악하고 시작하고 있다.

ADT와 인터페이스
stack, queue array based(array, dynamic array, sorted array, set) poiter based.
opertation complexity등이 어떻게 자료구조 구성방식, 순회방식에 따라 결정되는지.
nlogn(binary tree based), logn(binary search base), (n), (1).
rooted tree based
  • priority queue, binary heap, binary tree, binary search tree, AVL tree.
  • traversal orders dfs, bfs.
Sorting
insertion sort, quicksort.

terminology를 정리해온 덕에 면접에서 본질적인 질문을 묻게 되면 이런 이해도를 바탕으로 대답할 수 있지 않을까 싶은 것도 있고,

이러한 고집의 가장 큰 문제이자 원인은 내가 기억력이 안 좋아져 가고 있다. 체득보다 직관으로 파악 가능한 이론과 실험에 100%를 두고 코드를 작성하는 수련을 익혀두어, 흔히 어설플 때 해왔던 일련의 패턴을 떠올리는 것 조차 하지않고 인습이나 관습같은 영향 완전히 cutoff한 상태로 지속했을때 내가 스스로의 발전 방식을 파악하고 개선해나가면서 "의미있는 상태가 되었습니다", 라고 스스로 인식하고 만족할 수 있을 것 같다.

훈련이 지속되고 의식도 전환되어야 내가 개발자로서 살고 싶어하는 이유에 대해서 말할 수 있을 것 같아서 어떻게 살기를 원하는 건지 어떤 모습으로 지내고 싶은건지 그 부분이 뭔가 희망이랑 행동이랑 어긋나는 부분이 생기면 기본적으로 가치관을 말하는 것이 어려워지는데, 이 부분에서 완전히 전환을 이뤄내고 싶다.

___

지금 표면상으로 고민하는 문제는 이제 조금 충족된 것 같은데, 어떤 하루를 보내는 게 2달 뒤의 나에게 더 좋은 일일까 싶은 것이다. 사실 지금은 뭔가 아래 내용을 하고 있는데도, 그렇게 충실하게 시간을 보낸 것 같지않은 느낌이 있다.

  • 매일 1시간 정도는 독서에 시간을 쓰고 싶고,

  • 여전히 아침엔 수학공부로 시작하고 싶고,

  • 알고리즘 문제는 2달 뒤까지도 하루에 한 문제 꾸준히 해결하는 습관을 갖고 싶다.

    • 지금 하루에 한 문제는 하고 있다. 다만 나중에는 이론을 볼 시간이 없을 것 같아서 나는 이론과 손코딩으로 거의 충당하고 있는데.

그리고 무엇보다 내가 직접 자료구조나 알고리즘을 직접 작성하고 있는 이유는, 가장 좋아하는 언어로 언제든 번역이 가능한 상태를 유지하고 싶어서가 가장 크다.

원하는 개발자로서의 방향성 자체가 기본적으로 c프로그래밍에 있고, 그래도 사람인지라, 다른 분들이 빠르게 문제에 익숙해져 가는데 나는 아직 허우적대는 느낌이라 조금 스스로에게 아쉬움이나 부끄러운 감정 같은 것도 생기기 마련이다.

미안한 기분이 들지 않도록, 나를 위하게 될 일이 어떤 것일지 정말 잘 고민해서 행동해야겠다.
하고싶은 것, 되고 싶은 것들에 필요할 거라고 생각되는 장치들에 대해서 상상하는 것으로도 두근거리는 그런 계획을 세우는 시간을 갖자.

links

social