20210812 잡담

1 minute read

개인적으로 원래 공부를 할 때는 을 기준으로 공부하길 좋아한다.

  • 시작과 끝이 있고
  • 목차로 전체를 일목요연하게 볼 수 있고
  • 글의 배치에 따라 저자의 지식과 철학이 녹아 있어서 그걸 추측하고 엿보는 것도 재밌고
  • 돈으로 비교적 손쉽게 누군가의 지식과 경험을 살 수 있다는 점
  • 그리고 여러 번 보면 의미가 달라진다는 것

이러한 이유로 뭔가를 배울 때는 레퍼런스 읽거나 책을 보면서 어느 정도 지식을 쌓은 후에 실습을 하며 배운다.

하지만 이런 공부 방법이 개발에도 맞을까?

  • 시간은 없는데 결국 책을 다 읽어야 하고,
  • 전체를 숙지하려면 여러번 읽어야 하고
  • 결국 저자의 지식과 경험, 즉 남의 지식과 경험이라 별도의 체화 과정이 필요한 점
  • 문자 읽는 시간 + 정리 시간 + 실습 시간은 시간을 너무 많이 잡아먹는다는 점

이러한 이유로 꾸준히 공부를 하려다가도 중간에 잠깐 현타가 오곤 한다. 특히 정리할 때 한 페이지에 한 시간을 정리해도 관련된 걸 다 조사해서 정리하며 읽는다. 언젠가는 그것들이 반드시라고 해도 과언이 아닐 정도로, 컨텍스트가 되어 다른 곳에서 메타 지식으로 쓰일 것을 알기 때문이다.

MVCC가 DB의 동시성 제어에 쓰이지만, 가령 웹 애플리케이션에서 요청에 대한 동시성 제어가 필요할 경우 참고하거나 배운 걸 변형해서 적용하게 된다. PostgreSQL에서 Shared Buffer에서 해시 테이블을 관리하는 것을 보고 자바의 메모리상 캐시 위한 공유 버퍼를 개발할 수도 있겠다.

하지만 시간이 너무 오래 걸린다. 그리고 더 큰 문제는 쓰일지 안 쓰일지 모른다. 쓸지 안 쓸지 모르는 기반 지식을 배우는 것은 가치가 있을까? 마치 고등학교 때 수학 배우는 느낌이다. 중요한 건 알겠는데 배워서 어찌할 바를 모르겠는.

우연찮게 이 포트폴리오를 봤는데, 좀 더 그런 생각이 든다. 개발은 결국 뭐라도 만드는 게 배우는 거 아닐까?라는

하지만 동시에 더 기초적이고 더 로우한 부분의 지식을 배워서 컴퓨팅 사고능력이나 공학적 사고력을 키우고 싶다.

둘을 합쳐서 해보려고 몇 번 시도해 봤지만, 능력의 부족 때문에 뭔가 이도저도 아니게 된 경우가 많다.

연구하는 사람은 아니니 책에 매몰되면 안 되긴 할 거 같지만, 그래도 시작했으니 끝은 봐야지.

그래도 뭔가, 더 실효성 있는 개발 & 공부를 해야 할 거 같은데, 당장 떠오르는 건 시각화다. 내가 배우는 걸 코드로 그릴 수 있다면, 어느 정도 합의점을 찾을 수 있지 않을까? 물론 예전에 js로 시도해봤다가 결국 돔 조작에만 시간 대부분을 쏟아서 이게 책 내용을 배우고 적용하는 건가? 싶어서 그만 뒀지만…

고민이다 고민.

Updated: