[우아한 형제들] 주니어 개발자 커리어 멘토링

Hoojeong Kim·2022년 7월 6일
147
post-thumbnail

우아한 형제들 임성현님주니어 개발자, 커리어 성장곡선에 올라타기 세션을 듣고 기록한 내용입니다.
주관적인 내용이 포함되었을 수 있습니다. 주의 바람!!


  • 주니어 개발자로써 어떻게 성장하고, 프로젝트를 어떻게 진행하며, 필요한 기술 스택으로 어떤 것들이 있는지 전해주고자 합니다.
  • 10년간 멘토링했던 내용들을 중심으로 풀어나갈 예정입니다.
  • 이번 세션을 통해 궁금하고 막연한 것들을 풀어갈 수 있길 바랍니다.

이 이야기의 대상!!

🧒🏻 1~3년차 개발자

  • 드디어 입사의 문을 열고 들어왔다. 그 다음은?
  • 업무에 익숙해지기도 바쁜데, 기술적으로도 성장하려면?
  • 남들은 다들 회사에서 잘 성장하는 것 같은데, 나는..?
  • 회사 선배들은 넘사벽 (배울 선배를 못 찾을 것 같다는 생각도)

👶🏻 0년차 개발자

  • 취업 그 이후의 이야기
  • 나의 길에 대한 고민과 조언

매년 이런 얘기 하는 듯??

📌 얻어갈 것

  • 막연함을 풀어줄 첫 단추
  • 회사 업무만으로도 성장..? 절반의 yes / 절반의 제안
  • 좋은 선배, 동료 사이에서 성장하는 방법


주니어의 궁금증 모음집!!

💡 개발자가 좋은 직업인가요?

🙋🏻 개발자로 살기 너무 힘들지 않나요?
🙋🏻 제가 개발자로 살기에 적성이 맞는지 모르겠어요.
🙋🏻 지금은 개발자를 많이 뽑는데, 앞으로 개발자라는 직업이 유망할까요?

지금까지 만난 주니어 개발자들이 했던 질문들입니다.
이에 대해 개발자가 갖는 특성을 위주로 설명하려고 합니다.

개발자(Software Engineer)란?

  • Engineer: 주어진 문제를 기술로 해결하는 사람
  • 프로그래밍 언어로 문제를 해결
  • 다른 개발자들과 함께 기획자와 또는 스스로 정한 요구사항에 따라 동작하는 프로그램을 만듦

필요한 핵심 능력

  • 소통과 학습

다시 말해 개발자는,

  • (프로그래밍을 통해) 문제를 해결하는 사람
  • 협업을 통해 문제를 해결
  • 개발 기술환경이 매우 빠른 속도로 발전

더 많은, 뛰어난, 좋은 개발자가 필요

  • 인터넷 비즈니스 성장
  • 전통적 기업의 디지털 전환 지속

인터넷 환경과 비즈니스가 성장함에 따라, 우리의 삶에 큰 영향을 미치고 있습니다. 그리고 전통적 기업이 디지털로 전환하기 위해 노력하는 과정에서 이를 실현할 수 있는 개발자, 좋은 개발자를 계속해서 필요로 합니다.

개발자라는 직업은 이전과 비교했을 때 안정성이 더욱 높아졌으며, 2-3년이면 해당 기술에 대한 전문가가 될 수 있습니다.

적어도 개발자는 나쁘지 않은 선택이다.



💡 어떻게 하면 좋은 개발자가 될까요?

어려워요^^..

좋은 개발자로의 성장

좋은 개발자로 성장하기 위한 방법으로는 두 가지가 있습니다.

  • 회사 안에서의 성장
  • 사이드 프로젝트를 통한 성장

입사 시에 가장 중요한 것이 프로젝트 경험입니다.
학교, 동아리, 대회 등에서 진행했던 프로젝트가 어떤 목표를 갖고, 다른 사람들과 협업을 하며 결과를 만들어가는 측면에서 회사와 동일하기 때문이죠.

이를 통해서 이 사람이 우리 회사에 입사하면 이런 모습이겠구나, 하고 생각하게 합니다.
즉, 그만큼 프로젝트 경험은 중요합니다.


🙋🏻 입사 후에는 어떻게 성장해야 하지?
🙋🏻 회사에서는 반복적인 작업, 유지보수, 기술지원만 하는데 이게 성장이 가능함??

회사와 회사 밖으로 구분지어, 이러한 질문을 해소할 수 있을 것으로 생각합니다.


회사 안에서의 성장

  • 우리 회사의 비즈니스 수익원이 무엇인지
  • 그 팀이 어떻게 일하는지, 진행하는 프로젝트는 무엇인지 살펴보기
  • 그 팀이 우리 팀이라면 : 좀 더 높은 관점에서 바라보기
  • 좀 더 비즈니스 수익원과 밀접한 팀에 합류
    • 회사에서 중요하게 바라보는 문제해결 경험

진행 중인 프로젝트를 살펴보며 내가 하고 있는 일이 가치가 있는지, 어떤 것을 바라봐야 하는지에 대한 어려움을 풀어갈 수 있을 것입니다.
높은 관점에서 바라 보는 것도 필요하구요.

근데 이렇게 해도 성장하기 어렵다면,,, 이직 하셔야죠..


사이드 프로젝트를 통한 성장

회사 안에서의 성장에 갈증이 난다!!

이번엔 사이드 프로젝트를 통한 성장 방법을 설명하고자 합니다.
여기서 포인트는, 우리의 주 목표가 성장 곡선이고 기술을 통해 문제를 해결하는 경험을 쌓는 것입니다.

즉, 어떤 기술을 습득할 것인지가 중요합니다.


총 다섯 개의 절차로 설명하고자 합니다.

  1. 프로젝트 기술 스택 잡기
  2. 팀 구성
  3. 주제선정
  4. 프로젝트 진행
  5. 진행한 프로젝트 정리하기

1. 프로젝트 기술스택 잡기

기술 스택을 잡기 위해 우리가 살펴봐야 하는 것은 바로 채용공고 입니다.

제가 아는 채용 담당자와 얘기를 나눠보면 많이 아쉬워 합니다. 지원자가 채용 공고를 더 자세하게, 이해하고 지원하지 않기 때문이죠.


채용공고 항목은 크게 5가지로 나눠볼 수 있습니다.

  • 회사소개
  • 할일
  • 자격요건(필수요건)
  • 우대사항
  • 업무환경

회사에 지원을 할 때, 이런 경우가 간혹 있습니다.

자격 요건에는 해당되는 기술이 없는데, 우대 조건의 한 두가지를 충족하는 것이죠. 이처럼 우대 조건 1-2개를 충족해서 지원을 하게 된다면 어떻게 될까요?

채용 담당자는 이럴 때 많은 고민을 하게 됩니다. 자격 요건에 못 미치는데, 입사하면 잘 할 수 있을까? 라고 말이죠.

모든 자격 요건을 충족하기는 어렵다는 것을 잘 알고 있습니다. 그래서 적어도 자격요건의 2~3개를 만족하는 경우에 지원하시기 바랍니다.


추가로 신입인데 경력자로 지원해도 되는지 궁금하신 분들이 있을 겁니다.

예를 들어 경력 3년차를 말하면, 그 정도의 경험을 가진 사람을 뜻합니다. 만약 본인의 경력이 2년차라도 실력이 좋다면 지원해도 좋을 것으로 생각합니다.


여러분이 직접 보시면 아시겠지만, 회사마다 채용 공고는 대부분 비슷합니다.

여기서 가장 중요한 것은 자격요건우대사항 입니다.

내가 저 항목들을 채우지 못하면 어떡하지? 라고 생각할 수도 있는데, 절대 나쁜 것이 아닙니다. 나의 실력과 채용 조건 사이의 차이를 발견한 겁니다. 즉, 나의 부족한 점을 발견한 것이죠.
부족한 점은 앞으로 채워나가면 됩니다.


여러 회사의 자격요건이나 우대사항을 살펴보면 공통적으로 요구하는 기술 스택들이 있습니다.

사이드프로젝트의 기술 스택은 여기서 시작합니다.

회사에서 사용하지 않는 기술을 사용할 예정이라면, 여러 회사의 자격요건과 우대사항을 보고 자주 언급되는, 중복되는 기술을 선택하는 것이 좋습니다.


2. 팀구성

팀은 이전에 함께했던 프로젝트 맴버와 함께하거나, 개발 커뮤니티를 활용하는 것이 좋습니다.

참고하면 좋을만한 커뮤니티 입니다.

커뮤니티설명
SOPT대학생만 가능합니다. 각 직군별로 기초 멘토링(세션)을 진행한다는 점이 큰 메리트예요.
YAPP대학생 70/직장인 30 정도이고, 같은 직군 사람들끼리 내부 스터디도 진행하고 있습니다~
NEXTERS대학생+직장인, 직장인이 많고 면접이 많이 어렵다고 들었습니다. 실제로 활동하시는 분들이 상당한 실력자이신 걸로 알고 있어요~
디프만대학생+직장인, 팀프로젝트 위주로 진행됩니다! YAPP과 비슷한 분위기로 알고 있어요.
GDG Campus Korea학생+주니어 개발자 위주의 컨퍼런스와 해커톤이 진행됩니다. GDG Seoul 의 경우 구글 관련 컨퍼런스도 많고, 스터디를 모집하는 분도 많았습니다.
AWS한국사용자그룹AWS의 분야별/지역별로 다양한 소모임이 진행중입니다. 아키텍처, 데이터사이언스, 서버리스 등의 기술모임도 있고, AUSG등 대학생 모임 도 있어요.
Women Who Code여성개발자라면 이 커뮤니티도 보시면 좋을 것 같아요.

🙋🏻 팀 구성이 부담스러워요..

  • 앞에서 발견한 주제로 책 한 권 따라해보기
  • 혼자서 토이 프로젝트 진행해보면서 '용기' 쌓아가기
  • 단, 이 단계에서만 머물지 않기

3. 주제선정

👎🏻 비추해요!

  • 모여서 책 한 권 따라하자, 인터넷에 올라온 클론코딩 따라하자

👍🏻 추천해요!

  • 공모전 수상작의 아이디어를 참조해서 직접 만들어보기
  • 직접 아이디어 만들어보기
공모전
한이음 ICT 멘토링 공모전 수상작 명예의전당
인공지능 학습용 데이터 활용 아이디어 공모전 수상작
통계데이터센터 분석, 활용대회 수상작모음
NIA 비전영역 인공지는 학습데이터 공통 해커톤 대회수상작
범정부 공공데이터 활용 창업경진대회 수상작갤러리

4. 프로젝트 진행

  • 실제 서비스 런칭까지 해보기
  • 사용자를 직접 만나보기
  • 운영단계에서 다양한 돌발/예외상황을 겪어보면서, 감안하면서 개발해보기
  • 이 기술을 왜 썼는지, 전문성과 이해에 더 집중
  • Ver 2.0 출시하기

5. 진행한 프로젝트 정리

  • 사용 기술과 목적, 동작하는 모습을 기록하여 깃허브에 저장
  • 진행 중 겪은 다양한 선택의 과정과 이유를 기록해두기
  • 이력서에 업데이트

💡 개발 이외에도 이런 것이 궁금해요

🙋🏻 내 주위엔 넘사벽 선배들만 있어서 따라가기 힘들어요.
🙋🏻 내가 제일 잘해서 이끌어줄 선배가 없어요.

'다른 사람에 비해서', '저 사람처럼' 이라는 마인드는 좋지 않습니다. 스스로를 되돌아보며, 자신이 과거보다 더욱 성장하고 있다는 사실에 초점을 맞춰보세요.

자신을 과거와 비교하며 앞으로 나아가는 것은, 자신보다 뛰어난 개발자를 만났을 때 열등감을 느끼지 않고 함께 좋은 결과를 만들어 갈 수 있는 원동력이 됩니다.


🙋🏻 나는 언제까지 성장해야 할까요?

.. 금방 옵니다.

아 이정도면 됐어. 라는 생각이 가장 위험합니다. 내가 편안하고 안전한 현실에 안주한다면 나의 성장은 그 자리에서 멈출 것입니다.
개발은 3년 주기로 기술이 변경되기 때문에 계속해서 성장해야지, 안전 지대에 머무르는 것은 좋은 생각이 아닙니다.

계속해서 문제를 마주하고, 더 나은 기술을 통해 문제를 해결해 나가는 경험을 쌓는 것이 중요합니다.

그렇다고 불안한 지점에 머무르는 것도 좋지 않습니다. 나는 이것도 몰라... 하는 불안한 지점을 벗어나, 조금 더 나은 해결책이 있을 거야. 라는 생각을 가집시다.


🙋🏻 영어를 얼마나 잘 해야 할까요?

개발을 하다보면, 오픈소스나 사이트 등이 대부분 영어라 막막할 수 있을 것으로 생각합니다.

개인적인 생각으로 개발자에게 요구하는 영어 실력은 이렇습니다.
1. 문서를 읽고 이해할 수 있을 정도의 독해력
2. 구현한 서비스를 문서로 설명할 수 있을 정도의 작문
3. 구현한 서비스를 말로 설명할 수 있을 정도의 회화

하지만 이 중에서 가장 중요한 것은 독해력입니다.


🙋🏻 공부할 때는 재미있는데, 일하면서 재미를 느끼기 어렵습니다.

시간에 따른 기술의 숙성도와 흥미를 그래프로 나타냈습니다.

먼저 발명의 시대로, 기술을 접한다면 흥미는 넘칠지라도, 관련 정보가 턱없이 부족합니다.
반면 공장의 시대에는 기술이 너무 익숙하고 정보가 넘처나지만, 그에 반에 흥미는 감소합니다.

공장의 시대에 머무르며 일하면서 재미를 느끼기가 어렵다면, 장인의 시대로 떠나봅시다.
장인의 시대에는 높은 흥미와 적절한 정보를 가지며, 참여 인원이 점점 증가하는 추세입니다.

본인이 하고 있는 업무에 새로운 기술을 도입하여 문제를 해결해 나감으로써 흥미를 유발해보면 어떨까요?



질문 대방출!!

🙋🏻 회사에 일이 없어서 끌어서 쓸만한 경력사항이 없어요.

제 발표가 도움이 되었으면 좋겠어요. 회사 외적으로 사이드 프로젝트를 진행해보고, 업계 트렌드에 따른 기술을 분석해보면 좋을 것 같습니다.


🙋🏻 혼자 독학하기에는 무리가 있는 것 같은데, 추천해주실 만한 교육 과정이 있을까요?

먼저 책 한 두 권 정도는 스스로 읽어보는 것이 좋습니다. 그리고 좋은 교육 기관도 중요하지만, 프로젝트를 통해 배워나가는 것을 추천합니다.
다양한 커뮤니티를 활용해 다른 사람들과 협업하며 프로젝트를 진행해보세요.

모든 것의 초점은 학습보다 프로젝트 경험을 쌓는 것입니다.


🙋🏻 취업을 위한 개인 프로젝트로 어떤 기술을 다루는 게 좋을까요?

앞서 설명했던 채용공고 분석을 통해 여러 기업의 기술 트렌드를 확인하고 개인 프로젝트에 적용해보시길 바랍니다.


🙋🏻 저는 비개발자인데, 개발자와 잘 소통하기 위해서 어떤 준비를 하면 좋을지 조언 부탁드립니다.

사실 어렵습니다. 개발자와 비 개발자 간의 소통은.. 개발자 간의 소통도 마찬가지 입니다.

개발자에 대해 관심을 갖고 어떻게, 왜로 소통해보세요. 개발자가 경험한, 만든 것들을 물어보면 신나서 대답해줄 겁니다. 저는 그렇게 친해졌어요.

상대방을 장인으로 바라볼 때 소통이 원활해집니다.


🙋🏻 개발자가 꼭 읽어야 하는 책이 있다면 추천 부탁드립니다.

본인이 최근에 읽은 책, 최근 3-6개월 사이에 읽은 책이 자신의 인생을 바꾸는 책입니다. 개발자가 꼭 읽어야 하는 책이라기 보다는, 계속해서 책을 읽는 것이 더 나은 개발자가 되기 위해 필요한 과정입니다.

제게 많은 도움이 되었던 책은 소프트웨어 프로젝트 생존전략입니다.
그 당시에 개발자로서 프로젝트를 어떤 관점으로 적용해야 하는지 알 수 있었습니다.
지금의 개발자에게 도움이 될지는.....

좋은 책의 기준은 꽂혀있는 책보다 누워있는 책이라고 생각합니다. 아무래도 다른 사람들이 많이 읽는 편이기도 하구요.


🙋🏻 멘토님께 슬럼프가 왔던 적은 없으신지, 있었다면 어떻게 극복하셨는지 궁금합니다!

스스로를 관찰하고, 알아가는 것이 중요하다고 생각합니다. 피드백을 꾸준하게 하는 것도 마찬가지 입니다.

내가 하는 활동이나 서비스 등이 어떤 사람에게 도움을 주는지, 사용자를 직접 만나보는 것도 많은 도움이 됐습니다. 내가 하는 것들이 이만큼이나 도움이, 가치가 있구나.. 하고 말이죠.


🙋🏻 영어 공부를 할 때, 멘토님은 구체적으로 어떻게 하셨나요?

외국인들과 함께했던 프로젝트가 가장 많은 도움이 되었습니다. 문서나 의사소통, 발표 등 외국인들이 이해할 수 있는 언어로 전달해야 했기 때문에 많이 발전할 수 있었던 것 같습니다.

이런 경험은 사실 흔치 않죠. 혼자 공부할 때는 번역기를 사용해서 자신이 이해한 바가 맞는지?? 확인했습니다.



후기!!

얼마 전에 인턴으로 입사를 하게된 나에게 방향을 제시해주는 세션이었다. 지금 하고 있는 게 맞는지, 앞으로 얼마나 더 공부해야 하는지 등등... 누군가가 이런 얘기를 해주기 바랐던 것 같다.
가려운 부분을 시원하게 긁어준 느낌이랄까..?

아직 부족한 점이 많지만, 이번 세션을 통해 얻은 내용으로 멋쟁이 개발자가 되자!!


ps.
임성현님이 쓰신 모의장애훈련을 읽어봤는데, 아주 흥미로웠다. 다들 읽어보세유.

profile
나 애기 개발자 👶🏻

6개의 댓글

comment-user-thumbnail
2022년 7월 12일

덕분에 좋은 내용 잘 보고 갑니다
감사합니다.

1개의 답글
comment-user-thumbnail
2022년 8월 10일

우와! 제가 이야기한 내용보다 훨씬 더 잘 정리하셨네요. 감사합니다.
내가 가는길이 맞는지 고민하면서 동시에 확신을 가지고 성큼성큼 가기는 참 어려워요.
그런 면에서 조금이라도 도움이 되었다면 다행입니다.

이 발표를 준비하면서 어떻게하면 한 시간 안에 잘 소화해서 전달할지 저도 고민 많았는데
이 후기를 보면서 뿌듯하면서도 고맙네요.

언제든 궁금한 점이나 도움이 필요하면 연락 주세요 :)

  • 임성현 드립니다.
1개의 답글
comment-user-thumbnail
2022년 12월 1일

정말 좋은정보 감사합니다.
덕분에 방향에 대한 가이드라인이 잡히는 느낌입니다. :)

답글 달기
comment-user-thumbnail
2023년 12월 7일

감사합니다!! 궁금했던 내용들을 잘 정리해주셔서 많은 도움이 되었습니다! 저장해놓고 읽겟습니다!

답글 달기