Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1장 여정을 시작하며 #217

Closed
Tracked by #216
fkdl0048 opened this issue Feb 20, 2024 · 0 comments
Closed
Tracked by #216

1장 여정을 시작하며 #217

fkdl0048 opened this issue Feb 20, 2024 · 0 comments

Comments

@fkdl0048
Copy link
Owner

fkdl0048 commented Feb 20, 2024

1장 여정을 시작하며

개발자로서의 첫 출발, 앞으로 어떤 길이 펼쳐질까

이책은 앞으로 소프트웨어 엔지니어로서 경력을 쌓아나갈 견습자를 위한 책이다.

실제 회사의 입장도 신입에게 큰 기대 없이 협업이 가능한 인력을 원한다. 이후 교육을 통해 적합한 인재로 키우는 것이 목표이다.

따라서 이 책은 그 과정에서 좀 더 멀리보고, 쉽게 접근할 수 있도록 도움을 주는 책이다.

목표를 세우자

누구든 초보 엔지니어부터 시작한다. 더 나은 엔지니어로 성장하려면 몇가지 핵심 분야에 익숙해져야 한다.

  • 기술 지식: 기본적인 컴퓨터 과학의 기초 지식으로 IDE, 빌드 시스템, 디버거, 테스트 프레임워크, CI/CD, 버전 관리 시스템 등을 이해하고 사용할 수 있어야 한다.
  • 실행력: 코드를 이용해 문제를 해결함으로써 가치를 만들어내며 비즈니스 간의 연결고리도 이해해야 한다.
  • 의사소통: 문서는 물론, 구두로도 명확하게 소통이 가능해야 한다.
  • 리더십: 범위가 잘 정의된 작업을 독립적으로 수행할 수 있어야 하며, 실수로부터 빠르게 배울 수 있어야 한다.

여정을 위한 지도

누구든 목표에 도달하려면 지도가 필요하다.

초보자

초보자는 업무 방식에 익숙해지는 것이 먼저다. 그 과정은 온보딩회의로 시작하며 기본적인 업무 프로세스에 대해서 배운다. 이 과정에서 능동적인 요청과 행동이 필요하다.

온보딩이란, 조직에 새로 합류한 사람이 빠르게 조직 문화를 익히고 적응하도록 돕는 과정이다.

  • 커닝햄의 법칙과 바이크셰딩
    • 커닝햄의 법칙: 인터넷에서 올바른 답을 얻는 가장 좋은 방법은 질문이 아닌 잘못된 답을 게시하는 것이다.
    • 바이크셰딩: 그다지 중요하지 않은 문제에 대해 사소한 논의가 길어지는 상황

온보딩과정에선 팀 프로세스에 대해서 명확하게 이해하고, 이를 잘 이해하고 학습해야 한다. IDE나 미팅과정, 코드리뷰 과정 등 협업에서 이뤄나는 행위를 잘 이해하고 팀에 맞출 수 있도록 해야한다.

질풍노도의 성장

처음에는 혼란스럽겠지만, 대부분은 기준의 코드베이스 혼돈스럽거나 겁이 나는 작업일 수도 있다. 모르는 점이 있다면 질문하고, 리뷰를 요청한다. (피드백)

성장을 위한 학습은 매우 중요하다. 코드를 빌드, 테스트, 배포하는 방법을 잘 살펴보자.

이후 팀장과의 관계를 발전시키고 업무 방식에 대한 이해, 대화를 통해 회의, 업무 방식을 발전시켜 나간다.

첫 번째 회의 때 로드맵이나 팀 성격에 대한 이해도 중요하다.

신뢰할 수 있는 기여자

지속해서 성장하다 규모가 있는 작업, 프로젝트에 참여하게 되면서 신뢰할 수 있는 기여자 단계에 접어든다. 이때는 좀 더 독립적으로 일할 수 있고, 더욱 신뢰받게 된다.

이때는 손쉽게 운영할 수 있는 프로덕션 수준의 코드를 작성하는 방법, 의존성을 적절히 관리하는 방법, 깔끔한 테스트를 작성하는 방법 등을 배우자.

이제는 다른 팀원도 도와주어 진정한 협업에 참여해야 한다. (도움이아닌 교류)

운영의 바다

작업 규모가 커짐에 따라(할당 받은 책임이 커짐에 따라) 사용자에게 전달되는 과정에 대해 더 많이 알게 될 것이다. 이 과정에서는 테스트, 빌드, 릴리스, 배포, 롤아웃, 등 많은 일이 일어난다.

이 과정에선 스킬적인 부분이 많이 필요하다.

능력자의 땅

이제는 어느정도 소규모 프로젝트를 직접 주도하는 역량을 갖췄다고 생각할 것이다. 이 능력자 단계에서는 기술 설계 문서를 작성하고 프로젝트 계획 수립을 거들어야 한다.

소프트웨어를 설계하다 보면 또 다른 수준의 복잡도를 마주하게 되기 마련이다. 첫 설계에 절대로 안주하지 말고 트레이드 오프를 생각하여 시간이 지나도 지속할 수 있는 시스템을 위한 계획을 세우자.

처음에 설계한 좋아보이던 것들도 시간이 지남에 따라 점차 사라진다. 이때 아키텍처, 빌드 시스템, 테스트 환경등이 눈에 띄게되고 여기서 균형잡기가 시작된다.

전진, 앞으로

이제 초보자로서의 여정에 필요한 지도가 준비되었다. 이 지도를 참고하여 자신만의 로드맵을 그리며 나아가자.

@fkdl0048 fkdl0048 added this to Todo Feb 20, 2024
@fkdl0048 fkdl0048 added the 2024 label Feb 20, 2024
@github-project-automation github-project-automation bot moved this to Todo in Todo Feb 20, 2024
@fkdl0048 fkdl0048 self-assigned this Feb 20, 2024
@fkdl0048 fkdl0048 added this to the The Missing README milestone Feb 20, 2024
@fkdl0048 fkdl0048 moved this from Todo to In Progress in Todo Feb 20, 2024
@github-project-automation github-project-automation bot moved this from In Progress to Done in Todo Feb 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

1 participant