저는 뭔가에 잘 꽂혀요. 코딩을 접한 계기는 어렸을 적에 웹사이트를 갖고 싶어서였어요. 저만의 웹사이트를 만들어보면서 개발이란 게 뭔지 처음 접했던 것 같아요. 한 번 뭔가에 꽂히면 몰입해서 공부하는 성격인데, 지금 가장 꽂혀있는 건 운영체제(리눅스 커널)예요. 좀 막막하긴 한데, 처음 입문할 때 디바이스 드라이버를 많이 개발한다고 하더라고요. 현재는 그쪽 개발에 관련된 책을 읽고 있어요.
저는 공부할 때 책을 많이 활용하는 편이에요. 하지만 공부할 내용이 책에도 없는 게 나오는 시점이 되면 매뉴얼을 보게 되더라고요. 42는 그런 면에서 좋은 것 같아요. 매뉴얼을 왜 봐야 하는지 알려주는 것 같아서. 책도 그전까진 좋아요. 저자가 선생님 같고, 혼자서 내적 친밀감도 생기고(웃음). 공통과정이라면 시스템 프로그래밍 쪽 책을 보는 걸 추천해요. 당장 생각 나는 건 컴퓨터 시스템(랜달 E. 브라이언트 외 지음)과 리눅스 시스템 프로그래밍 (로버트 러브 지음)예요. 후자는 읽어보진 않았지만 구성이 좋아 보였어요.
요즘 들어서 블로그 에도 공부한 내용을 기록하고 있어요. 정리를 해놓으면 나중에 다시 참고할 수 있어서 좋아요. 실은 제 방도 정리 잘 못하는데(웃음) 최소한의 설명이라도 글로 남기려고 해요. 글을 처음 보는 사람도 이해할 수 있어야 하니까, 밑바닥부터 조금씩 정리하려고 노력하고 있습니다. 혼자 공부하는 것보다 글을 쓰는 게 좀 더 공부한 내용에 대해서 생각하게 되는 것 같아요. 그게 저는 도움이 많이 됐어요. 왜냐하면 이해했다고 생각했는데 정리할 때 안 써질 때가 있거든요. 그럼 이해를 못 한 거죠.
때론 슬럼프가 오기도 해요. 주로 구현을 하다 막혀서 잘 안될 때, 애초에 설계가 잘못됐는데 어떻게 개선해야 할지 모르겠거나, 감도 안 잡히는 원인 모를 버그들이 생길 때 그래요. 진전이 없다는, 눈앞이 깜깜한 느낌에 빠지곤 하고요. 그럴 땐 어려운 걸 내려놓고 쉬운 것부터 먼저 했어요. 조금이라도 진전하고 있다는 걸 느끼는 게 슬럼프 극복에 정말 중요한 부분이라고 생각해요.
저는 42에 와서 삽질을 엄청 많이 했어요. 삽질이 나쁘다는 게 아니라, 오히려 많이 해볼수록 요령이 느는 것 같아요. 조심스럽긴 한데, 과제할 때 너무 남이 만들어 놓은 걸 따라가지 않았으면 좋겠어요. 공부하면 할수록 잘 정리된 지식이 별로 없거든요. 쉬운 것부터 스스로 고민하는 연습을 해야 나중에 좌절을 안 하지 않을까 싶어요. 시간이 지날수록 42서울이 한국화되어가고 있는 것 같다는 생각이 들곤 해요. 과제에 조금은 여유를 두고 고민하는 시간을 가지면 더 좋을 것 같아요. 그리고 문제를 고민하다 헷갈릴 땐, 답을 바로 아는 것보다 문제 자체를 다시 정의하고 고민해 보는 게 도움이 되는 것 같아요. 그래서 누군가 저한테 질문을 하면 답을 바로 알려주고 고민할 기회를 뺏기보단, 적당한 힌트를 주거나 답까지 도달하기의 과정을 공유하면서 이야기하는 것을 좋아해요.
42 집현전 도서대출 프로그램 제작에 참여했었고, 피씨너의 데이터를 수집해서 분석도 했었어요. 최근에 트랜센던스를 하면서 느끼는 점은, 그전까지는 프로젝트를 진행하는 법을 잘 몰랐다는 거예요. 그전에는 회의, 설계 단계에서 시간을 많이 쓴 적이 없었고 컨벤션의 중요성도 몰랐었는데, 이젠 커밋 로그를 잘 볼 수 있게 만드는 것이나 문서화를 하는 것도 중요하다는 걸 느끼고 있어요. 협업하는 법을 조금씩 배워가고 있는 것 같아요.
공부를 하다 보면 조급함을 느끼곤 해요. 그럴 땐 저에게 '괜찮다, 괜찮다' 말을 해줘요. 답답함도 많이 느끼는데 경험을 되돌아보면 조급함으로 해결할 수 있었던 건 없던 것 같더라고요. 저 같은 경우에는 조급한 이유가, 공부도 계단 오르듯 차근차근 올라갈 필요가 있는데, 처음 공부할 땐 그걸 잘 몰라서 그런 거라고 생각해요. 그래서 최근에는 블로그 같은 곳을 통해 알게 된 분이나 멘토님 등, 여기저기 물어보고 있어요(웃음). 물어보면서 느낀 점은 제가 스스로 궁금한 게 뭔지 모르면 대답해 줄 사람이 없다는 거예요. 물어보다 보니 내가 지금 물어보고 있는 게 뭔지 싶을 때가 있더라고요. 좀 더 생각을 정리하고 물어봐야겠어요.
여담이지만 곧 군대에 갑니다.. (웃음) 그래서 개발 환경을 세팅하는 중이에요. 웹 IDE를 써봤다가 불편했던 기억이 있어서 클라우드를 하나 사서 거기서 개발할까 해요. 군대에서 뭘 해볼지 생각해 봤는데 우선은 운영체제를 계속 팔 예정입니다. 그 외에 당장 필요성을 느끼는 건 영어고, 시간도 많으니까 C 표준을 한 번 공부해보고 싶어요. 그리고 아직 잘 모르지만 오픈소스에 기여하고 싶어요. 거창하게 막 세상에 도움 된다, 이런 얘기를 하고 싶은 건 아니에요. 사소한 코드라도 제가 짠 코드에 누가 관심을 가져주는 게 되게 좋더라고요. 짜면서 실수도 많이 하는데 피드백을 받을 수 있고, 하다가 가끔은 제가 제안한 게 받아들여지면 기분이 좋거든요. 리눅스 커뮤니티에서도 (오픈소스가) 팀 스포츠라고 표현을 하더라고요. 팀 스포츠는 각자 자기의 역할이 있고 그 역할을 책임지면서 게임이 돌아가는 거잖아요. 그게 되게 개발자로서 동기부여가 진짜 많이 되는 것 같아요. 재밌어 보여요.
yeonwlee, myungkim
jwon