💡2024 목표 :
→ lv.3 (주니어) 에서 lv4.(미드레벨(중니어)) 로 도약하자!
- 중급개발자? 가 뭘까
- 지금 나와 중급개발자의 차이는 뭘까?
- 중급개발자가 되기 위한 구체적인 액션플랜은 어떻게 될까?
1. What’s “중급개발자”?
[1] 지식
주니어에서 벗어나는 지식들인 디자인 패턴, 아키텍처, 테스트 자동화, 성능, 보안, 빌드/배포 등은 시니어의 가치를 높여주는 지식입니다. 역으로 주니어는 기본적인 코딩 실력도 중요하지만 위와 같은 지식들을 쌓아가면서 시니어로 넘어가는 과정을 겪어야 합니다.
[2] 코딩
코드는 다른 개발자가 보더라도 이해하기 쉽고 빠르게 수정할 수 있도록 작성해야 합니다. 즉, 사람이 이해하기 어려운 코드를 작성하는 것은 코딩 실력이 낮다고 이야기할 수 있습니다.
“어떤 바보라도 컴퓨터가 이해할 수 있는 코드를 작성할 수 있습니다.
훌륭한 프로그래머는 인간이 이해할 수 있는 코드를 작성합니다.
By. Martin Fowler”
코드를 복잡하고 어렵게, 그리고 불필요한 문법을 사용하는 사람을 주니어 개발자라고 볼 수 있습니다. 누가 와서 보더라도 “왜 이렇게 작성했지?” 란 생각이 들면 잘못된 코드입니다.
중니어는 시니어와 주니어 사이에 있기 때문에 명확하게 정의하기 어렵습니다. 주니어에서 벗어나 코드 스타일을 확립하고, 일관성 있는 코드를 작성하고, 예측 가능한 코드를 작성하고 있는 과정이라 시니어에 가깝다고 할 수는 있습니다. 또한 경험이 어느 정도 있어서, 문제 해결 능력이 쌓이고 있으며, 추가적인 기능 개발을 할 때 시니어처럼 일관성 있고 성능 좋은 코드를 작성하고자 노력합니다.
시니어 개발자의 가장 큰 특징은 KISS 원칙을 잘 따른다는 것입니다.
Keep it simple, stupid.
직관적인 코드, 간단한 코드로 문제를 해결한다면 매우 생산성이 좋아집니다.
개발자는 문제를 해결하는 해결사입니다.
그걸 빠르고 간단하게 한다면 좋은 개발자라고 합니다.
프로그래머는 코딩하는 사람이 아닙니다.
[3] 질문과 태도
미드레벨 개발자는 매우 복잡한 작업을 할당받지 않는 한 올바른 질문을 할 줄 알아야 합니다. 특히 자신이 맡고 있는 일에 대해서는 확실하게 알아야 합니다. 그것은 주니어와 미드레벨을 가르는 매우 중요한 기준입니다. 그래서 자신이 처리하는 일에 대해서 깊이가 있는 개발자를 미드레벨 개발자라고 이야기합니다.
시니어 개발자는 더 쉬운 코드를 작성하고, 항상 다른 사람들을 위해 생각하고 행동합니다. 어떤 질문을 하고 그 질문에 대해 조치를 취하는 법을 알고 있습니다. 풍부한 경험을 가진 시니어는 개발자만이 모든 문제 상황에서 문제를 해결할 수 있다는 것을 알고 있습니다. 할 수 없다가 아니라 이런이런 이유로 무엇이 필요하다. 이런 식으로 협의를 진행합니다. 그것을 모르는 개발자는 시니어 개발자라 할 수 없습니다.
개발 스킬을 올리고, 경험을 쌓아 문제 해결 능력을 올려봅시다. 어려운 문제에 도전하고 해결하면 그 과정과 결과가 전부 자신의 능력으로 치환됩니다. 새로운 기술을 거부하지 말고 하나씩 마스터하면서 멋진 시니어 개발자가 되길 바랍니다.
출처: (링크)
3. How to be “중급개발자”?
주니어 → 미드레벨
주니어 개발자는 스스로가 경험이 없다는 것을 인정해야 합니다. 즉, 반복해 경험해야 합니다. 이렇게 하면 그 과정에서 나오는 문제 발생, 의견 충돌, 커뮤니케이션 문제에 대해 해결하는 과정을 배울 수 있습니다. 특히, 시니어급과 함께 한다면 시니어가 어떻게 문제 해결하는 꼭 봐야 합니다. 그걸 옆에서 듣고 습득하며 단계를 올려야 합니다.
그다음 코드를 간단한 게 작성하는 방법을 배웁니다. 코드의 일부분을 보면서 다음에 작성할 사람에 대해 생각해봅시다. 그러면 이다음에 코드를 보고 추가 작업을 할 때 어떤 코드가 이해하기 쉬운지, 확장하기 좋은지를 생각할 수 있습니다.
마지막으로 모범 사례 코드를 많이 봐야 합니다. 특히 아키텍처, 성능, 보안 등을 자세히 배워야 합니다. 아키텍처는 스타가 많은 Github Repository를 확인해봅니다. 그중에서 이해하기 쉬운 프로젝트를 먼저 보면서 왜 이렇게 아키텍처를 짰는지 이해해 봅니다. 전혀 모르겠으면 직접 물어보는 것도 좋습니다. 성능 측정 툴을 이용해서 성능이 좋은 프로젝트와 자신이 짠 코드와 비교해봅시다. 이 과정은 성장에 매우 중요한 과정입니다. 많이 움직이고 연습한 만큼 성장합니다.
(출처: 요즘 IT)
2. What’s the difference between me and “중급개발자”?
2-1. 정해진 스펙 구현 그 이상을 보기
출처: 프로그래머스 기술블로그
3. How to be “중급개발자”?
주니어 → 미드레벨
주니어 개발자는 스스로가 경험이 없다는 것을 인정해야 합니다. 즉, 반복해 경험해야 합니다. 이렇게 하면 그 과정에서 나오는 문제 발생, 의견 충돌, 커뮤니케이션 문제에 대해 해결하는 과정을 배울 수 있습니다. 특히, 시니어급과 함께 한다면 시니어가 어떻게 문제 해결하는 꼭 봐야 합니다. 그걸 옆에서 듣고 습득하며 단계를 올려야 합니다.
그다음 코드를 간단한 게 작성하는 방법을 배웁니다. 코드의 일부분을 보면서 다음에 작성할 사람에 대해 생각해봅시다. 그러면 이다음에 코드를 보고 추가 작업을 할 때 어떤 코드가 이해하기 쉬운지, 확장하기 좋은지를 생각할 수 있습니다.
마지막으로 모범 사례 코드를 많이 봐야 합니다. 특히 아키텍처, 성능, 보안 등을 자세히 배워야 합니다. 아키텍처는 스타가 많은 Github Repository를 확인해봅니다. 그중에서 이해하기 쉬운 프로젝트를 먼저 보면서 왜 이렇게 아키텍처를 짰는지 이해해 봅니다. 전혀 모르겠으면 직접 물어보는 것도 좋습니다. 성능 측정 툴을 이용해서 성능이 좋은 프로젝트와 자신이 짠 코드와 비교해봅시다. 이 과정은 성장에 매우 중요한 과정입니다. 많이 움직이고 연습한 만큼 성장합니다.
'개발자로서의 자기계발' 카테고리의 다른 글
나는 왜 테스트를 하고싶은가? (0) | 2024.02.12 |
---|---|
개발공부와 지식 습득에 대하여 (1) | 2024.02.10 |
20230209 토끼상담 내용 정리 (1) | 2024.02.09 |
댓글