-
[WEEK05] 시간과 에너지SW Jungle/Life in Jungle 2022. 10. 23. 03:06
다 하면 좋지!
근데...
시간과 에너지.
그거는 정해져 있는 거거든.티타임에서 들었던 시간과 에너지라는 말이, 나의 뇌리에 너무도 깊게 박혔다.
정글에서의 시간과 에너지
SW사관학교 정글의 커리큘럼은 빡빡하다.
전산학 배경지식이 없는 비전공자를 대상으로 하는 정글 커리큘럼은 첫 4주간 기본~중급 알고리즘을 익히고, 이후 3주간 Red-Black Tree, malloc lab, 웹 프록시 서버를 C언어로 구현하며, 다음 6주간 PintOS를 만드는 과정으로 이루어져 있다. 마지막 5주 동안에는 현업에서 쓰는 프레임워크와 언어를
알아서습득하여 고객이 있는 서비스를 만들게 된다.사실 충분한 열의가 있는 사람이라면 소화 못 할 과정들은 아니다. 정글의 입학 테스트만 봐도, 의지가 있는 사람만 뽑겠다는 의도가 보이는 시험이었다. 이곳에 들어올 정도의 의지를 가졌다면 충분히 따라갈 수 있는 커리큘럼이다.
문제는, 나의 목적 수준에 비해 5개월이란 시간이 너무도 짧다는 사실이다.
알고리즘은 마지막까지 나를 울렸다. 4주차의 Dynamic Programming 문제들은 점화식을 떠올리지 못하는 내 앞에 단단히 버티어 섰다. 나는 그럴수록 문제의 늪에 더 깊이 빠져들어가서 해답을 건져 올리는데 더 많은 시간을 투자해야 했다.
물론 고민해도 풀이법이 보이지 않는 문제는 내가 모르는 문제라는 것을 인정하고, 다른 사람들이 풀어 놓은 정답을 참고하기도 했다. 하지만 코드를 복사-붙여넣기 하는 건 알고리즘 문제 풀이가 아니지 않은가. 나는 최소한 정답 코드의 도출 과정을 온전히 나의 것으로 만들고 싶었다. 나의 머리로 코드를 짜서 풀어내고 싶었다. 하지만 나에게 주어진 시간과 에너지는 그 수준에 도달하기에는 충분치 못했다.
CSAPP (Computer System : A Programmer's Perspective) 책도 읽어야 했다. 컴퓨터 시스템을 이해하기 위한 기초 서적이면서 동시에 전공생들이 한 학기를 온전히 투자해야 하는 이 책은 꽤 흥미롭지만 완전한 이해에 많은 시간과 에너지를 요구한다. 이번에는 3장을 읽었는데, 책은 C언어를 아직 배우지 못한 나에게 C 코드를 주었고, 나는 그 코드를 gcc가 Assembly로 변환한 결과물을 해석해야 했다. 또 X86-64 CPU 레지스터의 callee saved 영역은 어떤 상황에서 Stack Frame에 push되는지 알아내야 했다.
이렇게 시스템 밑바닥을 파고 들어가며 공부하다 보니, 이쪽 분야도 깊게 파면 정말 끝이 보이지 않는다는 사실을 알게 되었다. 궁금증을 좇아 깊게 들어가다 보면, gcc가 번역한 assembly에서 unsigned char 형식의 데이터를 확장하여 레지스터에 넣을 때 movzbq가 아닌 movzbl이 사용되는 이유를 찾아보게 된다. (혹시 궁금한 사람들을 위해 알아낸 내용을 설명하자면, 32bit cpu가 쓰이던 시절 movzbl이 표준 방식으로 쓰였었고 이후 64bit cpu가 나왔을 때 movzbq보다는 movzbl로 어셈블리 코드를 만들고 cpu level에서 자동으로 나머지 영역을 채우도록 하는 것이 효율성과 호환성을 동시에 잡는 것이 아니었나... 결국 cpu 발전 과정에서 발생한 관습적 방식이라 생각된다.)
공부는 정말 재밌다. 이렇게 깊이 파고 들어가는 과정들은 더없이 즐거웠다. 다만 시간과 에너지가 충분하지 못해서, 아직 원하는 수준에 도달하지 못했는데 다른 공부할 내용이 생겨버리곤 했다.
정글 밖에서의 시간과 에너지
사실 '시간과 에너지'라는 말은 세상 이치를 관통하는 말이 아닐까. 정글 밖에서도 나는 주어진 시간과 에너지를 적절히 분배하는 것을 어려워했던 것 같다.
나는 관심사가 참 많은 사람이다. 노래도 좋아하고, 작곡도 좋아하고, 게임도 좋아하고. 컴퓨터 조립, 최신 전자기기 리뷰, 프로그래밍, 영상 기획과 촬영 그리고 편집, 사진 촬영과 편집, 아이돌 음악, 춤, 클래식, 팝, 음향, 축구, 야구, 맥주, 위스키, 사랑, 연애...
하고싶은 건 늘 많았지만 내게 주어진 시간과 에너지는 늘 부족했다. 이제까지의 내 선택을 돌이켜보면, 나는 지금 가장 하고싶은 일에 우선적으로 시간과 에너지를 투자해 왔다. 그리고 그 선택의 결과는 그리 나쁘지는 않았다. 다행히 내가 하고 싶어하는 일들이 마약이나 강도 따위의 반사회적 범죄행위는 아니었기 때문에 나는 꽤 만족할만한 인생을 살면서도 무던히 살아올 수 있었다.
하지만 늘 갈증처럼 느껴졌던 것이 있다. 나는 할 줄 아는 것은 많았지만, 어느 한 분야에 전문성은 부족했다. 누구보다도 이것만큼은 잘 한다고 자부할 수 있는 무언가가 없었다.
세상은 전문가를 우대한다. 내가 남들보다 뭔가를 잘 한다면, 그에 대한 수요가 발생하고 나는 그 능력을 팔아먹고 살 수 있다. 그게 작곡이 될 수도, 영상 촬영이 될 수도 있었지만 나는 시간과 에너지를 너무 분산투자했고 결국 어떤 분야에서도 전문가가 되지 못했다.
결국, 선택과 집중
결국 나에게 주어진 시간과 에너지는 유한하다. 나 뿐만 아니라 모두에게 그렇다. 시간은 어느 누구에게나 공평하게 주어지고, 에너지 역시 사람마다 보유한 능력치가 조금씩 다르긴 하지만 어쨌든 그 누구도 무한한 에너지를 가지고 있지는 않다.
나는 그래서 선택과 집중을 하려 한다. 전문가가 되고 싶은 분야에, 전문가로 성장하기까지 필요한 만큼의 시간과 에너지를 쏟아보려 한다. 지금은 그게 프로그래밍일 것이다. 좋은 개발자가 되기 위해서 나는 알고리즘과 CS지식, 기술 스택을 배우고 익히는 데에 집중할 것이다.
그리고 집중만으로는 시간과 에너지의 한계가 있으니 선택도 해야 한다.
모든 것을 시도하고, 모든 것을 배우면 좋다. 하지만 시간과 에너지는 유한하니까... 중요하다고 생각되는 것에 시간과 에너지를 쏟아야 한다. 그래서 시간과 에너지를 단축할 수 있는 방법이 있다면 망설이지 않고 선택해 보려 한다.
정글에 온 지 한 달이 지났다. 체감상 하루하루는 쏜살같이 지나가고 있고, 지나간 날들은 오래 전이었던 것처럼 느껴진다. 상대적으로 밀도 높은 시간을 겪고 있기 때문에 이렇게 느껴지는 것일 테다. 앞으로 남은 넉달이 어떻게 흘러갈지 아주 기대가 되면서도, 조금은 걱정이 된다.
건강 챙기고, 남은 날에 집중해보자.
적절한 선택으로... 유한한 시간과 에너지를 잘 쓰면서.
'SW Jungle > Life in Jungle' 카테고리의 다른 글
[WEEK07] 일상 : 가을과 포스팅과 건강에 관하여 (5) 2022.11.05 [WEEK02/Essay] 멀리서 보면 정글, 가까이서 봐도 정글 (2) 2022.10.03 [WEEK01] 특별한 과제 - Essay (4) 2022.09.24