어제 동아리 선배와 커피챗을 했다.
그러다 학생 개발자의 성장을 주제로 이야기하게 되었는데, 그 내용을 글로 다시 적어보려고 한다.
내가 생각하는 좋은 개발자란?
지금 내가 생각하는 좋은 개발자는 프로덕트를 개발할 수 있으면서 어떻게 개발하였는 지 설명할 수 있는 개발자다.
물론 이를 아는 것은, 개발자가 사용하는 모든 도구에 대한 대략적인 이론, 작동원리 등을 이해하고 있어야만 가능하다.
그래서 대기업에서는 컴퓨터 이론을 학습한 컴퓨터 관련 전공자를 선호하는 것이라고 생각한다. 때문에 개발자로서 먹고살려면 본인이 사용하는 프레임워크의 함수가 뭐가 있는지 보다. 도구 그 자체를 이해하고 있을 필요가 있다.
(우리가 CS를 배워야하는 이유)
커뮤니케이션이나 소프트스킬같은것도 물론 중요하지만 그런 부분까지 이번 글에서 이야기하면 너무 길어지기 때문에 기술적인 부분을 어떻게 채워갈지만 이야기해보자..
그래서 어떻게 하면 좋은 개발자가 될 수 있을까?
위와 같은 이유로 우리는 CS를 학습해야 한다. (내가 말하는 CS는 컴퓨터 관련 이론을 전부 포함하는 넓은 의미다.)
지금 나는 개발바닥 2사로에서 진행되는 CS 면접 스터디에 참가하고 있다. 목적은 스피치보다 CS자체를 학습하기 위해서다.
(좋은 기회를 찾아서 잡고 거기서 많이 뚜둘겨 맞으면서 배우자!)
CS를 학습하다 보면 이론을 두 케이스로 분류할 수 있다.
- 사용해 봤지만 이해가 부족했던 이론.
- 실전에서 사용해봐야만 확실하게 이해할 수 있는 이론.
다시 말하면 경험해 본 것과 경험해보지 않을 것들인데..
여기서 후자에서 경험하기 어려운 것들은 어떻게 채울 것인지를 고민해봐야 한다.
경험하기 어려운 것들의 예로 들면: 대규모 트래픽 처리 경험이다.
백엔드 개발자의 존재 목적이 대규모 트래픽을 잘 처리하려고 하는 것이다. 그래서 이론들이 전부 어떻게 하면
- DB JOIN을 적게 하고 데이터를 가져오지?(DB 정규화&비정규화)
- 여러 글을 가져올 때 어떻게 하면 필요한 양만 딱 가져올 수 있을까?(페이지네이션)
- 정적 웹을 WAS에서 관리할 필요가 있을까(Web & WAS 분리)
성능 향상을 할 수 있을 지다.
뭐.. 이 부분도 서버 성능 테스트등을 통해서 어느 정도 경험할 수 있는 것들이다.
말이 길어졌지만, 그냥 필요한 거 스스로 어떻게 채울지를 고민하고 실행에 옮기면 해결된다.
확신을 가지고 개발하자
위에서 주절거렸던 내용을 요약하면 이렇다.
내가 뭘 모르는지 고민해 보자 → 고민해서 나온 모르는 것들을 적고 하나씩 채워보자. → 좋은 개발자 완성
(기승전 파인만 알고리즘..)
이렇게 완성된 좋은 개발자는 타인이 질문했을 때 본인의 의도를 확실히 설명할 수 있게 된다!
이제 실행에 옮겨보자..
'생각 정리' 카테고리의 다른 글
5년차 네이버 면접관이 말하는 함께하고 싶은 개발자 (0) | 2024.03.14 |
---|---|
개발자는 도적질을 해야한다. (0) | 2023.04.19 |
개발자에게 글쓰기가 필요한 역량일까? (0) | 2023.03.17 |
온라인으로 개발 공부하기 (0) | 2023.01.18 |
개발 블로그를 잘 이용하는 방법 (0) | 2022.09.07 |
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com