안녕하세요 K입니다. 어느덧 올해도 상반기가 한 달밖에 남지 않았는데요, 잘 보내셨나요?
저는 이번 상반기에는 저에게 부족한 부분(CS, 알고리즘 등)을 공부하면서 보냈습니다. 특히 작년 저에게 CS가 정말 필요하다고 느껴서 올해 초에는 CS 공부에만 전념했습니다.
이런 결정을 하게 된 계기와 어떤 식으로 공부했는지에 대해 남겨보려고 합니다. (회고 특성상 편한 말투로 써보았습니다.)
배경
- 작년에 3개의 어플을 출시하면서 어느 정도 '그럴 듯하게 보이는' 프로덕트는 만드는 정도까지는 할 수 있게 되었음. 왜냐하면, 약간의 구글링 실력과 swift 문법에 대한 기초적인 이해만 있으면 얼마든지 코드 가져다 써서 구현할 수 있으니까.
- 하지만 이 정도는 누구나 다 할 수 있는 일이라는 생각이 들었고, 이런 식으로 작업해 나간다면 성장이 없을 것 같았음.
- '이렇게 하면 안되는데'라는 생각이 머리를 떠나지 않았고, 좋은 개발자는 어떤 개발자인지 고민하였음.
- 개발자는 developer임. 즉, '발전'시키는 게 이 직업의 역할임. 좋은 개발자는 '발전'을 잘 시킬 수 있어야 함.
- 코드를 발전시키기 위해서는 좋은 코드를 써야 하고, 좋은 코드는 메모리∙속도 면에서 효율적이어야 하고, 유지보수도 용이해야 하며, 안정적이면서 확장성이 좋아야 함.
- 좋은 코드를 쓰기 위해 팀원들과 코드 리뷰도 하고, 스스로 작업하면서 좋은 코드를 작성하기 위해 공부하기도 했음.
- 코드를 깊게 이해하려고 파고들면 그 끝엔 어김없이 메모리∙쓰레드∙속도 등의 CS 개념이 있었음(당연한 말이겠지만).
- 하지만, 난 CS 지식이 약했기 때문에 이해하는 데 한계가 있었음. 모르는 CS 지식이 나올 때마다 검색하면서 주먹구구식으로 이해하려고 했지만, 깊은 이해가 동반되지 않았기 때문에 순식간에 휘발되기 십상이었음.
- 결국 난 성장의 속도가 더뎌지고 있었음. 기초가 부족하다보니 성장의 한계를 맞닥뜨렸고, 이 문제를 해결하기 위해선 (좋은 개발자로 한 단계 더 성장하기 위해서라면) 내게 부족한 CS 지식을 채우는 것이 최우선 일이라고 느꼈음.
행동
- 다른 할 일이 많았지만(자소서 작성, 프로젝트 유지 보수 등), 올해 1분기는 CS 공부에 할애하는 것으로 계획했음.
- 내 상황에 가장 알맞은 공부 수단은 인터넷 강의였음. 찾아보니 다양한 강의(KOCW, 인프런 등)가 있었고, 난 인프런 강의 중 나와 스타일이 맞는 강의를 골랐음.
- 인프런의 강의로 고른 이유는 효율적으로 공부할 수 있겠다고 생각했기 때문임. 비교적 짧은 시간 동안 개발자가 실무에서 필요할 개념들을 정리할 수 있었고, 공부하면서 부족한 개념들은 KOCW의 전공 강의 또는 서적을 이용해서 공부하기로 계획했음.

- 인프런의 장점은 빠른 QnA였음. 처음 공부하는 내용이다 보니 곧바로 모르는 내용을 질문할 수 있었음. 내 공부 특성상 질문을 많이 하는 스타일이라서 더욱 나한테 적절했음.



- 또한, 아무래도 장기간 인터넷 강의를 듣다 보면 공부 텐션이 떨어질까봐 매주 회고하는 시간을 가지고 정리했음. 어떤 요인이 내 공부에 좋은 영향을 미칠지, 안 좋은 영향을 미칠지 분석하였고 끝까지 효율성을 가져갈 수 있었음



- 효과적인 학습을 위해서 들은 내용을 나만의 언어로 스스로 정리하고, 자료구조와 알고리즘 같은 경우는 Swift로 구현해보면서 공부하였음. 모든 내용은 노션에 정리하였음.



- 지금은 이 내용을 블로그에 옮기면서 다시 한 번 복습하고 있음.
결론
- 필요한 모든 부분을 채웠다고는 말 할 수 없지만, 최우선적으로 보이는 빈틈을 어느 정도 메꿀 수 있었음.
- 아직 좋은 코드를 작성하기에는 힘들긴 하지만, 좋은 코드가 눈에 보이는 정도까지는 된 것 같음.
- 어떤 언어이든 그 토대는 CS인 것을 다시 한번 느꼈음.
- CS는 한 번에 끝낼 수 없다고 생각하고, 그렇게 생각하면 안 된다고 생각함. 앞으로 개발하면서도 이 부분을 자주 들여다보면서 기초를 계속 탄탄히 다져야겠다는 생각이 들었음.
- 성장에는 탄탄한 기초와 끊임없는 배움이 동반되어야 함을 배울 수 있었음.
'Retrospective' 카테고리의 다른 글
| 블로그와 Stack Overflow만 찾던 내가 공식문서와 친해진 계기 (0) | 2023.05.04 |
|---|---|
| 결국 개발도 ‘사람’이 하는 일이었다 (0) | 2023.05.04 |
| Apple 디자인 챌린지 참석 후기 : UX/UI 는 곧 '길 찾기'다! (0) | 2023.03.07 |
| 프라이머 21기 데모데이 참석 후기 (0) | 2023.03.02 |
| 독립서점 플랫폼 어플 '킨디' 제작 일지 (2) - 팀 샌들즈 어셈블 (0) | 2022.12.20 |