연습하라. 어떤 기술이든 발전시키려면 시간이 든다. 무엇이든 잘하려면 연습을 많이 해야 한다. 시간이 너오래 걸리는 것 같아도 답답해하지 마라. 특히 발전이 정체되고 있다고 느낄 때 조심해야 한다. 확실한 계획과 명확한 목표를 따라가는 한 기술은 분명발전할 것이다. 꾸준히 해나가는 데 의의가 있으니 그저 끈기 있게 정진하라.
좋은 광고가 최대한 짧은 시간에 구매로 이어지듯이 좋은 이력서도 최대한 짧은 시간 안에 면접으로 이어진다. 그러므로 이력서는 1페이지로 작성하라.
이 말은 이력서가 간결하게 핵심을 보여줘야 한다는 뜻이다.
저는 능동적인 사람입니다. 해야 할 일이 무엇인지 스스로 파악하고 실행합니다.
영국의 전 총리 벤자민 디즈레일리Benjamin Disraeli는 이런 명언을 남겼다. "불평하지도 설명하지도 마라.” 나는 이 조언이 퇴사하는 사람에게 딱 맞는 말이라고 생각한다.
하지 마라. 해서 좋을 게 하나도 없고 해가 될 가능성은 잔뜩이다.
어떤 방법론을 선택하느냐보다 반복 가능한 프로세스를 갖췄느냐가 중요하다.
애자일 방식으로 소프트웨어를 개발할 때처럼 테스트 절차를 더 작은 단계로 나누어서 줄여야 한다.
소프트웨어 개발에는 "You Ain't Going to Need It(나중에도 필요하지 않을 거야)." 이라는 말을 줄여서 만든 'YAGNI'라는 원칙이 있다. TDD는 YAGNI 원칙을 지킬 수 있게 해준다.
소프트웨어를 빌드하고 이를 배포하기 위해 테스트하고 패키징하는 과정은 느리고 고통스럽고 따분한 데다 에러도 많이 난다. 그런데 지속적 통합은 이 과정을 자동화해준다.
빠른 피드백을 제공한다.
그 문제가 왜 고쳐졌는지 이해하지 못하면 아직 문제를 다 고친 게 아니다.
• 로버트 마틴의 Clean Code
• 스티브 맥코넬의 Code Complete
가독성 좋은 훌륭한 코드의 구성 요소, 코드를 작성하고 구조화하는 기본적인 방법을 익힐 수 있다. 두 권 모두 강력히 추천한다.
• 마이클 페더스(Michael Feathers)의 '레거시 코드 활용 전략(Working Effectively With Legacy Code)'
• 마틴 파울러(Martin Fowler)의 '리팩토링(Refactoring)'
본인이 할 일만 신경 써라.
상사는 부하 직원이 얼마나 좋은 성과를 내느냐, 직원들의 활동을 얼마나 잘 관리하고 보고하느냐를 기준으로 평가받는다.
주변 사람을 더욱 훌륭하게 만들어서 팀 전체의 능력을 신장시키는 개발자야말로 진정 훌륭한 개발자다.
소통 능력은 시간과 노력을 들여서 키울 가치가 있다. 말과 글, 둘 다 마찬가지다.
이해 못하는 아이디어에 설득되는 사람은 없다
자신이 어떻게 목표를 향해 진전하고 있는지 상사에게 이야기하라.
그리고 나눈 대화를 기록하라.
모든 걸 기록하라. 특히 자신의 발전 현황을 빠짐없이 기록하라.
자신과 다른 사람들로 이루어진 무리에 끼어서 어울리고 그들과 대화하고 소통하라.
본보기를 보이려면 때로는 '자신의 수준에 미치지 못하는' 일도 해야 한다. 상아탑에 틀어박혀서 부대원들에게 말로만 명령하는 '리더'가 너무 많다. 본을 보여서 사람들을 이끄는 진정한 리더가 되려면 기꺼이 앞에 나서서 전투를 이끌 마음의 준비가 되어 있어야 한다.
리더는 자신의 실수뿐 아니라 팀원 전원의 실수까지도 책임져야 한다. 문제가 생겼을 때는 자신이 책임을 지고, 성공을 거뒀을 때는 모든 공을 팀 전체와 나누는 리더가 훌륭한 리더다.
리더 역할을 제대로 하려면 다른 이들에게 업무를 위임할 줄 알아야 한다.
위임과 포기는 완전히 다른 말이다.
연봉 인상을 받고 싶다면 승진을 하고 싶다면 자신에게 주어진 일보다 훨씬 더 많은 일을 해야 한다.
자신에게 요구된 것 이상을 습관적으로 더 많이 해야만 발전할 수 있다.
- 게리 라이언 블레어
다른 사람들이 원하는 걸 얻도록 도와준다면 당신도 자신이 원하는 모든 것을 얻을 수 있을 것이다.
지그 지글러, 클로징
적어도 한 영역에 있어서만큼은 깊이 있는 지식을 쌓는 게 좋다.
프리젠테이션 젠
데일 카네기의 표현력 강의
"말할 내용을 말하기 전에 말하고 말할 때 말하고 말한 후에 말하라.”
• 메시지 반복의 중요성을 역설한 윈스턴 처칠의 명언이다.
장기적으로 볼 때 다른 어떤 요소보다 일관성이 중요하다
소프트웨어 개발자 한 명으로 할 수 있는 일은 그리 많지 않다.
독학에 비해 훨씬 짧은 기간 내에 많은 양의 정보와 경험을 흡수할 수 있게 해주는 교육이 가장 가치 있는 교육이다.