본문 바로가기
세미나

탈잉 - 월간 코드리뷰 ver_0.1 : 커리어 성장 CODE (2021.10.01)

by graygreat 2021. 10. 2.
728x90
반응형

월간 코드리뷰 ver_0.1 : 커리어 성장 CODE

페이스북을 보던 도중에 페이스북 그룹인 "얼또 - Early 또라이 - 일찍 일어나는 또라이가 세상을 바꾼다" 그룹장이신 박미정님이 발표를 하신다는 글을 보았습니다.

개발 공부를 하면서 세미나 같은 것에 참석해본 적이 없는데, 취업을 하고 개발자로서 성장을 갈망하는 저에게 좋은 주제들이 많이 있어서 탈잉을 통해 신청하게 되었습니다.

Session 01 | 성장하는 개발자의 '공유의 기술' (박미정_레이철)

1. 공부

  • 새로운 것 학습하기 < 기존의 것 더 잘 이해하기
  • 공부해서 일정과 품질을 함께 가져가며 업무를 잘해나가는 것

1-1. 그럼 어떻게 할까?

  1. 계획된 프로젝트 내에서 공부할 것 찾기
  2. 업무 계획을 세울 때, 공부 계획도 함께 수립
    • 업무에서 필요한 스킬들을 공부하자.
  3. 업무를 하면서 모호하게 알고 있는 것들, 잘 모르고 있는 것들을 공부하자
    • 이런 방식을 통해 결과를 가시적으로 확인할 수 있음

2. 블로그

  • 새로운 기술 사용법보다는 실제로 겪은 문제 해결 과정

2-1. 왜 하는 건데?

  • 문제 해결을 통해 깨달은 것을 온전한 내 것으로 만들기 위함

2-2. 결과물이 뭐야?

  • 차곡차곡 쌓인 나의 글과 온전한 깨달음

2-3. 그럼 어떻게 할까?

  1. 내가 겪은 문제 상황을 자유롭게 노트에 작성
    • 잘 정리된 형식일 필요 없음
    • 내가 기억할 수 있는 키워드면 충분
  2. 2주에 한 번 돌아보고 키워드 선정 후 작성

2-4. 내용 구성

문제 상황에 대한 설명 -> 해결책 -> 그 해결책을 선택한 이유

3. 집필

  • 집필, 발표는 이타적인 목표 필요
  • 이타적으로 필요하다고 판단한 것 그리고 스스로가 묻어나는 것

3-1. 왜 하는 건데?

  • 내 가치관을 녹여서 책의 형태로 필요한 것을 제공
  • 정말 누군가에 필요한 것을 만드는 것 고민과 시간이 필요

3-2. 그래서 결과물이 뭐야?

  • 내 이름으로 만들어진 책
  • 누군가에게 도움을 줄 수 있음
  • 다음 책에 대한 욕심

3-3. 그럼 어떻게 할까?

  1. 평소에 '왜 없지?'라고 생각했던 주제를 자유롭게 리스트 업
  2. 내가 그 주제를 경험했거나, 곧 경험할 예정인지 판단
  3. 필요성, 차별화, 목차 작성 후 출판사에 제안
  4. 집필 시간 계획

4. 발표

  • 하드 스킬, 동기부여가 필요할 때
  • 소프트 스킬, 개발 문화에 기여하고자 할 때

4-1. 왜 하는 건데?

  • 필요한 기술을 학습할 동기를 부여
    • 공부를 할 수밖에 없게 못 박기 (일정 때문에)
  • 소프트 스킬은 회사 안팎으로 개발 문화에 기여

4-2. 그래서 결과물이 뭐야?

  • 필요한 기술의 학습 시작
  • 스스로의 경험을 회고

4-3. 그럼 어떻게 해야할까?

  1. 기술, 개발문화 주제 선정
  2. 외부 발표든 사내 발표든 데드라인 공표

5. 결국 중요한 것은

  • 명확하고 구체적인 목표 -> 결과물 -> 공유를 통한 피드백 수집

6. 공유? 이것만 지키자!

  • 너무 상처받지 않을 배짱
    • 무플보다 악플이 낫다! 내가 얻을 수 있는 정보만 있다면 손해 보는 거 아님
    • 하나의 의미있는 피드백에 집중
  • 배경/문제 설명 -> 해결책 -> 선택 이유
    • 스스로 '왜?'라는 질문에 답할 수 있다면 어떤 이유라도 괜찮아요

모든 것의 시작은 객관적으로 필요성/현실성 판단
모든 것의 마무리는 공유가 아닌 피드백 수집

스스로 일하는 방식을 관찰해보고 그 안에서 궁금한 점이 생기면 자연스럽게 찾아 더 연구하는 것.
그 편이 재미도 있고 효과도 좋은 것 같아요
<월드 바리스타 챔피언 전주연>

Session 02 | 혼자서 오픈소스로 성장하기 (변정훈_아웃사이더)

1. 개발자의 성장

업무 태도, 커뮤니케이션, 협업, 업무 파악, 문제 해결

좋은 사수, 좋은 동료가 좋다. 하지만 내 맘대로 안된다.

1-1. 오픈소스로 개인 프로젝트를 만든다

  • 코드를 많이 작성
  • 공부할 기술을 활용해 볼 소프트웨어를 만듦
  • 소프트웨어를 만들 때, 첫 고객은 자기 자신
  • 요구사항을 직접 정의할 수 있음

1-2. 기존 소프트웨어를 다시 만든다

  • 아이디어 고민을 하지 않아도 되고 요구사항이 이미 정해져 있음
  • 똑같은 프로그램을 직접 만들어보기
    • 웹서버
    • 랜덤 워드 제너레이터
    • 그 외...
  • 참고할 소스코드
    • 내가 만든거랑 어떻게 다른지 비교할 수 있다.
  • 내부 구조를 이해할 수 있음

1-3. 오픈소스 프로젝트의 코드를 읽는다

  • 많이 읽어볼수록 더 빨리 잘 읽을 수 있음
  • 계속 코드를 보기보다는 틈틈이 보기
    • 버그나 이슈가 있을 때
    • 문서가 잘 이해가 안 될 때
    • 내부 동작이 궁금해질 때
  • 작은 프로젝트부터 시작
    • 현존하는 큰 프로젝트를 보기엔 어렵다.
  • 프로젝트가 크다면 0.1 버전을 보기

1-4. 협업하는 방법을 배운다.

  • 대부분의 오픈소스도 협업으로 만들어짐
  • 회사와 다른 점은
    • 서로 본 적 없음
    • 어느 정도의 지식이나 경험이 있는지 모름
    • 하고하 하는 일의 문맥도 모르고 시간대도 다름
    • 신뢰하지 않음
  • 더 적은 정보로 협업해야 함
  • 협업을 위해 더 많은 문맥을 제공해야 함
  • 영어로 해야 함
  • 메인 테이너의 입장에서 생각하기
    • 어떤 이슈가 이해하기 좋은지
    • 어떤 이슈가 문제 파악이 쉬운지
    • 어떤 이슈가 처리가 안 되는지
    • 어떤 PR이 리뷰하기 좋은지
    • 어떤 PR이 막혀있는지

1-5. 오픈소스 생태계의 시스템을 학습한다.

  • 실수를 막기 위한 다양한 시스템이 존재
    • Continuous Integration
    • Code Coverage

2. 혼자서 공부하는 것에 대한 깊이 있는 학습과 답을 틀렸을 때 그에 대한 오류 해결과 정답을 구하기가 어려운데 이를 어떻게 해결하는가?

  • 다른 방법은 없나? 개선 방법을 찾아보기
  • 새로운 시도
  • 다른 사람들은 어떤 아이디어를 가지고 있는지 계속 고민하기.

Session 03 | 개발자의 슬기로운 발표 생활 (서지연_치즈)

1. 발표 경험이 중요한 이유

  • 개인의 개발 능력이 중요함. 하지만 개발 외적인 것도 중요함
    • 요즘 협업을 하면서 큰 프로덕트를 만든다.
  • 나만의 강점을 만들자
    • 치즈의 강점: 이야기하기 좋은 사람
  • 자기 브랜딩 - 나의 가치를 성장 시켜 나가는 것
  • 대내외 조직 간의 효과적으로 커뮤니케이션 할 수 있는 능력을 가진 사람을 많은 팀에서 요구
  • Tech Skill + Communication Skill = 더 넓은 커리어 선택의 폭

2. 발표 기회를 만드는 방법

"발표할 게 없어요."
"이미 다 아는 것들인 것 같아요."

2-1. 발표 거리 찾기

  • 평소에 발표할 생각으로 정리해두기

  • 결론 -> 문제 -> 해결

    • 결론
      • 응답속도 개선했다.
    • 문제
      • 사용자가 많아지면서 응답 속도가 느렸다.
    • 해결
      • 쿼리가 병목 발견. 인덱스와 조인문으로 쿼리 개선
  • 평소에 총알 준비

  • if 한글 자료 한 페이지 안 된다면, 발표 할만하다!

2-2. 우려먹기

  • 컨버런스마다 타겟층이 다름
  • 우려먹지만 새로운 것들을 적용하면서 발전할 수 있음
  • 머릿속으로 생각하기 < 내 언어로 정리해 말하기

2-3. 가까운 곳부터 시작하기

  • 오프라인 코드 리뷰
  • 스크럼
  • 주간 회의
    • 결론만 얘기하기보다는 이유도 함께 설명하며 회의 참여하기
  • 스터디 리딩
  • 지식 공유
  • 커뮤니티 밋업 참여
  • 빅 테크 컨퍼런스 참여

2-4. 지르기

  • 우선 질러보기
  • 하면 된다 X, 되면 한다 O
  • 코딩 실력을 키우려면 코딩을, 발표 실력을 키우려면 발표를
  • 성장은 항상 불편함과 고통 속에서
  • 열심히 문을 두드리다 보면 나를 두드리는 기회가 찾아옴

3. 발표 기회를 놓치지 않는 방법

3-1. 짧게 말하기

  • 핵심 말하기
  • 한 장표당 하나의 메세지
  • 모든 이야기 전달 < 중요한 내용 전달
    • 한정된 시간에 전달하고 하는 내용을 중점적으로 생각하기
  • 장표 집중 < 연사자 발표 집중
  • 화면이 빠르게 넘어가면 속도감 증가!
  • 장표는 한눈에! 집중은 연사자에게!

3-2. 연습 또 연습

  • 익숙하지 않은 건 다 어려워요! 연습만이 살길
  • 어려운 거 = 안 익숙한 거, 익숙한 거 = 쉬운 거
  • 주변 사람들을 이용해서 리허설!
  • 혼자 연습 -> 피드백 반영 -> 가족/친구/팀 연습 -> 혼자 연습

발표 못 하면 까먹는다. 잘한 것만 기억한다.

4. 내가 배운 것

4-1. 공유의 즐거움

  • 뭘 모르는지 모를 때, 제일 답답하고 힘들었을 때
    • 열심히 듣고 기록하고
    • 다른 사람들의 발표를 보며.. "아! 저런 것들이 있구나!"
    • 나도 내 생각을 공유해보자!
  • 내 성장도 좋지만, 함께 성장

5. 첫 발표 준비, 발표 과정 팁?

  • 작은 거라도 경험했던 것들 이야기하기
  • 발표 끝나고 아쉬움을 성장의 발판으로 삼기

6. 틀리거나 부족하지 않을까? 자격이 있는걸까?의 두려움 극복?

  • 모든 사람을 다 만족시킨다기보다는 타겟을 정하기

7. 남에게 효과적으로 내 생각과 지식을 전달하는 방법?

  • 결론을 얘기하고 접근 방식을 얘기하기
  • 계속 연습하기

Session 4 | 오픈 소스 프로젝트 키우기 (옥찬호)

파종부터 추수까지, 오픈소스 재배 일기

1. 파종 - 어떤 오픈 소스 프로젝트를 만들까?

  • 무엇이든 좋다. 하고 싶은 것을 해야 꾸준히 이어 나갈 수 있다.
  • 목표를 설정하자
    • 1) 꿈은 크고 넓게
    • 2) 발걸음은 작고 짧게

2. 발아 - 프로젝트 프로토타입 만들기

  • 프로토타입을 만들 때 고려해야 할 사항 - "미니멀리즘"
    • 꼭 필요한 기능만 구현해서 프로토타입 만들기
  • 동기 부여하기

3. 써레질 - 빌드/배포 자동화 및 각종 툴 설치

  • 높은 품질을 유지하기 위한 과정
  • Continuous Integration
    • 여러 개발자가 작성하거나 수정한 소스를 지속적으로 통합하고 테스트하는 것
  • Continuous Deployment
    • 개발, 통합, 배포, 릴리즈, 테스트를 자동화해 지속적으로 배포하는 것
  • 코드 커버리지
  • 정적 코드 분석
    • 코드 내에서 발견될 수 있는 보안 취약점, 잠재적인 결함, 위험 등을 찾는 과정

4. 모내기 - 협업을 위한 준비 및 홍보

  • 프로젝트 설치 및 사용 방법 알려주기
    • 프로젝트 할 때, 문서화시키기
  • 기여 방법 단계별로 알려주기
    • commit message, pr message 등...
  • 도움이 필요한 부분 등록하기
  • 질문 답변을 위한 창구 만들기
  • 프로젝트 오픈 소스 체크리스트
  • 모든 준비가 끝났다면, 오픈 소스 프로젝트 알리기
    • Facebook, Twitter, Reddit

5. 제초 - 이슈 및 코드 리뷰 대응

  • 이슈 템플릿 작성하기
  • PR 템플릿 작성하기
  • 이슈 대응하기
  • 코드 리뷰하기

6. 추수 - 다음 단계를 위한 준비

  • 새로운 기능 추가
  • 코드 리팩토링
  • 성능 개선
  • 새로운 프로젝트 도전

Session 5 | Zero to Hero_Developer Roadmap (이수진)

1. 나만의 커리어 로드맵을 그려라

  • IT 업계의 커리어는 사다리가 아닌 정글짐
    • 신기술, 회사 내 업무, 관심사에 따른 커리어 변환이 잦음
  • 내 관심사와 성향에 맞는 개발 분야 및 직무 찾기
  • 개발자 로드맵에 따라 배워야 할 학습 내용이 다름
  • 현재 나의 상황을 객관적으로 진단하고 필요한 지식과 역량을 발견하기
  • 커리어
    • 미래의 모습을 그려보기
    • 나의 현재 위치
  • 개발
    • 나의 강점
    • 내가 개발해야 할 역량
    • 성취하기 위해 해야 할 일
  • 커리어 탐색
    • 희망 직문의 기술 트렌드 및 요구 역량 이해
    • 질문해보기
  • 역량 개발 목표 설정
    • 역량, 목표, 현재 상황, 목표 기간, 장애물
  • 단시간에 성취할 수 있는 아주 작은 것부터 시작하기
  • 기본기에서 탁월함이 나옴
  • 소프트 스킬(커뮤니케이션 능력, 리더십)도 역량이며 경쟁력

2. 영어로 개발 지식을 쌓자

  • 개발자에게 날개를 달아주는 영어
  • 영어 강좌 및 원서만 활용
  • 영어는 중요하니 꾸준히 공부해보기

3. 학습과 취업을 동시에 잡는 개발 프로젝트를 만들자

  • 70-20-10의 학습 법칙
    • 70%의 학습은 업무 중에 발생한다. 20%는 동료들과의 상호작용을 통해 얻어지며, 나머지 10%가 공식학습을 통해 얻어진다.
  • 문제 해결 과정을 기록해 컨텐츠를 남길 것
    • 문제 -> 개념 발견 -> 학습 -> 블로그로 남기기 -> 발표
  • 내 프로젝트를 주변에 적극적으로 홍보하자
  • 취업을 위한 프로젝트 - 실무자
    • 고용주가 직접 우리를 찾게 만들자
    • 기업의 가치를 높여주는 프로젝트
    • 회사 내에서 오픈소스 프로젝트를 진행
    • 현업에서 부딪힌 문제점을 발전시켜 프로젝트 진행

"우리는 모두 자신의 힘으로 발견한 내용을 가장 쉽게 익힌다." - 도널드 크누스 (수학자, 스탠퍼드 대학교 명예교수)

4. 커뮤니티와 함께 성장하자

  • 개발자에게 커뮤니티는 개발자 문화와 모두의 성장을 함께 도와주는 학습 공동체
  • 다양한 커뮤니티 활동해보기

6. 마무리

처음 듣는 세미나였는데, 정말 만족감이 높았습니다.

개발자로서 어떻게 공부해야하고 어떻게 성장할 수 있는지에 대해 많은 생각을 해볼 수 있는 발표들이었습니다.

특히 개발을 할 때, 너무 높이 있는 시니어 분들과 나를 비교하지 말고 저 분들도 나와 같은 과정들을 다 거쳤겠구나 생각을 하면서 꾸준히 공부해야겠다는 생각을 할 수 있었습니다.

저도 이제 회사에 들어가 개발자로서 첫 발걸음을 내딛는데 꾸준한 성장을 통해서 3년 이내에 꼭 발표자로 많은 사람들에게 조금이나마 도움이 됐으면 좋겠습니다.

반응형

댓글