Linux Kernel(4.19) Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

790223
1016
122606


[IT] "뛰어난 소프트웨어 개발자"가 되기 위해 현실적 목표를 정하는 방법 임베디드 에세이

   "난 뛰어난 개발자가 되겠어!" 
   "난 높은 연봉(Highest Paid)을 받는 개발자가 되겠어!"

이런 목표를 잡은 분이 있나요? 아마 위와 유사한 목표를 설정한 분이 있을 것이라 생각합니다.
사람들은 다들 목표를 달성하려고 시간을 투자합니다. 조금 진지하게 말하자면 목표는 살아가는 방향을 제시하기도 하죠. "난 뛰어난 개발자가 되겠어!" 란 목표를 설정한 분은 아마 주말에 코딩 훈련이나 다른 개발자가 작성한 코드를 분석할 확률이 높겠죠.

   "그런데 위에서 잡은 목표는 ***잘못된*** 목표입니다."

단기적이고 손에 잡히는 목표를 설정하자

어라? ' "난 뛰어난 개발자가 되겠어!"와 같은 목표가 뭐가 잘못된 거지? '라고 저에게 반문을 할 수도 있을 것 같습니다. 하지만 위에서 든 목표는 자신이 언제 어떻게 달성할 수 있는지에 대한 지표가 없습니다. 예를 들면 "난 뛰어난 개발자가 되겠어!"란 목표는 내가 뛰어난 개발자가 되기 위해 무엇을 어떻게 할지에 대한 구체적인 행동 지침이 없다는 것입니다. 

또한 목표는 하루 혹은 이틀 단위로 단기로 설정하는 것이 좋습니다. 그래야 자신이 잡았던 목표를 달성했는지 스스로 체크할 수 있습니다. 목표를 1주일, 1달 단위로 설정하면 스스로 뭐가 나태해진다는 느낌을 받기 쉽습니다.

이 부분을 읽는 분은 다음과 같은 질문이 자연스럽게 생길 겁니다.

   "그렇다면 어떤 목표를 잡는 것이 좋을까?

구체적인 목표를 잡아보기

그렇다면 다음과 같은 목표를 잡는 것은 어떨까요?

   "난 이틀에 한 개씩 알고리즘을 코드로 작성해 보겠어."
   "난 하루에 2개씩 다른 개발자가 작성한 버그 수정 패치를 분석해서 블로그에 포스팅을 하겠어!"  
   "난 이틀에 한 개씩 다른 개발자의 버그를 수정하는 패치를 생성해 노트에 올리겠어!"

조금 더 구체적이지 않나요? 위에서 설정한 목표에서 되도록이면 이틀을 하루로 바꾸는 것이 좋습니다. 그리고 결과물은 반드시 '패치', '코드', '분석 내용이 담긴 글'이나 '비디오'나 무엇이든 나중에 스스로 확인할 수 있는 형태이어야 합니다.

도전적이면서 구체적인 목표를 잡아보기

하지만 달성하고 싶은 목표가 구체적이긴 하지만 뭐가 이루기 어렵고 부담감을 줄 수도 있습니다. 그래서 하루 이틀 단위로 목표를 잡기 어렵습니다. 이번에는 다른 목표를 예시로 들어볼까요?

   "난 한 달 안에 리눅스 커널 컨트리뷰션(Contribution)을 10개 하겠어."

자, 목표가 조금 더 구체적입니다. 마감일은 1달이고 '리눅스 커널 컨트리뷰션(Contribution)' 이라는 정확한 결과물이 있습니다. 하지만 이런 목표를 설정했을 때 조금 부담감이 느껴집니다. 그 이유는 무엇일까요?

   "난 한 번도 리눅스 커널 컨트리뷰션(Contribution)을 해 본적이 없어!"

한 번도 시도하거나 달성한 적이 없는 목표이니 부담감을 느끼지 않을 수 없습니다. 자신이 한 번도 해본 적이 없으니 말이죠. 그렇다면 다음과 같은 목표를 설정하는 것은 어떨까요?

   "난 한 달 안에 리눅스 커널 컨트리뷰션(Contribution)을 50개를 거절당해 보겠어!"

목표가 조금은 달라졌습니다. 하지만 목표의 마감일과 분명한 결과물이 있습니다. 마감일은 1달이고 '리눅스 커널 컨트리뷰션(Contribution)을 50개'를 거절 당하면 그 내용(메일링 리스트 서버)을 확인할 수 있을 것입니다. 즉 분명한 행동 지침과 마감일 그리고 결과물이 있습니다.

이런 목표를 설정하는 사람은 저였습니다. 맞습니다. 한 달에 50개의 커널 패치를 거절 당해 보겠다는 목표를 잡았습니다. '제 목표를 달성하기 위해 저의 패치를 거절해주신 리눅스 커널의 메인테이너 분들께 감사를 드립니다.'

여기까지 제 글을 읽은 분은 다음과 같은 의문이 생길 겁니다.

   "한 달 안에 정말 리눅스 커널 컨트리뷰션(Contribution)을 50개나 거절 당했나요?"

이 질문에 답해 드리겠습니다.
   
   "50개는 아니고 단 5개 정도 거절을 당했습니다." 
   "그런데 1달에 11개의 리눅스 커널 컨트리뷰션을 하게 됐습니다."

   (출처)

물론 저는 단기 목표를 다음과 같이 잡긴 했습니다.

   "하루에 5개 씩 리눅스 커널 패치를 분석하고 직접 코딩을 한 후 블로그에 포스팅하기"
   "리눅스 커널 메일링 리스트를 하루에 10개 씩 분석하고 분석 내용을 블로그에 포스팅하기"
 
하지만 다음과 같이 데드라인과 결과물이 분명하지만 부담감을 느끼지 않을 만한 목표를 잡았기 때문에 이런 성과(?)를 달성했다고 생각합니다.

   "난 한 달 안에 리눅스 커널 컨트리뷰션(Contribution)을 50개를 거절당해 보겠어!" 

다양한 목표를 잡기

위에서 든 목표는 소프트웨어 개발자가 잡을 만한 내용입니다. 하지만 목표는 개인의 성향에 따라 달리 잡을 수 있습니다. 예를 들어 볼까요?

   "난 하루에 30분 씩 조깅을 하고 푸시업을 100개씩 하겠어.."
   "난 하루에 15분 씩 영어 말하기 연습을 하겠다."
   "난 하루에 워드 A4 용지 기준으로 2페이지 씩 글을 쓰겠다."

뭔가 우리가 달성하고 싶은 무엇인가가 있다면 이렇게 현실적인 목표를 잡는 것입니다.

결론

목표는 무엇이든 다음과 같은 기준을 잡는 것이 좋습니다. 

   "단기간에 자신이 시도할 수 있다." 
   "구체적으로 자신이 할 수 있다."
   "마감일은 하루 혹은 이틀이다."
   "명확한 결과물이 있다."
   "부담감을 느끼는 목표라면 실패를 달성 지표로 잡자."

가장 중요한 것은 '무엇인가 하는 행위'입니다.
아무것도 안하고 가만히 앉아 있으면 우리의 미래는 절대 바뀌지 않습니다.

"혹시 궁금한 점이 있으면 댓글로 질문 남겨주세요. 아는 한 성실히 답변 올려드리겠습니다!" 

Posted-by: austindh.kim@gmail.com, 2019/11/17 09:02

덧글

  • 타마 2019/11/18 10:02 # 답글

    좋은글 감사합니다 ㅎㅎ
  • AustinKim 2019/11/18 10:33 #

    응원해 주셔서 감사합니다. 즐거운 한 주 되세요.
  • 타마 2019/11/18 11:50 #

    월요일 부터 즐거운 한 주라니... 어려운 미션을 주시네요 ㅋㅋㅋ
댓글 입력 영역