프로그래머 그 다음 이야기
임백준, 오병곤, 이춘식, 이주연, 박재성, 신재용 | 로드북
http://www.yes24.com/24/goods/5354328?scode=032&OzSrank=1
회사 도서관에서 책을 둘러보다 보게 눈에 띄어 된 책이다.
이 출판사 책 중 프로그래머 관련 책을 읽다가 이 책이 언급된 기억과
저자로 나오는 분들이 꽤나 유명하신 분들이시라 궁금해서 선택함.
책 뒷 표지에 나와 있듯이 "프로그래머 평균 정년 35세 당신은 무엇을 하고 계십니까?"
프로그래머라면 누구나 30-40대 사이에 고민을 할 때 이고 나 또한 마찬가지인 상황에서 갈길이 보이지 않고 되돌아본 나의 경력이 보잘 것 없는지라 남다른 의미로 다가온다.
글 중 이춘식님의 글이 와 닫는 내용이 많고 나 같은 경우 신앙을 가지고 있는지라 더욱 좋았음.
그외 재미 있는 것은 프로그래머로서 실무에서 멀어지고 나이가 들어 관리 보직을 맡게 될 경우 일반적인 목표가 자격증(기술사, 퍼실리테이터 등) 인가 라는 생각이 든다.. 저자중 3분이 기술사 합격 하신 지라..
암튼... 일단 보면서 나에게 중요하다고 생각한 것들을 대충 정리함.
임백준 - 시니어 프로그래머, 행복한 프로그래밍
나는 후배 프로그래머들에게 생존과 기술에 대해서 고민하기 이전에 우선 "프로그래밍을 진심으로 사랑할 것"을 당부하고 싶다. 지금까지 나를 여기까지 밀어온 것은 다른 무엇이 아니라 바로 프로그래밍을 통해서 얻게 되는 행복과 성취감이었기 때문이다.
=> 동감하며 나에게 다시 되묻는다.. 입사 초기의 그 열정은 어디로 갔는지?
새로운 장소에서 만나게 된 프로그래머 중에는 솔직히 말해서 내가 따라가기 어려울 정도로 높은 실력을 갖춘 프로그래머가 몇 명 있었다. 그것은 나에게 건강한 의미에서의 도전이었지만, ... 그런 깊은 충격을 나에게 전해주기도 했다.
=> 사실 나도 동일 조직에서 한가지 업무를 오랫동안 해왔던 터라 우물안 개구리 같았다.. 지금에서야 밖으로 기어나오려고 하지만 너무 늦은 듯한 생각에 후회 막급이다.
오병곤 - 제2의 인생, 컨설턴트의 길
개발자에게 요구되는 역량이 논리력과 창의적 사고라면 PM은 종합적인 관리 능력과 함께 리더십 역량이 요구되는 직무다. 그래서 어느 정도 연수가 차면 누구나 PM이 되는 것은 위험하다.
: 그래 PM는 개나 소나 되는 게 아니다..
이춘식 - 데이터아키텍트의 마스터로 살련다.
보고서 작성 방법
: 일반적인 처음 도입으로 시작해서 '승'-'전' 에서 peak를 두는 것 보다.
처음 문제점을 강렬하게 제시하여 '기', '승'-'전' 에서 peak를 두고 '결'에서 살짝 impact를 주는 것이 보고서를 보는 사람들의 흥미를 끌게 된다.
수확체증의 법칙 (Increasing Returns of Scale)
: 수확체증의 법칙이란 투입된 생산요소가 늘어나면 늘어날수록 산출량이 기하급수적으로 증가하는 현상을 말한다.
사람이기 때문에 잠재력이 있고 또한 다양한 경험을 통해 수집된 정보가 집약되어 일정한 수준을 넘어서면 이전에 증가하였던 상태보다 엄청난 속도로 그 성과 등이 나타난다는 것이다.
=> 학습에 대한 메모를 보여주며 이를 설명하고 있고 동감하는 부분이다. 공부나 경험이라는 것을 통해서 효과가 바로 나오는 것이 아니라 어느정도 밑받침이 되어야 효과가 나오는 것이라..
능력있는 리더
: 비전이 있으며 긍적적인 사고로 즐겁게 일하면서 강한 실행력을 발휘할 수 있으면 능력있는 리더
1. Goal - 일의 목표는 분명한가?
2. Value & Performance - 일에 가치가 부여되고 있고 일의 성과를 내고 있는가?
3. Communication - 다양한 성격의 사람과 대화를 잘할 수 있는가? 협상의 기술이 있는가?
4. Presentation Skill - 프리젠테이션 스킬이 우수한가?
5. Document Skill - 기획 문서를 쉽고 빠르게 작성할 수 있는가?
6. Time Management - 시간 관리를 하고 있는가?
7. Insight - 변화와 개선점을 파악할 수 있고 제시할 수 있는가?
진정한 일의 측정은 성과와 품질로 가능하다. 그 사람이 얼마나 많은 일을 했느냐에 초점을 맞추지 말고 그 사람이 무슨 일을 성취했느냐? 그리고 그 일이 가치 있는지 품질은 우수한지를 보아야 할 것이다.
대화의 기술도 여러 가지 전문적인 방법이 많이 있지만, 상대방의 이야기를 경청하고 핵심을 파악한 다음 다시 나의 의견을 논리적으로 이야기하는 것이 핵심이다.
... 효율적인 대화를 이끌기 위해서는 상황에 적합한 적절한 유머 감각이 아주 중요한 것 같다. 보통 회사에서 여러 사람이 대화하는 자리는 주제에 대해서만 집중 하다 보니 사람들의 표정도 쉽게 굳어지고 사무적인 대화만 오가면서 가벼운 내용도 심각하게 이야기되고 따라서 의사결정도 어려워지며 시간이 많이 소요되곤한다.
=> 나도 배워야할 것 중 하나.... 하지만 유머를 책으로 배울 수는 없으니..
직장 생활의 라이프 사이클
1기 - 시작/성장기 - Low Performer, Low Cost - 0~4년차, 사원
2기 - 발전기 - High Performer, Low Cost - 5-10년차, 대리, 과장
. 인건비 대비 효과 좋은 시기
3기 - 유지기 - High Performer, High Cost - 11-16년차, 과장, 차장
. 일은 잘하나 몸값이 올라가 서서히 기피함.
4기 - 준비기 - Middle performer, High Cost - 17년차 ~ 퇴임
. 일에 대한 관록은 우수하나 노골적인 기피 대상
2014년 4월 1일 화요일
2014년 2월 21일 금요일
코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기
코딩 호러가 들려주는 진짜 소프트웨어 개발 이야기 : 엉터리 개발자에서 벗어나 진정한 개발자로 거듭나라! 제프 앳우드 저/임백준 역 | 위키북스 | 원제 : How to Stop Sucking and Be Awesome Instead (Hyperink)
|
이전 코딩 호러의 이펙티브 프로그래밍(http://imhallower.blog.me/90178246899)을 읽고
재미있는 충고들이 많아서 다음 책도 보게 되었음.
비록 오래된 블로그글들을 모아서 책으로 정리한 것이겠지만 나같이 귀찮은 사람들에게는 한꺼번에 몰아서 보기에 도움이 된다.
재미있는 충고들이 많아서 다음 책도 보게 되었음.
비록 오래된 블로그글들을 모아서 책으로 정리한 것이겠지만 나같이 귀찮은 사람들에게는 한꺼번에 몰아서 보기에 도움이 된다.
주요 chapter는 다음과 같다.
1부 쓸데없는 일을 줄이는 법
2부 프로그래밍
3부 웹 디자인의 원칙
4부 테스트
5부 당신의 사용자를 알라
6부 우리가 관심을 둬야 할 것들
7부 게이밍
8불 읽어볼 만한 내용
2부 프로그래밍
3부 웹 디자인의 원칙
4부 테스트
5부 당신의 사용자를 알라
6부 우리가 관심을 둬야 할 것들
7부 게이밍
8불 읽어볼 만한 내용
보시다시피 책의 부제는 "엉터리 개발자에서 벗어나 진정한 개발자로 거듭나라" 이고 관련된 내용을 정리하였지만
전 책에 비해 각 챕터별 주제와 글들이 좀 탄탄하지 못하고 걸러낸 글들을 모아서 주제를 이래저래 맞춘것 같다.
내용면에서는 좀 실망이다. 3,4,5 챕터는 그냥 감흥없이 읽어 버렸다. 다만 마지막 챕터는 흥미를 끌었음.
아래에서 관심 글들을 정리하니 reference하는 책들이나 article이 어마어마하다....
아래는 읽으면서 개인적으로 해당되거나 동감이 가는 충고들을 정리한 내용과 개인 의견이다.
1부 쓸데없는 일을 줄이는 법
당신이 매일 아침 일어날 때, 신이 제작한 완벽하게 독창적인 장치인 유기적인 두뇌를 이용해 그날 해야 할 가장 중요한 일 세 가지를 떠올릴 수 없다면 그 상황을 진지하게 개선할 필요가 있다.
당신에게 중요한 일이 무엇이고, 무엇이 당신에게 동기를 부여하는지 알아내야 한다는 말이다.
=> 회사에서 뭘 할지 몰라 그냥 무의미하게 흘려 버리는 시간이 있다. 나도 회사도 손해이다....
나는 해마다 '버밍험 감옥으로부터의 편지(Letter from a Birmingham Jail)를 다시 읽는다. 그것이 가장 설득력 있는 에세이라고 생각하기 때문이다.... 당장 읽어보라.
(TODO) => 한번 읽어보자.
때로는 프로젝트 자체가 성공을 거두더라도 당신은 실패하게 되는 경우가 있다. ... 여기에 참여했던 엔지니어들이 모두 궁극적으로 실패를 넘어 생존했을뿐더러 이후에 더 엄청난 성공을 향해 나아가기도 했다는 점이다.... 실패는 놀라운 선생님이다.
당신보다 재능이 있는 개발자가 수천 명 있다는 사실에 기죽지 말라. 당신에게 열정이 있는 데 재능이 무슨 필요란 말인가?
=> 감사하게도 희망을 주는 말이다. 하지만 열정이 그냥 열심은 아니겠지..
- 연습하라, 연습하라, 연습하라!
- 경험과 전문성을 혼동하지 말라.
- 민간풍습을 믿지 말라. 하지만 그것을 배우기는 해라.
- 아무것도 절대적으로 믿지 말라. 자신만의 방법론을 세워야 한다.
- 자가 학습을 주도하라. 아무도 대신 해주지 않는다.
- 명성 = 돈. 스스로의 명성을 구축하고 보호하라.
- 자원, 자료, 도구를 끊임없이 확보하라.
- 자신민의 기준과 도덕률을 확립하라.
- 장인적 기술을 사소한 것으로 만드는 자격증을 피하라.
- 항상 노력하는 동료를 곁에 둬라.
- 쓰고, 말하고, 항상 자신이 보기에 진실인 것만을 발언하라.
(TODO) => 꼭 기억하자.
(TODO) => 읽어보자. 자격증 관련
"실천가를 위한 실용주의 프로젝트 관리: 위대한 관리의 비밀(Behind Closed Doors: Secrets of Great Management)"
(TODO) => 읽어보기, 현재 절판임.
이 소프트웨어 개발자는 자기가 해야 하는 일의 전체 목록을 가지고 있지 않다. 즉, 당당하게 99퍼센트의 일이 완성됐다고 주장하고 있기는 하지만 앞으로 남은 일에 얼마나 더 많은 시간을 쏟아 부어야 할지에 대해서는 전혀 모르고 있다!
=> 저자는 할일을 자세히 나열해 보라라고 말하고 있음.. 하긴 나도 개발 결과를 말할때 대충 다 끝나다고 말을 하지만 이것저것 손볼게 남아 있는게 사실이다. 대략적으로 생각해서 결과를 말하곤 하는데 정량적인 방법을 쓰던 다른 방법을 쓰던 자세히 따져 볼 수 있는 방법을 터득하는게 맞겠다.
Roger Session의 "엔터프라이즈 아키텍처를 향한 더 나은 길(A Better Path to Enterprise Architecture)"
(TODO) => 읽어보기, http://msdn.microsoft.com/en-us/library/aa479371.aspx
2부 프로그래밍
프로그래밍: 사랑하지 않으면 떠나라.
지난 20여 년 동안 나는 돈을 받으면서 프로그래밍할 자격이 없는 것처럼 보이는 사람들과 일한 경험이 아주 많다. 나는 평균적인 수준의 프로그래머를 말하고 있는 것이다. 우리는 모두 인간이고, 그래서 많은 실수를 범한다.
=> 연차가 좀 되니 자존심을 내려 놓고 끊임없이 배우는 자세가 필요하다..... 하지만 자존심을 내려 놓는 것은 어려운 건 사실이다.
많은 사람들이 자기가 쓴 글에 '낙타는 혹이 두개다 The camel has two humps"라는 학술 논문에 대한 링크를 달고 있다.
(TODO) => 읽어 보자.
최근에 스티븐 예그 Steve Yegge의 방대한 글들을 뒤적이다가, 2005년에 작성된 프로그래밍 훈련하기 Practicing programming라는 글을 읽게 됐다.
(TODO) => 읽어 보자.
코드카타(노력이 담긴 학습을 실천하고 프로그래밍 기술을 연마하는 방법에 해당되는)의 예를 보고 싶다면 스티브가 쓴 글은 탁월한 출발점을 제공한다. 스티브는 그것을 실전 훈련 practice drills 이라고 불렀다.
(TODO) => 위 링크에서 항목들을 반복 읽기
칼 위거스 Karl Wiegers가 쓴 탁월한 책인 "소프트웨어에서의 동료 간 검토: 실전가이드 Peer Review in Software: A Practical Guide"는 2002년 이래로 훌륭한 가이드 역할을 수행해 왔다.
(TODO) => 읽고 정리하기
3부 웹 디자인의 원칙
소프트웨어 프로젝트의 사용성과 관련해서 입문자들을 위한 '물을 끓이는 방법' 수준의 쉬운 글을 읽고 싶다면 이 책을 읽는 것을 중단하고 지금 당장 "스티브 크룩의 사용성 평가, 이렇게 하라! Rocket Surgery Made Easy: The Do-It-Yourself Guide to Finding and Fixing Usability Proglems"를 구입해서 읽어보기 바란다.
(TODO) => 빌려서 읽어라.
조엘 스폴스키는 자신의 탁월한 책인 "프로그래머를 위한 사용자 인터페이스 디자인 User Interface Design from Programming"에서 사용성과 학습용이성의 차이를 설명했다.
(TODO) => 읽기
. 그냥 '아니오'라고 말하라.
이런 식의 경험을 하고 나서 많은 소프트웨어 개발자들이 그냥 '아니오'라고 말하라는 원칙을 내면화하게 된다는 생각을 하게 됐다. 양극단의 생각은 모두 위험하다. 하지만 나는 모든 것에 '예'라고 말하라는 원칙이 프로젝트 전체를 실패하게 하는 데 더 큰 위험성을 안고 있다고 생각한다. 둘중에서 어느 한 쪽을 선택해야 한다면 단순함을 추구하는 쪽에 서는 것이 좋다.
5부 사용자를 이해하라
. 개발자에게 UI를 만들게 했을 때 일어나는 일
모든 소프트웨어 개발자의 내면 깊숙한 곳에는 커밍아웃을 기다리는 그래픽 디자이너가 한 명씩 살고 있다. 그 디자이너가 바깥세상으로 나오게 한다면 심각한 문제가 발생한다.
=> 동감이다.. ㅜㅜ , UX, UI, GUI는 디자이너들에게..
게임화 gamification라고도 할 수 있는 이런 방법, 즉 동료를 통한 자극은 정말로 효과가 있다. 하지만 이러한 시스템은 총기류와 같다. 너무나 강력한 힘을 지니고 있어서 그것을 다루는 사람이 방법을 제대로 알고 있지 않으면 위험할 수 있는 것이다.
=> Gamification은 부가적인 기능으로는 매력적이다. 이 책 참고 (http://charlie0301.blogspot.kr/2014/02/gamification.html)
. 반사회적인 사람들을 위한 사회적 소프트웨어 만들기
열 개의 '무시무시한 아이디어', 우리는 이러한 아이디어를 스택 오버플로우를 만들 때 기본요소로 활용했다.
1. 참여를 가로막는 잣대의 수준을 혁신적으로 낮춰라.
2. 사용자들을 (적어도 일부는) 신뢰하라.
3. 우리의 인생 자체가 세계에서 가장 규모가 큰 MMORPG 게임이다.
4. 나쁜 일들은 일어나기 마련이다.
5. 사랑은 금전적 동기보다 우선한다.
6. 규칙은 재미있고 사회적일 수 있다.
7. 현대의 웹사이트 디자인은 모두 게임 디자인이다.
8. 사려 깊은 게임 디자인은 지속 가능한 커뮤니티를 형성한다.
9. 커뮤니티가 항상 옳은 것은 아니다.
10. 약간의 중재는 필요하다.
=> 재미있는 아이디어들 조직에 적용하면 유연하게 만들 수 있지 않을까?
6부 우리가 관심을 둬야 할 것들
.망중립성의 중요성
망중립성은 파일 공유보다 훨씬 더 많은 것을 의미한다. 그런 면에서 팀 우 Tim Wu의 책인 "마스터 스위치: 정보 제국의 흥망과 성쇠 The Master Switch: The Rise and Fall of Information Empires"는 천재적이다.
(TODO) => 읽어 보자.
7부 게이밍
게임 프로그래밍이 이러한 초창기 시절로부터 얼마나 많이 변화했는지에 알고 싶다면 제임스 헤이그의 1997년판 전자책인 "할키온 시절: 고전 컴퓨터와 비디오 게임 프로그래머와의 인터뷰 "Halcyon Days: Interviews with Classic Computer and Video Game Programmers"를 읽어보길 바란다.
(TODO) => 읽어 보자.
8불 읽어볼 만한 내용
. 프로그래머는 책을 읽지 않지만 당신은 읽어야 한다.
=> 몹쓸 기술 서적으로 인해 책을 읽는 것을 피하게 되었지만 좋은 책들을 읽을 때는 경험이 되고 더 깊은 통찰력을 준다고 말함.. 나도 동의하는 바이다. 다만 최신 기술을 습득하기에는 부적합 하지만 단시간에 자신의 경험으로 만들고 다른 방법을 배우는 것에는 효과적이라고 생각한다. 오픈 소스 공부가 최고지만..
(TODO) => 아래 책 읽기
. 코드 컴플리트 2
. 상식이 통하는 웹 사이트가 성공한다. Don't Make Me Think
=> 몹쓸 기술 서적으로 인해 책을 읽는 것을 피하게 되었지만 좋은 책들을 읽을 때는 경험이 되고 더 깊은 통찰력을 준다고 말함.. 나도 동의하는 바이다. 다만 최신 기술을 습득하기에는 부적합 하지만 단시간에 자신의 경험으로 만들고 다른 방법을 배우는 것에는 효과적이라고 생각한다. 오픈 소스 공부가 최고지만..
(TODO) => 아래 책 읽기
. 상식이 통하는 웹 사이트가 성공한다. Don't Make Me Think
. 실용주의 프로그래머 Pragmatic Programmer
. 소프트웨어 공학의 사실과 오해 Facts and Fallacies of Software Engineering
앞에서 인용했던 그 사람도 자기계발서 가운데 놀랍게도 5퍼센트에 해당하는 책은 쓰레기가 아니라는 결론을 내릴 수 있었다.
권장하는 책은 "59초: 순식간에 원하는 결과를 끌어 내는 결정적 행동의 비밀"59 Seconds: Think a Little, Change a Lot"
(TODO) => 읽자.
.컴퓨터 범죄, 그 과거와 현재
개과천선한 해커 중 한 명인 케빈 폴슨 Kevin Poulson이 쓴 '킹핀'은 대단히 흥미진진한 독서 경험을 제공한다.
(TODO) => 읽자.
. 사람에게 말을 하는 방법
내가 단지 10페이지 정도만 읽고도 충격을 받을 정도로 도움되는 책이 있음을 깨닫게 된 책이 있다. 당신이 나이가 2세에서 99세 사이에 있는 아이를 다뤄야 하는 입장이라면 지금 당장 가서 "어떤 아이라도 부모의 말 한마디로 훌륭하게 키울 수 있다. How to Talk So kids Will Listen So Kids Will Talk"를 구입하기 바란다. 우리는 이미 이 책을 세 권 가지고 있다. 당신도 읽어야 한다.
(TODO) => 읽자.
. 기본기 다지기: 새루운 튜링 승합차
우리의 CEO인 스콧 스탠필드 Scott Standfield는 고전적인 컴퓨터 공학 퍼즐을 연구하다가 나를 "새로운 튜링 승합차: 66일간의 컴퓨터 공학 여행 The New Turing Omnibus: 66 Excursions in Computer Science"으로 인도 했다. 정말로 믿을 수 없을 정도로 흥미로운 책이다.
(TODO) => 재미 있겠지, 읽자.
권장하는 책은 "59초: 순식간에 원하는 결과를 끌어 내는 결정적 행동의 비밀"59 Seconds: Think a Little, Change a Lot"
(TODO) => 읽자.
.컴퓨터 범죄, 그 과거와 현재
개과천선한 해커 중 한 명인 케빈 폴슨 Kevin Poulson이 쓴 '킹핀'은 대단히 흥미진진한 독서 경험을 제공한다.
(TODO) => 읽자.
. 사람에게 말을 하는 방법
내가 단지 10페이지 정도만 읽고도 충격을 받을 정도로 도움되는 책이 있음을 깨닫게 된 책이 있다. 당신이 나이가 2세에서 99세 사이에 있는 아이를 다뤄야 하는 입장이라면 지금 당장 가서 "어떤 아이라도 부모의 말 한마디로 훌륭하게 키울 수 있다. How to Talk So kids Will Listen So Kids Will Talk"를 구입하기 바란다. 우리는 이미 이 책을 세 권 가지고 있다. 당신도 읽어야 한다.
(TODO) => 읽자.
. 기본기 다지기: 새루운 튜링 승합차
우리의 CEO인 스콧 스탠필드 Scott Standfield는 고전적인 컴퓨터 공학 퍼즐을 연구하다가 나를 "새로운 튜링 승합차: 66일간의 컴퓨터 공학 여행 The New Turing Omnibus: 66 Excursions in Computer Science"으로 인도 했다. 정말로 믿을 수 없을 정도로 흥미로운 책이다.
(TODO) => 재미 있겠지, 읽자.
2014년 1월 1일 수요일
Teach Yourself Programming in Ten Years, Peter Norvig
이전 블로그에서 이전 함 (원본 글 2014/01/01 작성)
Teach Yourself Programming in Ten Years, Peter Norvig
이전 오픈소스 책에서 Interviewee가 묻는 질문 중 하나여서 찾아봄.
처음에 한 책(3일안에 C++ 배우기)을 언급하며
여러 분야에서 전문가가 되기 위해서는 오랜 시간 (보통 10년)이 걸리는데
우리는 프로그래밍 기술을 배우는데 왜 이리 급하냐라고 묻고 있음.
그리고 프로그래머로 성공?(그냥 좋은 프로그래머가 되는 것이라고 보고 싶다.)하기 위한 방법을 소개하고 있음. 내용과 개인적인 생각을 함께 정리하자면 다음과 같다.
- 10년 혹은 10000 시간 동안 프로그래밍에 관심을 가지고 뭘 해봐라.
: 대학생때에 이렇게 해보지 못한걸 좀 후회한다.. 휴학을 하고 좀 배우긴 했지만 학부때 놀아버린 것을 만회하진 못했다. 그리고 CS 전공 과목을 모두 숙지하지 못한것도.. - 프로그램을 만들어보는 것이 최고의 배움 방법이다. - 프로그래머들과 교류하거나 다른 코드를 공부하라. : 좀 이르긴 하겠지만 대학생 때 Open Source community에 참가하는 것도 좋겠다는 생각이 들고 아니면 소프트웨어 멤버쉽 같은 것도 좋고.. 다만 방산이나 취직은 좀 일단 학부 때 취직하면 전공은 소흘해 지니까. - Computer Science 학위는 좀더 다양한 일을 선택할 수 있게 해주고 좀 더 깊은 지식을 얻게 해주겠지만 직업을 가지고 일을 하면서도 같은 경험을 얻을 수 있다. : The New Hacker's Dictionary 책을 언급하며 말함. - 다른 프로그래머와 함께 일을 하며 최고의 프로그래머가 되어 프로젝트를 이끌어 보고 최악의 프로그래머가 되어 리더가 어떻게 하는 지를 배우라. - 다른 프로그래머를 이어서 일을 해보라. 다른 사람의 코드를 도움 없이 이해하고 유지보수를 경험하며 어떻게 하면 유지보수성이 높은 프로그램을 설계할지를 고민해 보라. - 적어도 여섯개 정도의 프로그래밍 언어를 배우라, 예시... class abstraction 지원 언어(Java, C++ 같은)나 functional abstraction 지원 언어(Lisp, ML 같은), syntactic abstraction 지원 언어(Lisp 같은), declarative specifications 지원 언어(Prolog, C++ templates 같은), co-routines 지원 언어(Icon, Scheme 같은), parallelism 지원 언어(Sisal 같은) 많기도 하다.. - Computer Science에서 Computer가 내부적으로 어떻게 동작하는 지를 생각해 보라. : 내 생각으로는 이건 프로그래밍 뿐만 아니라 내면?의 부분에도 관심을 가지고 이해하라는 얘기 인듯. 사실 application 개발자로 살면서 middleware나 operating system 이면을 들여다 보지 못하면 performance를 이해할 수 없게 되는 것과 같이 그런 부분을 지적한 것이 아닌 가라는 생각. - 프로그래밍 언어 표준화에 참가해보라. ISO C++ 표준을 만드는 것이나 내부적인 coding style을 정하는 것도 상관없다. 다만 다른 사람들이 생각하는 언어와 왜 그렇게 생각하는지에 대해서 경험하라. - 프로그래밍 언어의 표준화(표준화 보다는 규칙이나 룰이 아닐까?)를 벗어나는 경험을 해보라. |
그리고 마지막으로 Fred Brooks의 에세이인 "No Silver Bullet"에서 언급된 Great software designer를 찾는 세가지 방법을 소개하며 누구나 great software designer가 되는 자질은 가지고 있으나 다만 조급함을 버리고 지속적으로 연습하는 노력이 필요한 것이다라고 다시 한번 말하고 있다..
자신이 good software designer가 아닌 great software designer가 되고자 한다면 아래의 방법을 뒤집어 생각하고 지속적인 노력이 필요할 것으로 보인다. (본인은 grate software designer가 모두를 먹여 살린다에 동의하지는 않는다.)
1. 신속하고 체계적으로 top designer를 찾으십시요.
: 주변의 능력있는 개발자(wannabe?)를 찾고 영향을 받는게 중요하겠음.
2. 해당 인력의 경력을 세심히 관리하고 가능성을 개발할 수 있는 Career mentor를 지정하라.
: 멘토까지는 아니더라도 선배니 동종 업계에서 근무하는 사람들의 조언을 받는 것도 방법 이겠다.
3. 인력들 간에 software designer로서 교류하며 동기부여하며 성장할 수 있는 기회를 제공하라.
: 교류.. 사실 우물안 개구리 처럼 책만 보면서 있다간 초보적인 기술만 보게 될 것이고 능력 증대를 배가하기 위한 방법은 다른사람의 잘짜여진 코드를 보는 것임.
2013년 12월 31일 화요일
꾸준히, 자유롭게, 즐겁게 : 한국 오픈 소스 개발자들 이야기
이전 블로그에서 이전 함 (원본 글 2013/12/31 작성)
꾸준히, 자유롭게, 즐겁게 : 한국 오픈 소스 개발자들 이야기
송우일 저 | 인사이트(insight) | 2013년 10월
|
인터넷으로 도서 구매 중 저렴해서 사게 되었다.
책 내용도 모른채 그냥 IT 서적에서 가격순으로 나오는 책 중 좀 깔끔한 것으로 구매하다보니 선택이 된 책
책 사이즈가 A5 사이즈?정도로 작고 페이지도 300 페이지가 되지 않는다.
게다가 내용은 6명의 오픈소스 개발자들의 인터뷰 내용이라 대화체로 부담없이 맘 먹으면 2-3시간에 모두 읽을 수 있겠다.
인터뷰의 내용으로는 오픈소스에 관심을 가지게 된 동기, 오픈소스 커뮤니티에 참가하게 된 과정, 오픈소스를 하면서 얻게된 것들과 변화된 상황 그리고 개발자를 위한 조언들이다.
내용을 정리하면 여러가지 항목들이 나오겠지만 책의 챕터에서 대충은 느낄 수 있는 것 같다.
목차
1. 허태준 - 가장 의미 있고 즐거운 개발
2. 김정균 - 자신을 발전시키는 소중한 공부
3. 이희승 - 도전과 점진적 개선, 그리고 변화에 열린 마음
4. 류창우 - 그냥 부담 없이 취미로
5. 허준회 - 더 나은 세상을 위한 소통
6. 최준호 - 프로그래밍의 깊은 세계로 들어가는 길
2. 김정균 - 자신을 발전시키는 소중한 공부
3. 이희승 - 도전과 점진적 개선, 그리고 변화에 열린 마음
4. 류창우 - 그냥 부담 없이 취미로
5. 허준회 - 더 나은 세상을 위한 소통
6. 최준호 - 프로그래밍의 깊은 세계로 들어가는 길
책을 읽으면서 인상 깊었거나 느끼게 된것들은 1. 무엇을 하든지 일정 시간의 몰입이 필요하다. (10000시간 법칙 처럼), 2. 관심에서 그치지 않고 죽이 되든 밥이 되든 해봐야 얻는게 있다. 3. 잉여로운 삶의 필요. 4. 어릴때의 주변 환경의 중요함. 들이다.
그리고 책에 동의 하는 내용들로는
여유를 가지는 것이 중요한 것 같다. 잉여로움으로 부터 발생되거나 진보된 것들이 많은데 대다수 우리나라 IT 개발자들은 삶의 무게에 눌려 있는 것 같다.
또한 결혼 후에는 시간의 여유가 없어지는 것은 당연해서 자신이 시간을 만들어 내서 잉여로움을 즐기는 것이 중요하고 되도록이면 결혼 전, 20대, 30대 초반에 몰입을 하는 것이 필요하다는 생각임.
후반부 최준호님께서 강조한 사용하는 solution들의 내부를 들여다 보고 어떻게 만들어 졌는지 어떻게 돌아가는지를 아는게 중요하다는 의견에 동의 한다. Network application 단 개발 중인데 사실 하부 protocol stack들이 어떻게 동작하는지를 이해하고 있느냐 없느냐에 따라서 개발 결과물의 디자인이나 성능이 결정된다고 봐도 될것 같다. 공부해야겠음... ㅜㅜ
다음은 독서 중 확인한 TODO list 들이다.
(done) - 피터 노빅 [Teach Yourself Programming in 10 Years] 찾아서 보기
- DevOps 찾아서 정리 하기
(done) - coursera(https://www.coursera.org) 에서 과정 수강하기
- 잉여 시간 만들어 활용하기 (어렵겠지만..)
(doing) - C++11 정리하기
이건 검색하다 보니 찾게 된 PT. 추천
당신의 인생에 오픈소스를 더하라 - OSCON 발표자 뒷담화
by Sungju Jin, Manager at KT / Apache Software Foundation on Oct 14, 2013
2013년 12월 1일 일요일
코딩을 지탱하는 기술 : 원리로 깨우치는 프로그래밍 기법
이전 블로그에서 이전 함 (원본 글 2013/12/01 작성)
![]() |
니시오 히로카즈 저/김완섭 역 | 비제이퍼블릭(BJ퍼블릭) | 원제 : コ-ディングを支える技術
|
책의 난해한 디자인과 20년전에 결정된듯 한 책 이름 때문에 고민을 하다가 다소 저렴한 가격 때문에 온라인에서 바로 구매 했었다.
책의 저자는 생각보다 젊은 일본인(http://www.nishiohirokazu.org/)이고 여러 언어에 익숙한 것으로 보인다. 책에서는 다양한 소재의 내용을 다루는데 컴퓨터 개론 책을 보는 듯한 생각이 들기도 한다. (데이터 형 부터 에러처리, 그리고 문자 encoding에 대해서 다룸.)
책에서는 컴퓨터 관련 학문에서의 기본적인 개념들을 다루고 있고 이를 여러 언어들을 사용하여 설명해 주고 있다. 일반적으로 컴퓨터를 처음 접하거나 컴퓨터 관련 학문을 배우기 시작한 사람들을 대상으로 하는 책으로 보이며 이 책을 읽고 관심있는 부분(컴퓨터 언어, 데이터 구조, 알고리즘, 멀티 쓰레드 프로그래밍, 객체 지향 고급 등)에 대해서 가지를 치듯 선택하여 공부하는 것이 좋을 것으로 보인다. 다만 아쉬운 점은 원리를 강조하거자 한건지는 모르겠지만 원리에서 그칠뿐이라 관련 서적이나 분야를 소개해줘도 좋았을 것 같다.
단순히 학교나 책을 통해 컴퓨터 언어를 공부할 때는 문법을 외우고 특정 예제를 소개하며 "XXX 만드는 법", "XXX 만들어 보기" 같은 것을 만들어 보며 배우는 경우가 많은데 사실 왜 이런 문법을 사용해야 하는지, 왜 그런 현상이 발생하고 노하우를 사용해야 하는지에 대해서 궁금한 점이 많은데 이 책이 그런 부분에 대한 실마리를 주지 않을 까 생각해 본다.
이 책을 보며 생각해본 TODO 들은 없으나... LISP를 공부해 보고 싶은 생각이 든다..
2013년 8월 1일 목요일
프로그래머 관련 서적(프로그래머, 열정을 말하다, 코딩 호러의 이펙티브 프로그래밍, 프로그래머로 사는 법, 프로그래머로 산다는 것) 및 개인적인 TODO list
이전 블로그에서 이전 함 (원본 글 2013/08/01 작성)
(done)- 자신의 팀원들에게 총을 맞고 쓰러지는 일을 피하기 위한 방법을 읽기 (p135)
. http://dennisforbes.ca/index.php/2006/01/29/effectively-integrating-into-software-development-teams/
(done)- 회사 의자 구매하기 (p188)
(done)- 종이 프로토타이핑 paper 읽어보기 (p212)
(done)- bcrypt, PBKDF2 공부하기 (p264)
(done)- 피어리뷰 책 보기 (p282)
http://www.yes24.com/24/goods/7537901?scode=032&OzSrank=1
(done)- 이력서 쓰기, 경력 사이트에 등록하기 (p83)
(done)- 팀가이스트 영상 보기 (p109)
(done)- Trello 서비스 사용해보기 (p139)
(done)- 영어 실력 향상, 다독, 블로그 활동(p158,159)
(done)- 도서 읽기
. "자바 성능을 결정짓는 코딩 습관과 튜닝 이야기", "자바 개발자도 쉽고 즐겁게 배우는 테스팅 이야기"
프로그래머라는 단어보다는 S/W engineer라는 표현을 선호하지만
사실 코더에 가까운 현실에 좀 좌절하며 나의 진로를 고민하기 위해 여러 책들을 구매 후 읽어 봄.
참고로 서적들에 대한 단순 소개 및 링크와 개인적인 TODO list 임...
프로그래머, 열정을 말하다 | |
제목 그대로 채드 파울러 이 사람은 정말 열정적인 사람임이 틀림없어 보인다. 보통 나는 열정적인 프로그래머라 하면 졸트 콜라와 커피를 섞어 마시며 침대, 컴퓨터, 의자가 삼위일체 되어 일하고 있는 배불뚝이 guru를 연상하는 데 이 사람은 좀 색다르다. 처음부터 컴퓨터, 전산 전공이 아닌 색소폰 재즈 연주자였으나 여러 노력을 통해서 전문적인 IT 관련 전문적인 career를 쌓게 되었고 자신의 생활, 취미와 함께 균형 잡힌 프로그래머로서 살아가고 있는 것으로 보임.
천성적인 성격인지 연주를 통해 습득한 버릇 때문인지는 모르겠으나 프로그래머로서 살아가는 데 있어 새로운 것을 알고 자신을 단련하는데 열정적인 것으로 보여 내심 부럽기도 하고 배우고 싶기도 하다.
책 중에서 가장 많은 TODO list가 나왔고 개인적으로 도전적인 챕터들이 꽤 많았었다.
Chad Fowler blog = http://chadfowler.com/about/
|
TODO
- '가장 못하는 사람이 되는' 상황을 스스로 찾으라. (p38)
. 다른 개발자들과 함께 일해서 삼투현상처럼 자신의 성장에 도움이 될 만한 자원 프로젝트를 찾아보라.
. 자신이 감탄하고 있고, 그 프로젝트 개발자들의 수준이 자신이 이루려는 '높은 단계'에 있는 것처럼 보이는 오픈 소스 프로젝트를 하나 고르라. ... 해당 코드를 짜라. 프로젝트 코드의 스타일을 흉내 내라.
- 종이나 화이트보드에 자신의 지식과 능력 중에 다재다능한 부분과 그렇지 않은 요소를 나열하라. (p57)
. 되도록 빨리 30분을 할애해 목록에 있는 배울 것 항목 중 최소한 하나를 다루기 시작해 본다.
- TopCoder, Code Kata 사이트 방문 및 풀어보기 (p97)
- "다음 프로젝트나 유지보수해야 할 시스테을 위해 사용자나 관리자가 요구할 것 같은 것에 대해서 노트에 기록(p124)
- 매일의 성과, 30분 정도를 비워두고 조용한 곳에서 팀에서 필요하지만 성가신 일들을 찾아서 정리(p128)
. 목록을 만든 후 새 종이에 다섯개를 적고 일주일에 하나씩 골라 해결하라.
(Cancel, 못하겠다.)- 오늘 밤 확실하게 푹 자라. (p156)
. 정시에 일을 시작하고 더 이상 일하지 못할 정도로 치열하게 일하고 정시 퇴근하라.
- 개발일기를 쓰기 시작하라. (p195)
. 매일 조금씩 뭘 했는지 기록하고 설계 결정에 대해 타당성을 증명하고 어려운 기술적 또는 전문적 결정을 자세히 조사하라.
. 자신의 입장을 분명하게 표현할 수 있도록 작문 품질과 능력 향상에 주의를 기울이라.
- 다음 주 하루를 잡아 (될 수 있는 한) 아무에게도 이메일을 보내지 말고 대면해서 업무를 처리해라 (p200)
. 이메일 대신 전화로 부르거나 직접 사무실로 가서 이야기 해보라.
. 잘 이야기 하지 않는 동료, 상사, 고객 명단을 만들어 정기적인 약속을 잡고 인사하라. 간단하게나마 인간관계를 만들라.
(done)- 블로그가 아직 없다면 당장 하나 만들라. (p210)
. 텍스트 파일로 블로그 주제(10-20분에 쓸 수 있는 아이디어) 목록(항목 10개)을 만든다.
. 컴퓨터를 켤 때 마다 해당 파일을 열어 주제에 맞게 글을 쓰고 공개하라.
. 3주 정도 지난 뒤 두개를 골라 Digg, Reddit 같은 곳에 올려라.
- 가장 좋아하는 소프트웨어를 하나 고르고 그 창시자에게 이메일을 보내라. (p226)
(doing)- 주 중에 시간을 내 첨단 기술을 연구하라. (p235)
. 새 기술을 조사하고 그 기술에 능숙해 지도록 연습하기 시작한다.
. 간단한 애플리케이션을 만들라.
코딩 호러의 이펙티브 프로그래밍: 스택 오버플로우 공동 창립자가 알려주는 소프트웨어 개발의 비밀 | |
코딩하면서 가장 많이 참고하는 사이트 중 하나인 stackoverflow 사이트의 창립자인 Jeff Atwood의 블로그 (http://www.codinghorror.com/blog/)글을 모아서 만든 것으로 보이고 조엘온소프트웨어와 같이 다양한 주제의 이야기를 다루고 있는 책이다.
개발자로서의 기본 역량을 강조하고 개발자의 권리와 사용자의 권리에 대해서 잘 설명하고 있고 후반에 마케팅 관련 챕터도 재미있다. 책이 다소 두껍긴 하지만 블로그 글이라 슬슬 잘 읽힌다.
|
TODO
- 픽사 관련 연설을 보고 개발 팀 구성에 대한 인사이트 얻기 (p82)
- 전화 인터뷰 질문 읽어 보고 부족한 부분 공부하기 (p113)
Article 중 동의하는 내용들..
|
(doing)- 테크니컬 리더 해결 리더쉽 읽기 (p136)
. 에르고휴먼 메쉬 의자 맘에 든다.
. 하지만 xx 비싸다.
(Cancel, 책 못 구함.)- 상식이 통하는 웹사이트가 성공한다 읽어보기 (p240)
- 다시 읽어보기
|
: 프로그래머의 길을 걸어가는 당신을 위한 안내서
| |
제목은 별로 맘에 들지 않았으나 겉표지가 강렬?하여 구매하게 되었다.
책을 보고 나서는 여러 전설적인 IT 선배들의 이야기에 주눅이 들고 역시 천재는 따로 있구나 하는 생각에 좀 찝찝했었다. 하지만 책에서 프로그래머로서 택할 수 있는 ladder 및 역량 개발에 대한 조언, 어쩔 수 없는 관리자로서 알아야 하는 내용 들과 그 이후에 내용을 상세히 - SE 전공 서적을 요약하듯 - 설명하고 있어 구매해서 두고두고 읽는 것이 도움될 듯하다.
이 책과 관련되 TODO는 거의 없다.. 계속 읽어야 하는 것뿐.
|
TODO
- 반복 읽기
|
| |
여러 유명 프로그래머분들의 이야기를 모아 놓은 책이라
국내 상황에서의 경력 개발과 진로에 대해서 참고할 수 있는 책.
현실적인 수필집 정도로 볼 수 있음.
|
TODO
- 지식의 채널의 다양화 (p165)
. 블로그, 잡지, 전문 출판물, 저널, 책, 오픈소스, 실험, 연구 논문, 구글 알리미
. 컨퍼런스 참가, 커뮤니티 참가
(doing)- Arduino 가지고 놀기 (p181)
피드 구독하기:
글 (Atom)

