목록프로그래머의 길, 멘토에게 묻다 (6)
끄적끄적
실패하는 법을 배워라 실천방안프로그래밍 언어를 하나 선택간단한 텍스트 편집기를 써서 이진 탐색 알고리즘 구현해보라컴파일 실행x테스트 코드 작성여기서 발견한 버그와 문제점 모두 기록코드와 테스트 모두 완벽할 때까지 수정최종적으로 컴파일하고 테스트여기서 찾은 버그와 문제점을 잘 알고 왜 발생했는지 생각해보라
소스를 활용하라 문제공부하고 모방할 좋은 사례가 없다면 연습, 연습, 또 연습 패턴은 나쁜 습관을 더욱 굳히게 됨해결책다른 사람들의 코드를 찾아서 읽어라소스트리 구조 의도 알고리즘 살펴보고 리팩토링 해보고프로그래머 테스트하는 가장 좋은 방법은 30장 정도의 코드를 주고 얼마나 빨리 이해하는지 보는 것 - 빌 게이츠 실천방안알고리즘이 복잡한 오픈소스 프로젝트 하나 골라라Git 같은거소스 보면서 생소한 알고리즘이나 자료구조, 설계사상 같은 것 기록해라그 프로젝트의 구조를 기술하면서 새로 알게 된 아이디어들에 강조점을 둔 블로그 포스트를 써라당신의 일상적인 작업에 그런 아이디어가 적용될 만한 곳이 있는가?
연습, 연습, 또 연습 상황지금 하는 일에 더 능숙해지고 싶다새로운 분야에서 구체적인 기술을 개발하고자 한다. 문제당신의 일상적인 프로그래밍 환경에는 실수해 가면서 배울 만한 여지가 없으며, 늘 무대 위에 서 있는 것 같다. 해결책실수해도 되는 마음 편한 환경에서, 방해 받지 않고 기예를 연마할 시간을 확보하라업무 중에 연습은 실수를 하게 되는 원인. 연습 시간이 필요하다.코드 카타 - http://codekata.com핵심 요소는 스트레스 없고 쾌활한 분위기에서 소프트웨어를 개발 할 수 있는 시간을 스스로 개척해 가는 것짧은 피드백 루프를 같이 짜 넣을 필요가 있다.생각하는 프로그래밍(책) 실천 방안문제 하나를 골라 풀어라. 난이도는 자기가 쉽게 풀 수 있는 정도보다 약간 더 어렵게그 후 다음 4주 동..
프로그래머의 길, 멘토에게 묻다 - (3) 능력의 폭을 넓혀라 - 문제 => 소프트웨어 개발에 대한 당신의 이해는 협소하며, 그마저도 일상 업무와 연관된 저수준의 세부사항에 너무 집중되어 있다. - 해결책 => 빨대로 마시지 말고 '정보의 소방 호스'로부터 들이켜라 => 오프라인 모임 => 커뮤니티 사이트 => 오픈소스 프로젝트 => 컨퍼런스 => 신기술에 들떠 있는 로컬 유저 그룹 => 온라인 대학 강좌, 팟캐스트, TED 등의 동영상 - 언젠가는 결국 프로젝트 작업에 집중하기 위해 소방호스를 꺼야 할 때가 옴- 견습과정 중에는 적어도 한 번은 꼭 활용해야 함 - 숙련공과 마스터들은 이 패턴으로 경력, 장인정신을 진일보시킬 기회이며 새로운 기술 분야에 진입하고자 할 때 이 패턴 활용
프로그래머의 길, 멘토에게 묻다 - (2) 예술보다 기예 - 프로그래밍은 일종의 공예 - 공예란 예술의 일종이긴 하지만 순수 예술이 아닌 쓸모 있는 물건을 만드는 작업 - 예술적 표현에 탐닉하기보다는 다른 이들의 필요를 충족시키는 무언가를 만드는 것이 먼저다. - 우리가 고객을 위해 만드는 그 무엇인가가 아름다울 수는 있겠지만, 반드시 쓸모 있어야 한다. - 스스로 만족하기 위해서가 아니라 현실 사람들이 당면한 현실적인 문제와 씨름할 때 기량은 연마되는 것이다. - 물론 일정 수준 이상의 품질은 갖춰야 한다. 실천 방안 - 앞으로 24시간 동안, 무언가 아름답기보다는 유용한 일거리를 찾아보라. - 다소 미묘한 타협이 필요한 일이 될 수도 있다.
구체적인 기술- 우러러보는 역량을 가진 사람들의 이력서를 모아 - 그 중 대표적인 역량 5가지 뽑고- 그 역량이 지금 들어가고 싶은 팀(or 지금 속해 있는 팀)과 유사한 환경에서 쓸모있을지 판단- 그 기술을 습득했음을 보일 수 있는 토이프로젝트에 대한 계획을 세우고 실행 무지를 드러내라- 업무에 관해 정말로 이해되지 않는 것 다섯 가지를 적어라- 그 목록을 다른 사람들이 볼 수 있는 곳에 붙여 두어라- 업무가 바뀔 때마다 그 목록을 갱신하라 무지에 맞서라- 무지를 드러내라에서 작성한 목록들에 대해 학습하도록 노력- 학습이 완료되면 목록에서 삭제