BAEKDEV
BAEKDEV

자바 둘 타세요-에서 <자바 인력1>을 맡고 있습니다.

경력을 발전 시키고 싶다면 - 커리어 스킬(1)

소프트웨어 개발자를 대상으로 하는 온갖 서적을 살펴보아도 업계에 입문하는 방법, 성장하고 출세하는 방법, 최대 성과를 거두기 위해 알아두어야 할 것을 포함해 개발자가 알아야 할 사항을 하나부터 열까지 알려주는 책은 단 한권도 찾을 수 없어 이 책을 만드는 중이다. 당신도 이 여정에 함께하길 바란다. - 존 손메즈

경력을 발전 시키고 싶다면 - 커리어 스킬(1)

소프트 스킬에서는 경력을 비롯한 소프트웨어 개발자의 생활 전반에 초점을 맞추었다면 이 커리스 스킬은 오로지 경력에 집중한다. 이 책은 경력에 따라 읽는 순서를 가이드한다.

  • 이제 막 개발을 시작하는 입문자라면 소프트웨어 개발자로 입문하기 부터
  • 이미 개발자로 일을 하고 몇 년간 코딩을 해온 사람이라면
    • 자신의 빈틈을 채우기 위해 바로 소프트웨어 개발에 대해 알아야 할 것 혹은 개발자로 일하기부터 보는 것을 추천
  • 경력을 발전시키는 데 관심이 많다면 바로 경력 발전시키기 부터 보는게 가장 합리적이다.

경력 발전시키기

자신에게 요구된 것 이상을 습관적으로 더 많이 해야만 발전할 수 있다.

최신 기술 따라잡기

신기술과 새로운 프로그래밍 언어를 전부 배워야 한다는 뜻은 아니며, 그건 불가능하다. 다만 최신 기술을 따라잡기 위해 노력해야 한다는 뜻이다.

블로그 구독하기

  • 매일 아침 30분씩 여러 소프트웨어 개발 관련 블로그를 읽음
  • 프로그래밍 세계에 등장하는 최신 기술을 따라잡기 위해
  • 내가 직접 해야 할 일을 다른 사람이 어느 정도 도와주는 셈

책 읽기

  • 기술 관련 서적을 적어도 한 권은 읽어야 함
  • 자신에게 가장 큰 도움이 되는 책, 영구적 가치를 지닌 책을 고를 줄 알아야 함
  • 소프트웨어 개발 방법론이나 디자인 패턴, 아키텍처에 대한 책도 언제나 좋은 선택
  • 새로운 기술에 관한 책을 읽을 때는 단순히 읽는 데서 그치지 말고 경험을 통해 배워야 함

새로운 기술 선택하기

  • 무엇을 배울 것인지 계획을 세울 것
  • 현재 학습하는 주제를 마쳤을 때 다음 주제로 바로 넘어갈 수 있음
  • 자신의 현재 기술 수준을 평가하고 앞으로 어떤 수준까지 이르고 싶은지 생각
  • 다음에 배울 새로운 주제를 고르고 어떤 순서로 배울지 우선순위로 정하라
  • 자신에게 가장 큰 도움이 될 기술, 프로그래밍 언어, 프레임워크를 정하고 배워야 할 것 목록에 적어두라

부지런히 코딩하기

  • 사이드 프로젝트를 쉬면 안됨
    • 계속 코딩해야 기술이 녹슬지 않음
  • 사이드 프로젝트를 진행할 때는 마무리 지을 수 있을 정도로 작은 규모로 진행
  • 시작한 프로젝트를 반드시 마무리하는 습관을 들인 것이 내가 태어나서 가장 잘한 일중 하나
    • 뭐든 시작한 일은 마무리하는 사람이 되어라
  • 그런 습관은 경력뿐 아니라 인생 전반에 큰 차이를 나타낼 것

제너럴리스트 vs. 스페셜리스트

  • 제너럴리스트의 가치를 높이 산다고 말하는 많은 사람이 자신은 정말 그렇게 생각한다고 믿음
    • 하지만 그런 사람도 필요한 순간에는 결국 전무가를 찾음
  • 해당 분야에 대해 일반적인 지식을 넓게 갖추지 못한 상태로 훌륭한 전문가가 된다는 건 어불성설

T자형 인재가 되는 게 중요

  • 자신의 분야에 대해 넓은 기본 지식을 갖추되 적어도 한 영역에 대해서는 깊이 있는 전문적 지식이나 기술을 갖춰야 함
  • 소프트웨어 개발자라면 코딩, 알고리즘, 데이터 구조, 아키텍처, 프런트엔드, 백엔드, 데이터베이스 등에 정통하기 위해 노력해야 함
  • 적어도 한 영역에 있어서만큼은 깊이 있는 지식을 쌓는 게 좋음
  • 독보적으로 두각을 드러내서 자신의 가치를 더욱 높일 영역을 선택해야 함
  • 개인 브랜드를 만들고 자신을 마케팅할 대 이런 전문성을 확용

만약 전문 영역을 잘못 선택한다면?

  • 다른 영역으로 바꾸면 된다. 별일 아니다.
  • 잘못 고를까 두려운 마음에 아무 영역도 고르지 못하는 소프트웨어 개발자가 많다
  • 무엇이든 선택하고 결과를 지켜보라
    • 아무것도 하지 않는 것보다 그게 훨씬 낫다
  • 필요하면 언제든 방향을 전환하면 된다
  • 일단 한 영역의 전문간가 된 후에 다른 영역의 전문가가 되는 건 훨씬 쉽게 느껴진다
    • 다른 데서 활용할 수 없을 것 같은 기술이 알고 보면 다른 곳에서 유용하게 쓰이는 경우가 있어
    • 그래서 깊이 파고드는 능력을 키우는 건 그 자체만으로도 가치가 있음

그래서 어떻게 해야 하나요?

  • 너무 넓은 영역을 선택하기 보다는 지나칠 정도로 좁고 구체적인 영역을 고르는게 좋음
    • 최대한 좁은 범위를 설정하고 나중에 얼마든지 확장할 수 있음
  • 소프트웨어 개발에 관한 일반적인 지식을 최대한 넓게 쌓는것도 게을리하지 말 것
  • 좋은 코드를 작성하는 방법을 배울 것

커리어 스킬

사이드 프로젝트

내 인생과 경력을 돌이켜봤을 때 모든 게 극적으로 변한 한 순간,
변곡점이 하나 존재한다.
그 변곡점은 내가 사이드 프로젝트를 처음으로 마무리한 순간이었다.

사이드 프로젝트는 항상 해야 한다

  • 사이드 프로젝트는 소프트웨어 개발자가 경력을 발전시킬 좋은 방법
  • 새로운 기술을 배우고 알던 기술을 연습할 기회를 줌
  • 새로운 영역에 도전해보면서 자신의 능력에 대한 자신감도 키울 수 있음
  • 6개월짜리 사이드 프로젝트 하나가 9시부터 5시까지 근무하는 회사에 몇 년간 다녀야배울 수 있는 경험을 하게 해줌

사이드 프로젝트 고르기

  • 처음에는 아주 작은 것에 도전
    • 아주 쉽게 완료할 수 있다고 생각하는 아주 간단한 사이드 프로젝트로 시작
    • 한두 주 혹은 길어도 한 달 정도면 마칠 수 있는 것을 선택
  • 첫 번째 사이드 프로젝트로 클론 코딩을 추천
  • 작고 쉬운 사이드 프로젝트를 완성해서 자신에 대한 신뢰가 굳건해지면 조금 더 욕심을 내도 좋음

시작하기

  • 사실 무슨 일이든 시작하기 전에 어떤 일을 할 것이고 최종 목표는 무엇인지 계획을 세워두어야 함
    • 목표 혹은 완료의 기준
    • 마감
    • 체계 혹은 프로젝트 작업 시간 정하기

꾸준히 하라

  • 프로젝트를 완료하고 거기에서 이득을 취하기 위해 실제로 당신이 지켜할 아주 중요한 사항은 바로 일관성
  • 마음이 내킬 떄만 해서는 안됨
    • 마음이 내키지 않을 때가 너무 많기 때문

마무리하라

  • 어떤 프로젝트든지 아무리 마음에 들지 않아도 시작했으면 마무리하라
    • 그 프로젝트 때문에 죽을 것만 같아도 지켜라
  • 99%센트 완성했어도 출시하지 못했다면 가치는 0%
  • 완벽한 해결책을 찾지 못했다는 이유로, 막혔다고 손을 놓아버리는 것보다 어떻게든 강행해서 진전을 보는 게 거의 언제나 더 나음

좋은 평판 쌓기

  • 정말 뛰어난 개발자가 되고 싶다면
  • 자신의 경력을 한 단계 끌어 올리고 싶다면
  • 자신을 마게팅하고 개인 브랜드를 만드는 방법을 배워서 좋은 평판을 구축해야 함
  • 모두에게 닫혀 있던 기회의 문이 열릴 것
  • 평판에 따라 보상이 달라짐
  • 본인이 인맥, 일자리, 기횔를 따라다니지 않아도 평판이 좋으면 이런 것들이 저절로 따라옴
  • 자신을 홍보하고 마케팅하고 브랜드를 만드는 걸 나쁘게 보아서는 안 됨

세계 최고의 프로그래머라 해도 자기 방에만 틀어박혀서 그 누구와도 소통하지 않는다면 아무 의미가 없다.
별다른 영향력을 갖지 못하기 떄문이다.

블로그를 시작하면서

  • 심플 프로그래머라는 블로그를 시작
  • 점점 더 많은 사람들이 블로그에 찾아오면서 흥미로운 일이 일어남
    • 코드 캠프나 행사에서 나를 알거나 내 블로그를 아는 사람들이 나타남
    • 인기 있는 팟캐스트에서 인터뷰 요청이 들어오기 시작
    • 헤드헌터들이 스팸이나 다름없는 이메일 말고 제대로 된 일자리를 제안하는 이메일을 보내오기 시작

가치 제공하기

  • 브랜딩을 위한 다양한 활동에는 한 가지 중요한 원칙이 있음
    • 다른 사람들에게 가치를 제공하는 것
  • 가치를 무료로 제공하면 더 좋고, 90%를 무료로 제공하고, 10%만 돈을 받는 전략을 세움
  • 다른 사람들의 인생에 도움이 되는 게 최고의 마케팅
    • 베푸는 사람으로 이름을 알리고
    • 주변에 있으면 혜택을 보는 것 같아서 자꾸 함께 어울리고 싶은 느낌이 드는 사람이 되어라
  • 다른 사람들이 원하는 것을 잘 얻도록 도와준다면 당신도 자신이 원하는 모든 것을 얻을 수 있을 것

시간이 든다

  • 블로그를 시작하고 한 1년 정도 글을 쓰다가 아무 성과 없이 그만두면 문제
    • 성공하고 싶다면 그보다 오래 버틸 각오가 되어 있어야 함
    • 2~3년이 걸릴 수도, 5년이 걸릴 수도
  • 끈기있게 노력하면 결국은 목적이에 도달할 것