기술적인 내용에서부터 인간관계, 회사생활에 이르기까지 비단 신입 개발자 뿐만아니라 선임 개발자들도 읽으면 좋을 만한 책이다.
책을 읽고나서 포스트잇을 붙여놓은 페이지가 여럿 된다. 기존에도 이런 부류의 책들은 몇 권 읽어본 적 있는데, 그 책들과 다른 점을 꼽자면, 다른 책들의 내용을 언급하며 독자들에게 추천해주는 것이다.
개인적으로 이 부분이 좋았다. Reference 가 많은 논문이 좋듯이 책도 마찬가지다. 이렇게 되면, 이 책 한 권만 읽고 그치는 것이 아니라 책에서 소개한 다른 책들을 찾아 읽어보게 된다. 이런 식으로 꼬리에 꼬리를 물고 릴레이(?) 독서가 시작되는 것이다.
읽기 전에는 '또 뻔한 얘기를 하겠지' 하는 선입견을 가지고 있었는데, 읽다보니 전혀 지루함을 느낄 수 없었다. 아마도 이건 저자의 능력인 것 같다.
오히려 처음에 가졌던 초심을 다시 한번 상기시키게 하는 계기가 된 것 같다.
언급한 대로 손가락이 기억할 수 있도록 반복 연습할 필요가 있다. 매주 하나씩 새로운 기능을 연습하라.
첫째, 콘솔에 “Hello World” 를 출력하는 프로그램은 만들지말자. 다음과 같은 프로그램을 만들어보자. 각 줄마다 정수가 있는 파일을 읽어 들여 최소, 최대, 평균 및 데이터 세트의 중간값을 출력하는 형식이어야 한다.
왜인가? 이 연습은 I/O 와 컬렉션 반복, 수식 등 여러 컴퓨팅 작업에서 공통적인 몇 가지 기본 원칙을 포함하고 있다.
핵심목표는 코드를 작성하게 하는 것뿐 아니라 해당 언어의 관용구로 프로그램을 작성하는데 있다.
두 번째 목표는 코드 작성을 테스트 주도 형식으로 진행하는 것이다. 가령 컬렉션의 중간값을 반환하는 함수가 필요할 것이다. 실제 함수를 작성하기 전에 샘플 테스트를 작성하라.
하나의 프로그램을 각기 다른 콘솔 인터페이스, 데스크탑 GUI, 웹이라는 플랫폼에서 구현해보자!
육체적인 스트레스 해결하기, 휴가를 가라.
지금 자신이 가진 기술의 마인드맵을 만들라. 프로그래밍 언어, 플랫폼, 도구 등이 있을 것이다. 맵의 일부 가지는 엉성해 보일 것이다. 자신에게 부족한 부분들을 확인하고, 향상시키기 위해 동기를 부여하고 그 부분을 향상시키기 위해 앞으로 6 개월간 전념하라.
자기 계발 자금으로 매달 일정 금액을 정해놓는다. 이것을 필요한 책, 소프트웨어 등 여러 참고 자료 구입에 쓸 수 있다. 그러면 새로운 무엇을 살 때가 되었을 때 한 번에 큰돈이 빠져나갈 걱정을 할 필요가 없다.
직장에서 사용하는 언어와는 다른 프로그래밍 언어를 연구하라. 회사에서 C++(정적 타입, 객체 지향)를 쓴다면 스킴(동적타입, 함수형)을, 루비라면 해스켈을 공부해보라.
책 한두 권을 사서 시간을 투자하고 뇌 근육을 훈련시켜라.
학구적 관점 : 대학원
다음과 같은 이유일 때만 대학원을 알아봐야 한다. 이 업계에서 휴식을 취하고자 할때, 교편을 잡고 싶을 때, 또는 연구를 하고 싶을 때, 학교 선택은 이러한 목표에 따른다.
단지 몇 년간의 휴식과 유용한 직업 명성을 얻으려면 MBA 는 괜찮은 선택이라고 할 수 있다. MBA 에서 업계 경험은 매우 도움이 된다. 학교를 까다롭게 선택하라.
가르치길 원한다면 공인된 박사 학위를 딸 수 있는 곳이라면 어디든 상관없다. 업계 경험이 연구할 과제를 잘 이해하는 데 매우 유용할 것이다.
영향력이 큰 연구가 목표라면 카네기 멜론, USC, 버클리, MIT 가 시작하기에 좋은 곳이다.