////
Search
Duplicate
4️⃣

4. 나의 메이저 버전을 업그레이드 하는 마이너 원칙들

v0.1.0 두리번거리면서 속력과 방향을 자주 확인하기

: 성장을 목표로 한다면 먼저 방향과 나만의 속력을 알야아 한다. 낯선 목적지를 찾아갈 때 방향을 정확하게 인지하지 못하면 일직선으로 나아가는 것이 불가능하다.
: 배워야할 지식에 투자하는 시간을, 현재 업무와 관련된 것에 50%, 앞으로 관련될 것에 30%, 관련 없지만 관심 있는 것에 20% 정도 투자하라.
: 개발자에게 성장은 멈춰있는 장소가 아닌, 움직이는 사냥감과 같다, 두리번거리면서 준비하다보면 회사 업무가 나와 상관없이 변화하더라도 기회가 될 것이다.
: 한계 속력에 다다르면 실수를 하기 마련이다. 평소에 꾸준하게 성장하는 것이 실수를 방지하는 방법

지속적으로 공부하며 탐색하라, 속도를 유지하면서 사냥감을 향해 꾸준하게 나아가라

v0.2.0 낯선 방식으로 해결하기

: ‘나만의 속도’는 ‘메타 인지’라는 용어와 맞닿아 있다. 나에게 적합한 식사 속도, 독서 속도 등을 인지하는 것은 어려운 일이다.
: 어떻게 ‘나만의 속도’를 인지할 수 있을까? 방법은 낯선 방식으로 해결하기다.
: 내가 안다고 느낄때, 전체를 다 알고 있는 것이 아니다. 일부분만 알고 있는 것, 그렇기 때문에 알고 있다고 ‘착각’하는 것을 설명할 때, 실제로 알고 있는 범위에서만 설명하는 것
이는 정확하게 ‘알고 있다’의 정의와는 다르다. 심리학자들은 이럴 때, 확증 편향과 지식 착각이 발생한다고 한다.
: 어떤 대상이 물어봤더라도 이해하기 쉽게 설명할 수 있어야 진정으로 아는 것이다.
: 의도적으로 낯선 방식을 선택해보아라, 프로그래밍 언어나 개발 환경에 제약사항을 추가해보자, 익숙한 것을 반복하면 더 오래 기억할 수 있게 되지만 성장하지 못한다.
: 내가 익숙하게 풀었던 문제나 코드를 새로 익히는 언어로 풀어보는 것도 좋다. 새로운 언어가 아니라면 클래스를 작성할 때, 10줄 이하로 작성해보자
: 익숙한 통합 개발 환경 대신에 터미널에서 CLI 명령만으로 빌드를 직접해보는 것도 좋다. 마우스 없이 키보드 단축키 쓰기에 도전해보자

익숙한 방법은 강한 연결고리를 만들어주지만 도태되게 만든다. 새로운 방법을 시도해보라, 익숙치 않은 방법으로

v0.3.0 개구리를 해부하지 말고 직접 만들기

: 이론적으로 배우고 있는 것들을 직접 만들어봐라 운영체제에 대해 배운다면 운영체제라고 부를 수 있을만한걸 직접 만들어보라
: 수업시간에 이론적으로 배운 지식들을 기획하고 설계하여 직접 구현하는 것은 쉽지 않은 일이다. 구현 범위가 모호하고 실패할 가능성이 높아 시도하지 않게 된다. 끝까지 해낼 수 있는 하나의 팁은 일단 함수 하나를 만들어보는 것, 여기에 입력, 출력을 바꿔보고 화면을 추가하는 식으로 점차 확장시켜나가라
: 실무에서도 개구리를 해부할 일이 생긴다. 새로운 라이브러리를 도입할 때, 다른 사람이 작성한 코드를 리뷰하는 일, 모두가 개구를 해부하는 일, 이때 나는 어떻게 했을지 띵킹

어떤 코드를 분석하거나 사용할 일이 생겼을 때, 이를 가만히 두고 분석하기보다 직접 써봐라, 직접 해보란 말

v0.4.0 남을 향한 자존심을 버리고 나를 향한 자존감을 채우자

: 나보다 뛰어난 누군가는 항상 존재한다. 그런 그들과 나를 비교하지 말자, 괴롭기만 하고 절대 좋은 방법이 아니다. 오히려 나의 장점에 집중하자
: 비교하는 대상을 남으로 하지마라, 그 방향을 내게 향하도록 하자 하루 이틀 전에 작성한 코드를 개선할 점을 찾을 수 있다면, 내가 성장하고 있다는 것
: 다른 사람 피드백에 흔들리지 말고, 나에게 집중해서 나에게 맞는 방법으로 성취감을 얻어가자, 일희일비하지 말고 칭찬에는 겸손하고 비난에는 나를 돌아보자

나에게 집중하자, 나만의 방법을 찾아라, 누군가의 피드백에 의존하지 말자

우리 모두는 사람이라는 인터페이스를 따르는 독립된 객체랄까나..

v0.5.0 결과를 향하면서 과정을 기록하기

: 소프트웨어 개발은 결과적으로 문제를 해결하는 코드를 만드는 것, 코드를 만들지 못하면 실패한 것으로 생각하는 경향이 있다. 하지만 아니다. 과정이 중요, 과정을 기록하자
: 코딩테스트처럼 주어진 시간에 빠르게 동작하는 정답을 찾기보다 시야를 넓게 해서 다양한 기준에서 과정을 자주 되돌아볼 줄 알아야 한다. 스스로 어디를 향하고 있는지를 계속 되묻자, 그리고선 방향이 바뀔 때마다 과정을 기록해보자, 결과만 있는 기록과 다르게 과정을 기록하면 자신을 되돌아볼 때 도움이 된다.

빠르게 정답을 찾으려고 분주하기보다 내가 지금 어디로 가고 있는지, 뭘하고 있는지, 여정을 기록해보자

v0.6.1 의도한 실수를 반복하면서 작은 부분을 개선하기

: 어떤 익숙치 않은 새로운 것을 배울 때, 의도적으로 실수해보며 확인해보라 실수를 통해 새로운 것을 더 깊게 이해할 수 있다.
: 실수를 통해 반복적으로 사소한 것을 체킹할 수 있게 되었다면 이를 방지하기 위해 어떠한 작업을 할 수 있다. 폰트를 설정하거나 색을 변경하거나 등을 활용해보자.

실수를 두려워하지 마라, 실수가 전혀 없을 순 없지만 이것이 릴리즈에 반영되어서는 안 된다.

실수할 수 있다고 가정하고 이를 릴리즈 전에 발견할 수 있계 체계화하자

v0.7.0 기준을 정하기 전에 여러 답을 찾아서 공유하기

: 해결책을 여러 개 마련해라, 모든 상황에서 완벽한 단 한 가지 방법은 과학자나 수학자들에게만 허락된 것, 소프트웨어 엔지니어는 더 다양하고 유연한 해결 방법을 만들 수 있다.
: ‘소프트’웨어니까! 익숙한 환경에서 모든 것을 해결하려고 들면 사고의 폭이 좁아진다. 도태된다는 것, 기준이 달라지면 소프트웨어 설계나 운영 방식이 달라질 수 있다.
: 코드 리뷰나 설계 리뷰처럼 다른 사람들의 의견을 듣는 것도 좋다. 함께 실험해보거나 서로 납득할 수 있는 기준을 정해보자
: 개구리를 만들때, 개구리가 아닌 두꺼비를 만들었더라도 만든 과정이 중요하다. 이를 기록하는 것은 매우 중요하다. 하지만 이를 공유하는 것은 굉장히 중요하다.
: 그것이 우리를 성장하게 만든다. 커뮤니티에 가입할 때, 답을 찾기 위해 가입하는가, 해보고 싶은게 있어 스스로 성장하려 가입하는가

다른 사람에게 영향을 주며 성장하는 개발자가 되어보자

v1.0.0 배포하기 그리고 다음 버전 준비하기

: 7가지 마이너 원칙을 하나씩 완성시켜나가다 보면 나의 메이저 버전을 릴리즈할 때가 된다.
: 개발자의 성장은 묵묵히 혼자하기보다 비슷한 고민을 하는 동료가 함께 하는 것이 좋다.

: 어제의 나와 일주일 전의 나를 비교해가며 자존감을 높여보자

: 큰 목표를 작게 나눠 작은 목표로 구분하여 공부하자

: 같이 걸어가는 옆의 친구도 혼자는 외로울테니 서로 잘한다고 인정해주자