3687
2015-09-16 13:12:15
0
전 짜깁기를 많이 해보는것도 능력 향상에 도움이 된다고 생각하는데..
왜냐하면 제 입장에서는 똑같은 결과물을 만들기 위해서
1. 내 머릿속에서 처음부터 끝까지 구상해서 결과를 만들어낸다
2. 남이 짜놓은걸 완전히 이해하고 그걸 내맘대로 주물러서 변형한다.
이 두가지중에 1번이 더 쉽거든요.
남의 코드 이해하고 만지려고 하면.. 대충 돌아가는 방식정도는 이해가 금방 되는데,
실제로 손을 대기 시작하면 진짜 밑도끝도없이 손을 댈게 계속 튀어나와서 계속 들여다보다가
결국은 코드를 100% 다 사전 씹어먹듯이 훑은 수준이 될때가 되서야 끝나기 때문에..
차라리 첨부터 내 코드로 짜는게 더 쉬운 경우가 많았어요.
글쓴분도 짜깁기만 해봤다고 하시지만, 사실 그 과정에서 스스로 처음부터 만들었을때는 배우지 못했을 다른것들을 많이 배우셨을겁니다.
예를 들자면 저는 아주아주 예전에 처음 했던 프로젝트에서 전임자가 FSM을 정의해서 그 정의한걸 그대로 코드로 옮겨놓은걸 기반으로 짜여진걸 보면서 느낀게 많거든요. 이론적으로야 이미 배웠던거지만, 실제로 어떤걸 짜라고 한다면 과연 내가 그 순간에 학교에서 배운걸 저렇게 써먹을 생각을 할수 있었을까 싶었죠.
또 좀 유명한 오픈소스들 같은거도 건드려보다보면 정말 배우는게 많아요.
같은 기능을 만들어도 내공이 많이 쌓인 사람들의 코드다보니 내가 평소 만들던 방식과는 다른것들을 많이 배우죠.
물론 스스로 구상해서 짜보는것도 필요합니다. 남의 코드를 가져다 만져보는것과는 또다른걸 많이 배우죠.
특히 어떤 목표가 주어졌을때, 그걸 위해 콤포넌트들을 정의하고 자료구조와 인터페이스를 며칠씩 고민해보는건
남의 코드를 만지는걸로는 절대로 경험할수 없는 일이죠.
아무튼 글쓴분이 지금까지 해오던 방식이 잘못된건 아니란 말을 드리고 싶습니다.
어차피 이런식으로도 해보고 저런식으로도 해보면서 계속 배우면 되는거예요.
이제까지 남의 코드를 보면서 배운게 많으실테니, 앞으로는 스스로 만들면서도 여러가지 많이 배우시면 되는거죠.