Skip to content

Latest commit

 

History

History
219 lines (154 loc) · 13.4 KB

growing-together-1.md

File metadata and controls

219 lines (154 loc) · 13.4 KB

[함께 자라기] 1장. 자라기

다음과 같은 질문들로 발전하자.

내가 정말 자랄 수 있을까? 우리가 정말 함께 자랄수 있을까? 우리가 정말 매일매일 함께 자랄수 있을까?

야생 학습의 특징

협력적, 비순차적, 자료의 한정이 없음, 명확한 평가가 없음, 정답이 없음, 목표가 불분명하며 바뀌기도 함.

  • 나는 현재 야생 학습을 하고 있는가?
  • 프로그래밍 학습이 야생 학습이라고 생각한다. 설계를 진행할때, 프로젝트를 하면서 팀원들과 협업을 할때 모두 정답이 없으며, 순서가 없는 것 같다.

경력과 실력의 상관관계

경력이 10년인 개발자가 2년인 개발자보다 더 우수하지 않았다. 경력과 생산성은 아무 상관관계가 없었다. 단, 언어를 접한 경험이 6개월 미만인 개발자들은 전반적으로 나머지 개발자들보다 성적이 저조했다

구조화된 인터뷰와, 삭제 작업을 해보도록 하는 작업 샘플 테스트, 그리고 가능하다면 실제 업무를 주고 시험적으로 짧은 기간 동안 일을 해보게 하는 것 등을 권합니다. 그리고 전체 구인 과정에서 실제로 함께 일할 사람들이 인터뷰에 참여하도록 하는 것을 강력히 권합니다.

  • 개발자를 입문하려고 하고 있는 시점에서 취업을 하고 경력을 얻게 된다면 취업에 대한 걱정이 사라지게 될거라고 생각을 했었습니다. 그러나 위의 글을 읽으면서 계속해서 나를 성장시켜나가는 작업이 필요하고 그것이 계속해서 관련 일을들을 학습해 나가는 것이 중요하다고 생각이 들게 되었습니다.

자기계발은 복리로 돌아온다.

그가 말하는 1만 시간 법칙에서 1만 시간은 '자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련'을 한 시간을 일컫습니다. 그런 수련을 그는 의도적 수련이라고 합니다. 그냥 경험이 아니고 매우 특수한 형태의 수련 방법입니다.

피드백을 짧은 주기로 얻는 것. 그리고 실수를 교정할 기회가 있는 것. 이 두 가지가 학습에 차이를 불러일으킵니다.

따라서 더 빨리 자라고 싶다면 1) 어떻게 이율을 높일 것인가와 2) 지속적으로 현명한 투자를 하려면 어떻게 할 것인가를 고민해야 합니다.

팀 연구의 최고 권위자였던 리처드 해크먼 교수에 따르면 일반적인 작업 그룹보다 팀이 더 효과성이 높다고 합니다. 그리고 조직의 효과성을 가장 잘 예측하는 변수는 동료 코칭이라고 합니다. 서로 업무적으로 도움을 주고 받는 걸 말하죠.

  • 아래에서 실수를 교정할 기회, 피드백 등 여러가지 학습에 대한 것이 나오게 되는데 저는 우아한테크코스 2기를 진행하면서 위에서 이야기 하는 피드백을 짧은 주기로 얻는 것 , 실수를 교정할 기회를 경험을 했습니다.
  • 피드백을 받을수 있는 기회는 충분히 만들 수 있다고 생각합니다.
  • 제가 지금 하고 있는 블로그 포스팅 스터디에서도 서로 쓴 글에 대해서 피드백을 받으면서 진행하고 있습니다.

성장 이율을 높이는 방법

자신이 이미 갖고 있는 것들을 잘 활용하라. 새로운 것을 유입시키는 것이 아니라 원래 가지고 있는 지식을 얼마나 어떻게 활용하는지 반성하라. 이미 갖고 있는 것들을 하이퍼링크로 서로 촘촘히 연결하라. 하나의 영역에서 다른 영역으로 왔다갔다하는 것을 자주 해서 다른 영역 간을 넘나들기가 수월해지도록 하라. 새로운 것이 들어오면 이미 갖고 있는 것들과 충돌을 시도하라. 현재 내가 하는 일이 차후에 밑거름이 될 수 있도록 하라.

  • 이미 갖고 있는 것은 무엇인가?
  • 새로운 것 중에 배우고 싶은게 무엇인가?
  • 이미 갖고 있는 것과 새로운 것 중에 충돌할 수 있는 것이 무엇일까?
  • 새로운 것을 배우기 전에 위의 3개의 질문을 생각하면서 선택해야 하는 것을 배웠습니다.

외부 물질을 체화하라. 주기적인 외부 자극을 받아라. 단, 외부 자극을 받으면 그걸 재빨리 자기화해야 한다. 외부 물질 유입 이후 생긴 내부의 갈등을 해결하려는 데 노력을 기울여라.

  • 외부 자극을 받을 수 있는 방법이 무엇이 있을까?
  • 외부 자극이라는 것이 성장할 수 있는 환경을 만들 수 있는 방법 중 하나라고 생각합니다.

자신을 개선하는 프로세스에 대해 생각해보라. 작업을 되돌아 보는 회고 / 반성 활동을 주기적으로 하는 프로세스를 만들어라. 나를 개선하는 과정을 어떻게 하면 개선할 수 있는지 고민하라.

  • 주기적인 회고, 반성 활동을 어떻게 진행하면 좋을까?

피드백을 자주 받아라 사이클 타임을 줄여라. 새로운 정보를 얻었다면 1년 후에 크고 완벽한 실험을 하려고 준비하기보다는 1달, 혹은 1주 후에 작게라도 실험해 보는것이 좋다. 순환율을 높여라. 일찍, 그리고 자주 실패하라. 실패에서 학습하라.

  • 여기까지 책에서 가장 인상 깊었던 부분이 일찍, 그리고 자주 실패하라. 실패에서 학습하라 입니다.
  • 저는 짧은 기간동안 많은 프로젝트를 진행하고 또 지금도 하면서 계속해서 성공을 하는 부분은 다음 프로젝트에서 적용하고 실패하는 부분은 고민하여 다음 프로젝트에서는 다른 방법으로(실패하지 않는 방법) 적용시키려고 합니다.

자신의 능력을 높여주는 도구와 환경을 점진적으로 만들어라. 중요한건 완벽한 도구와 환경을 갖추는 데에 집착해서는 안된다.

  • 내 능력을 높여주는 도구와 환경이 무엇이 있을까?

실행 프레임 vs 학습 프레임

여기에서 말하는 실행 프레임은 사람들이 현재 주어진 과업이 뭔가 좋은 성과를 내는 걸로 생각하는 틀을 말합니다. 학습 프레임은 현재 주어진 과업이 내가 얼마나 배우느냐로 여기게 되는 틀을 말합니다. 실행 프레임은 여러분의 목표가 학습을 통한 성장이라면 불리한 선택입니다.

  • 내가 지금 하고 있는 일들에서 무엇을 배울 수 있을지, 또한 회고와 반성을 통해서 무엇을 배웠는지 천천히 정리해 나가자.

학습하기 힘든 환경과 주제

목표가 모호하고 주관적일 수 있으며 동적이다. 과거의 선택과 결과에 대한 구조화된 기록이 별로 없다. 주로 열린 시스템 속에서 일한다. 매 순간 내가 목표에 얼마나 근접했는지를 알기 어렵다. 매 순간 선택할 수 있는 행동/선택의 종류가 불확실하다.

컴퓨터로 대체되기 힘든 일

독창성, 사회적 민감성, 협상, 설득, 타인을 돕고 돌보기

전문성을 올리기 위한 방법

자신이 주로 하는 일이 남이 시킨 대로 혼자 프로그램을 만드는 것이라면 그런 스킬과 경력만 계속 쌓일 것입니다.

10년 넘게 해온 것 중에 전문성의 변화가 거의 없는 이유 동기가 부족하다. 피드백을 제때 받지 못한다.

꾸준한 반복으로 달인이 되려면 적어도 실력을 개선하려는 동기가 있어야 하고 구체적인 피드백을 적절한 시기에 받아야 한다.

전문성을 올리기 위한 방법 타당성 피드백

  • 내가 생각하는 프로그래밍적으로 전문성을 올릴 수 있는 방법이 무엇이 있을까?
    • 토이 프로젝트
    • 스터디 (피드백이 존재하는) → 현재 내가 하고있는 블로그 포스팅

의도적 수련의 필수 조건 동기, 피드백, 적절한 난이도

의도적 수련을 위한 난이도와 실력 조절

난이도 실력과 난이도가 비슷할때 몰입을 한다. i(실력) = i + 1(난이도)

  • 난이도
    • 실력과 난이도가 비슷할때 몰입을 한다.
    • i(실력) = i + 1(난이도)

지루함을 느끼는 경우 실력을 낮추기 제약을 건다. 난이도를 올린다. 리팩토링, 자동화 테스트, 나만의 도구를 만들기 자주 일어나는 반복 패턴을 파악하고 분석하여 부족한 시간에 짬을 내어 도구를 고안하고 작성

불안함을 느끼는 경우 (현재 내상태) 실력을 높이기 사회적 접근 나보다 뛰어난 전문가의 도움 도구적 접근 디버거, 자동 통합 도구, 코드 분석 툴, 오픈소스 라이브러리 내관적 접근 비슷한 일을 했던 경험을 되살려 보기 난이도 낮추기 자신이 맡은 일의 가장 간단하면서 핵심적인 결과물을 목표 What's The Simplest Thing That Could Possibly Work? 동작하는 쓰레기 코드 작성 자동차부터 발명하려고 하지말고 바퀴부터 발명하자.

새로운 언어를 효과적으로 배우는 비결

튜토리얼을 읽을 때 뭘 만들지 생각하고 읽는다 공부할 때 표준 라이브러리 소스코드를 읽는다. 공부 중 다른 사람의 코드에 내가 필요한 기능을 추가한다.

  • 새로운 언어를 효과적으로 배우는 비결에서 우아한테크코스에서 했던 미션들이 생각이 났다.
  • 지금까지 프로그래밍을 배우면서 미션 기반으로 공부하는 방법이 나에게는 너무 잘 맞았다.
  • 다음 새로운 언어를 배울때도 새로운 미션들을 만들어 나가면서 언어를 배우고 싶다.

전문성을 효과적으로 뽑아내는 전문가가 되기

프로그래밍 언어를 빨리 배우는 비결이 무엇인가요? 라고 묻는것은 좋지않다. 구체적인 사건에 대해 말하도록 유도하는 것이 좋다. 이미 잘하는 사람을 관찰하고 인터뷰하는 것부터 시작하는 것이 큰 도움이 된다.

  • 대답을 유도하는 스킬은 굉장히 중요한 것 같다.

실수는 예방하는 것이 아니라 관리하는 것이다.

실수 예방 실수 경로 차단 불가능에 가까움 실수 관리 실수를 조기에 발견하고 빠른 조치 이미 결과가 난 실수에 대해서는 학습을 통해 다음 행동할 때 이렇게 하자는 계획을 세움

  • 많은 이야기 중에 실수에서 많은 걸 배울 수 있다고 한다.
  • 나 또한 실수, 실패에서 많은걸 배워나갔으며 실수를 최소한으로 하거나, 실수나 실패를 한 뒤에 빠른 조치를 하려고 내 자신을 성장시키고 있다.
  • 블로그를 하면서 실수, 실패가 있을 떄 어떻게 하면 빠르게 대처할 수 있을지를 정리해놓는 것도 좋을 것 같다.
  • 이 글을 읽었을 때는 우아한형제들의 실패 문화에 대해서 생각이 났다.
  • 실패에 대해 누구를 탓하기 보다는, 실패한 이유를 분석하고 실패한 팀만 그 부분을 공유하는 것이 아니라 구성원 전체가 발표를 통해 실패한 이유와, 실패를 어떻게 대처해 나갔는지에 대해 발표를 진행한다고 한다.
  • 나 자신도 실수를 탓하지 않고 어떻게 조치를 해 나갔는지, 관리를 해 나가는지에 대해 꾸준히 정리해 나가야는 것이 중요하다고 생각한다.

뛰어난 선생에 대한 미신

전문가가 가르쳐주는 것은 전부가 아니다.

  • 이 글을 읽었을 때, 권위에 굴복하지 말자 라는 문장이 생각났다.
  • 아울러 스승도, 제자도 서로 메타인지를 가지고 학습을 해 나가야 하는것이 중요하다는 걸 느꼈다.

나홀로 전문가에 대한 미신

아무리 기술적인 실천법이라고 해도 그 기술은 사회적 맥락속에서 실천되어야 하며 그 기술의 성공을 위해서는 사회적 자본과 사회적 기술이 함께 필요하다. 어떤 기술적 실천법이라도 그걸 현실에서 적용하기 위해서는 사회적 자본과 기술이 필요하다. 신뢰가 깨어져 있는 상태에서는 어떤 행동을 해도 악의적으로 보인다. 뛰어난 소프트웨어 개발자일수록 타인과 인터랙션에 더 많은 시간을 쓰며, 초보 개발자들에게 조언을 할 때 사회적인 측면이 포함된다. 뛰어난 개발자들은 약 70%가 동료와의 협력을 언급하는 반면, 실력이 그저 그런 개발자들은 20%도 안 되는 사람들만이 동료와의 협력을 언급했다.

결론

  • 1장을 읽으면서 가장 인상 깊었던 문구들만 뽑아보겠다.
피드백을 짧은 주기로 받을 수 있는 것, 실수를 교정할 수 있는 기회는 본인이 전문가가 되기 위해서는 굉장히 중요하다.
피드백을 짧은 주기로 받을 수 있는 환경을 만들어라.
자신이 이미 갖고 있는 것들을 활용하라.
일찍, 그리고 자주 실패하라. 실패에서 학습하라.
실력과 난이도가 비슷할때 몰입을 한다.
i(실력) = i + 1(난이도)
실수는 예방하는 것이 아니라 관리하는 것이다.
  • 이번 장에서는 혼자 성장을 극대화 할 수 있는 방법을 배웠으며, 이 책을 읽어 나가면서 나만의 학습 방법에 대해서 반성을 많이 하게 되었습니다.
  • 이 책에서 배운 방법들을 어떻게 하면 나의 학습으로 이어나갈 수 있을지 계속해서 고민해야 될거 같습니다.

책 정보

[전자책] 함께 자라기