좋은 개발자란?
2023.04.29 GIST 해커톤에서 SOCAR CTO 유석문님의 강연을 정리한 글입니다.
What is a good developer
깔끔한 코드
적절한 논리력
Define the job-done point
- (고객의 시선에서) ATDD
- (개발자 시선에서) TDD
ATDD - discuss무엇을 만들것인가 논의, distill정제, develop개발, demo
TDD - Red, Green, Clean
리팩토링이란, 외부가 변하지 않고 내부가 간결하게 변하는것 따라서, 외부의 속성이 잘 돌아가는지 테스트 해볼 수 있는 리그레션 테스트 코드가 먼저 있어야 함. 리팩토링은 나중으로 미뤄서 한번에 하는 것이 아님.
좋은 개발
Don't Reinvent The Wheel
Simple Design
Evolutionary Design
Cooperative Design, Design Review
Benchmarking
좋은 개발자
공유하고 협업하는 사람.
공유를 하는 매우 현실적인 이유
주변이 똑똑해져야 내가 편함
- 사고를 수습하는 일이 줄어듬
- 중요한 일을 할 여유를 가질 수 있음
좋은 평판을 얻을 수 있음
주변의 덕을 볼 확률이 올라감
무엇을 공유해야 하는가
실패 경험
새로운 기술을 익혀보고 그 경험을
(기술적인) 성공
협업의 이유
사람을 이해하자.
타인을 바꾸는 것은 어렵다.
나의 재산을 다른사람들이 사용하지 못하게 하는 것처럼, 나의 감정도 다른사람들이 조종하지 못하게 해야 한다.
자기 자신의 주인이 되지 못하는 사람은 진정으로 자유로울 수 없다. - 에피테로스
인간은 현상이 아니라 현상에 대한 자신의 생각 때문에 불안해진다.
자존감 = 자기 능력감 (무엇인가 해낼 수 있다) + 자기 가치감(자신이 사랑 받을 가치가 있다)
자신이 완벽할 수 없음을 인정하고 타인의 부정적 견해에 크게 영향 받지 않아야 한다.
자기 자신을 알아야 한다.
조하리의 창.
자존감이 높으면 회복탄력성이 높다.
자존감 - 받아들이기
- 있는 그대로의 자신 받아들이기
- 통제할 수 있는 일을 통해 자신감을 회복하기 (청소, 운동 등)
- 자신과의 대화 (일기, 명상록 등의 회고)
- 실패는 끝이 아닌 과정임을 인지.
왜 화가 나는가?
인간은 합리적인 존재가 아니라 합리화하는 존재 - 페스팅거
스톡데일 페러독스
대니얼 카너먼? 노벨경제학상을 수상한 최초의 심리학자
비행조종사들에 대한 연구?
도서 생각에 관한 생각
인간의 의사결정 시스템
시스템 1(직관) 과 시스템 2(숙고)
피드백을 빨리 받을
Self Commitment
무슨 생각하면서 스트레칭을 하세요?
무슨 생각을 해,, 그냥 하는 거지
어쩔 수 없이 해야 하는 일을, 그 지루함을 견디는 능력을 지녀야 한다.
어떻게 기르는가? 나에게 맞는 방법을 찾아야 한다. 그러려면 나를 잘 이해해야 한다.
나는 참을성이 좋은 사람인가? 아니라면 보상을 많이 끼워넣어야 하는 것이다.