본문 바로가기

분류 전체보기

(333)
끊임없는 학습 - 프로그래머의 길, 멘토에게 묻다 드디어 마지막 패턴. 이번에 읽은 챕터는 '끊임없는 학습'과 이 책의 마지막 챕터인 '학습 과정의 구성' 이다. 개인적으로 지난 챕터인 '정확한 자기 평가'는 집중이 잘 안됬는데, 이번 두 챕터는 몰입해서 읽었던것 같다. 소프트웨어 장인이 되기 위하여 어떻게 학습해야 할 것인가에 대한 생각보다 깊은 내용을 들을 수 있었다. 이번에 읽은 패턴 능력의 폭을 넓혀라 연습, 연습, 또 연습 부숴도 괜찮은 장난감 소스를 활용하라 일하면서 성찰하라 배운 것을 기록하라 배운 것을 공유하라 피드백 루프를 만들어라 실패하는 법을 배워라 독서 목록 꾸준히 읽어라 고전을 공부하라 더 깊이 파고들어라 익숙한 도구들 연습, 연습, 또 연습 나를 포함한 대부분의 사람들은 한 번의 학습 과정을 거치면 다시 그 과정을 다시 보려고 ..
정확한 자기 평가 - 프로그래머의 길, 멘토에게 묻다 이번 챕터에서는 지난번에 쓴 '가장 뒤떨어진 이가 되라' 패턴과 함께 '멘토를 찾아라', '마음 맞는 사람들', '팔꿈치를 맞대고', '바닥을 쓸어라'등의 패턴을 소개해주고 있다. 겸손은 성공적인 견습과정의 토대 중 하나다. 야망과 겸손이 결합될 때 겸손은 당신을 집중하게 해주며 올바른 방향으로 전진할 수 있게 해준다. 개발자로 일하면서 겸손함을 갖게 하고, 정확한 자기 평가를 하게 하는 방법은 바로 뛰어난 개발자들을 찾는 일 같다. 정말 잘하는 개발자들의 이야기를 듣고, 그들의 코드를 보다 보면 내가 얼마나 부족하지 깨닫게 된다. 그리고 그들과 함께 하는 방법이 가장 빠르게 배울 수 있는 왕도인 것 같다. 사실 방법은 알고, 다 아는 내용이지만 이러한 패턴들을 실천하기 위한 동기부여가 제대로 안되는 듯..
가장 뒤떨어진 이가 되라 - 프로그래머의 길, 멘토에게 묻다 "합기도를 마스터 하려면 얼마나 걸리나요?" 수련 지망생이 묻는다. 여기에 대한 훌륭한 대답은 이것 뿐이다. "자네 얼마나 오래 살 것 같나?" - 조지 레너드, "Mastery" 긴 여정 소프트웨어 장인이 되고 싶어 하는 사람들은 길게 생각해야 한다. 불씨가 약해지긴 했으나, 최근 몇년간 개발자가 돈을 많이 번다는 이야기를 듣고 어떻게든 단기간에 개발자가 되어 많은 돈을 받으며 놀고 먹을 생각을 하는 것으로 보이는 사람들이 좀 보였다. 이런 마인드가 잘못됬다는 것은 아니지만, 그런 생각을 가지고 있으면 개발자로 좋은 대우 받기가 힘든게 현실이고, 이 책을 읽는 사람들이라면 이런 생각보다는 좋은 개발자가 되고싶어 할 것이다. 좋은 개발자는 단시간에 만들어지지 않는다. 코테보다는 알고리즘 자체에 집중하고,..
깊은 쪽으로 - 프로그래머의 길, 멘토에게 묻다 무지를 드러내라 상대방이 듣고 싶어 하는 이야기를 해주기 위해 무리하게 이야기 하지 말고, 솔직하게 모르는건 모른다고 이야기해라. 그것이 장기적으로 서로 윈윈하는 방법이다. 지금의 탁월한 모습을 보여주려고 하기 보다는 성장하는 모습을 보여줘라. 이 때, 내가 모르는 것을 효과적으로 표현하고, 성장할 수 있는 태도를 보여주는 가장 효과적인 방법은 질문을 잘 하는 것이다. 장인에게 가장 중요한 특성 중 하나는 학습하는 능력, 즉 무지의 영역을 파악해서 이 영역을 줄이려 애쓰는 것이다. 일부로 흰 띠를 매고 내가 무지를 드러낼 수 있는 영역에 의식적으로 발을 들이는 것이 소프트웨어 장인이 되기 위한 매우 중요한 습관이다. 개발을 진행하며 나는 내 머리를 쥐어짜며 고민하는 것 보다는 적당히 고민한 후 사람들에게..
방송통신대학교 컴퓨터과학 4학년 후기(4.5, 4.25) 원래 졸업장 나오면 졸업 후기로 한번에 쓰려고 했는데, 매번 블로그 올 때 마다 컴과 후기 글이 인기가 많길래 4학년 글도 후딱 작성해봐야겠다. 이전 한 학기에 7과목을 수강했는데, 이번엔 학점이 널널해서 1년동안 7과목을 수강했다. 이번에 3학년때 보다는 더 열심히 공부하기도 했고.. 특히 2학기때는 일이 너무 바빴어서 한 과목씩 줄이다가 결국 졸업에 필요한 학점만 받고 졸업하게 되었다. 졸업에 관련된 내용은 다음에 더 자세히 쓰고 이번에는 4학년에 수강한 과목들의 한줄평 정도만 작성해보도록 하겠다. C++프로그래밍 커리큘럼상 C언어 다음으로 배우는 프로그래밍 언어. 사람들에게 악명이 높은 언어라 그런지 Java는 듣더라도 C++은 듣지 않는 사람들이 좀 있는듯 하다. 둘다 해본 입장에서는 둘 다 크게..
소프트웨어 장인정신 - 프로그래머의 길, 멘토에게 묻다 책 프로그래머의 길, 멘토에게 묻다를 읽고 조금씩 정리한 게시글입니다. 우리는 동작하는 것을 넘어서 잘 짜인 소프트웨어에, (Not only working software, but also well-crafted software) 변화에 대응할 뿐 아니라 지속적으로 가치를 더하는 일에, (Not only responding to change, but also steadily adding value) 개인들 그리고 그 사이의 상호작용에 더해서 전문가들의 공동체에, (Not only individuals and interactions, but also a community of professionals) 고객과의 공동 작업 뿐 아니라 생산적인 파트너십에 가치를 둔다. (Not only customer col..
방송대 프로젝트 - 기본 컨텐츠 이제 기본 셋팅은 끝났다. 기본 컨텐츠부터 하나씩 만들어가보자. 가장 기본적인 컨텐츠는 바로 교수님과 의사소통 할 수 있는 구조이다. 마을에 교수님들이 있고, 그들과 대화하며 학교에 대한 정보를 얻을 수 있는게 이번 컨텐츠의 목표이다. 그를 위해 일단 교수님들의 정보를 담는 구조를 만들었다. 간단하게 성함, 이메일, 담당 과목 정도만 저장하여 그들의 정보를 보고, 교수님들에게 문의 이메일을 보낼 수 있게끔 구조를 구성하였다. 이렇게 두고 보니 학교 이메일로 인증을 받아서 처리할 수 있게 하는건 어떨까 하는 생각이 들었다. 생각 할수록 게임 클라이언트 적인 기능보다는 다른 쪽 기능들에 대한 아이디어만 생겨오는 ㅎㅎ…. 그 다음 교수님들의 대화 시스템을 완성하였다! 대사는 매번 달라지는게 아니라 고정된 대사..
[Git] 분산 환경에서의 Git 2 - Pro git book, 2nd Edition 정리 비공개 대규모 팀 대규모 팀은 보통 팀을 여러 개로 나눈다. 각 팀이 각각의 feature를 작업하는 상황이라면 회사는 Integration-manager 워크플로를 선택하는게 좋다. 작은 팀이 수행한 결과를 매니저가 Merge 하고 공유 저 장소의 master 브랜치에 업데이트 한다. 공개 프로젝트 Fork 비공개 팀을 운영하는 것과 공개 팀을 운영하는 것은 약간 다르다. 공개 팀을 운영할 때는 모든 개발자가 프로젝트의 공유 저장소에 직접적으로 쓰기 권한을 가지지는 않는다. Git 호스팅 사이트(GitHub, BitBucket, repo.or.cz 등) 대부분은 Fork 기능을 지원하며 프로젝트 관리자는 보통 Fork 하는 것으로 프로젝트를 운영한다. 일단 프로젝트의 웹사이트로 가서 “Fork” 버튼을..