[프로그래머스: 데브코스] 7주차 회고

이근우·2023년 7월 23일
1

회고

목록 보기
7/7
post-thumbnail

📚 지식의 융합

컴퓨터 공학의 특성

하나, 하나의 전공 지식을 처음 학습할 때는 힘들었지만, 결국 이런 것들이 모여야 다음 스텝을 나아갈 수 있다 👍

최근 면접 준비를 진행하면서, CS 공부를 다시 하고 있다. CS 를 복습하면서 드는 생각은 컴퓨터 공학은 몇 가지 다른 분야의 지식이 쌓였을 때 새로운 스테이지가 열리는 것 같은 기분이 들었다. DB, OS, Network 등 모두 별개의 학문이라고 처음에는 생각했지만, 각 분야에 대한 지식이 어느정도 쌓이고 나면 각 학문의 공통점이 보이기 시작하면서 각 분야가 서로 유기적으로 묶여있다는 느낌을 받을 수 있다. 또한 OS 에서 제시하는 문제에 대한 해결책을 DB 에서도 동일하게 사용하는 것을 발견하며, 각 학문에 대한 인사이트를 더 깊게 가져갈 수 있었다.

처음 CS 를 공부하면 스프링과 같은 조금 더 실용적인, 실무적인 학습보다 재미가 많이 없다. IT 특성 상 기술이 빨리 바뀌고 변화하는데 굳이 옛날 기술에 많은 시간을 할애해서 배워야 하는지, 의문을 많이 품었던 것 같다. 결국 새로운 기술도 기존의 기술의 좋은 점은 계승하고, 나쁜 점은 해결하며 만들어진 기술의 연장선이다. CS 를 깊게 배운다면, 새로운 기술을 더 빨리 배울 수 있을 것이고 더 깊게 배울 수 있을 것이다.

📌 개발은 게임의 전직 시스템과 비슷하다. 내가 좋아하는 하나의 스킬만 찍는다고 해서, 다음 클래스로 전직할 수 없다. 다음 클래스로 넘어가기 위해서는 다른 스킬들이 요구하는 최소 조건도 만족해야 한다.


주니어 그 이상

시장에서 요구하는 주니어 이상의 능력은 무엇일까 🤔

나는 주니어 이상으로 나아가기 위해 필요한 능력 중 하나는 나무가 아닌 숲을 보는 능력이라고 생각한다. 백엔드 분야의 기술의 깊이를 계속해서 파는 것도 하나의 경쟁력이 될 수 있고, 이것만으로 주니어 이상으로 나아갈 수 있다고도 생각한다. 하지만 시장의 요구는 조금 다르다고 생각한다. 정확하게 말하면 이것은 과다하다 라고 말할 수 있을 것 같다. 우리 시장에서 하나의 기술에 대한 엄청 깊은 기술적 이해를 가진 사람을 소화할 수 있는 기업이 몇이나 될까. 대부분은 어느정도의 기술적 깊이면 충분히 주니어 이상의 능력을 할 수 있는 환경이라고 생각한다.

나무가 아닌 숲을 본다는 것은 시스템을 전반적으로 보는 것을 의미한다. 여러가지 기술이 융합되었을 때 발생할 수 있는 영향들과 현재의 문제를 기술 하나하나의 디테일로 해결하기 보다, 시스템 전반적인 구조와 기술의 조합으로 문제를 해결할 수 있는 능력이 주니어 이상의 레벨에서 요구하는 능력이라고 생각한다. 결국 이렇게 되기 위해서는 새로운 분야에 대한 학습을 주저하지 않아야 된다. 설령 자신이 백엔드 개발자라도 리액트를 공부하는 것을 시간아깝다고 생각할 필요가 없다는 것이다. 이번에 Togg 라는 프로젝트를 진행하면서, 처음으로 리액트로 프론트를 구현했다. 이 과정에서 처음에는 그냥 이 시간에 백엔드를 더 고도화하는게 더 좋지 않을까 라고 많이 생각했지만, 프론트를 구현한 경험이 백엔드 경험과 융합되어 새로운 시야와 관점을 가져다주는 것을 알 수 있었다.

📌 커리어를 시작하고 나서도, 내가 하고 싶은 일만 할 수 없을 것이다. 결국 개발자는 프로그래밍으로 문제를 해결하는 사람이다. 프로그래밍의 범위는 백엔드, 프론트엔드, 데브옵스 등으로 한정되지 않는다.


📝 피드백

Togg

학자형 보다는 야생형 ❗️

이번주는 대부분 Togg 라는 프로젝트를 구현하고 학습하는 것에 많은 시간을 보냈다. 이 경험으로 알 수 있었던 것은 개발 공부는 학자형이 아닌 야생형으로 하는 것이 더 효율적이라는 점이다. 영한님 강의를 통해 이런 말을 처음 알 수 있었다. 이후 영한님의 말씀대로 커리를 진행했지만, 이것은 결국 야생형이 아니고 야생형을 위한 학자형 공부 방식이었던 것 같다. 정말 새로운 어떤 주제를 누구의 도움도 없이 혼자의 힘으로 구현할려고 노력하고, 부족한 점을 느낀 후 그 부분을 채우기 위해 이론적 공부를 하는 것이 진짜 야생형 공부 방식인 것 같다.

결국 개발자가 이론적 지식을 학습하는 이유는 현실의 다양한 문제의 해결방법으로 적용하기 위해서이다. 결국 이 과정에서 우리가 키워야할 능력은 어떤 문제에 어떤 해결책을 적용할지 판단할 수 있는 능력이다. 이론적 지식을 평가하는 5지선다 시험은 만점을 받지만, 실무에서 마주한 문제에 대해 이론적 지식을 기반으로 적절한 해결책을 낼 수 없다면 이론적 지식을 학습할 이유가 있을까. 이런 능력을 키워줄 수 있는 효과적인 학습 방법이 야생형 공부 방식인 것 같다. 앞으로 어떤 이론 지식을 깊게 공부하기 위해서는 학습을 위한 다양한 토이 프로젝트를 진행하고, 이후 이론적 공부를 하는 방식으로 학습을 진행하려고 한다.

📌 개발자는 시간적 제약에서 비교적 자유롭게 연구를 하는 연구직이 아니다. 개발자는 제한된 시간에 최선의 해결책을 내야한다.

profile
Backend Developer

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

좋은 글이네요. 공유해주셔서 감사합니다.

답글 달기