목차
머리말
Chapter 1. 프로그래밍에 대한 사색 = 15
Chapter 2. 소프트웨어 개발 입문자분들께 드리는 31가지 조언 = 20
1. 처음에는 자신이 사용하는 개발툴이나 언어를 강력한 툴이자 언어로 생각하십시오. = 25
2. 어느 정도 숙달되면 개발툴이 아닌 업무에 주의를 기울이십시오. = 31
3. 처음에는 자신이 사용하는 개발툴이 갖고있는 기능의 전체상을 획득하도록 하시고 그 다음에 하나 하나 저하고 자세하게 배우도록 하십시오. 그리고 중요한 지식과 기술을 중심으로 배우십시오. = 34
4. 프로젝트에서 대면하게 되는 새로운 요소 기술, 팁 그리고 노하우들을 하나 하나 기록하고 정리하여 여러분의 지식체계로 발전시키십시오. = 53
5. 자신이 사용하는 개발툴의 기능적 사용법, 요소 기술, 팁 및 노하우을 기록하고 정리하는 것 못지 않게 이를 여러분의 것으로 내면화하는 것이 중요합니다. = 58
6. 문제의 다양한 변화를 고려하고 다양한 해법을 모색하십시오. = 61
7. 개발툴은 기능적인 툴이라는 점을 잊지 마십시오. 즉, 개발툴에 대한 감각을 익히십시오. = 66
8. 반복을 두려워 하지 마십시오. 반복 속에 변화가 있습니다. 그 미묘한 변화를 터득하십시오. = 70
9. 가끔씩 소프트웨어의 실체를 파악하는데 주의를 기울일 필요도 있습니다. = 74
10. 요긴한 한 줄의 코드가 허황된 말이나 장황한 이론보다 더 중요할 수 있습니다. = 76
11. 다양한 요소 기술을 마스터하십시오. = 78
12. 문제 의식을 가지십시오. = 83
13. 자신이 사용하는 개발툴에 대한 전체적인 시야를 획득하도록 하십시오. 종종 예시적 사고(Predictive Thinking)가 도움이 될 때도 있습니다. = 85
14. 단순성(Simplicity)을 최대한 활용하십시오. = 89
15. 프로그래밍 그리고 프로젝트에서 즐거움을 찾으십시오. = 95
16. 다른 프로그래머들과의 교류를 이루어가면서 개발문화와의 흐름 및 휴먼네트워크와의 동시성을 유지하십시오. = 106
17. 업무와 관련하여 인간관계를 원활하게 유지하십시오. = 109
18. 팀웍을 유지하십시오. = 111
19. 소프트웨어 장인정신을 본받으십시오. = 127
20. 자신의 일에 긍지와 자부심을 가지십시오. 그리고 일에 몰입하십시오. 그 속에서 자유를 찾으십시오. = 129
21. 연속적이고 지속적으로 일을 하십시오. 그리고 규칙적으로 일하십시오. = 133
22. 요소 기술을 익혀 하나의 완성된 제품을 만들어 내도록 하십시오. = 137
23. 코드 가독능력과 작성능력을 향상시키십시오. = 140
24. 어느 정도 실력이 향상되면 SQL과 데이터베이스 활용에 대해서 공부를 하십시오. = 147
25. 남에게 가르침으로써 알고 있는 지식을 더 새롭게 하고 새로운 것을 배우는 기회를 얻으십시오. = 158
26. 선임 개발자와 동료 개발자 그리고 후배 개발자의 진지한 모습과 개발에 몰입하는 자세를 배우도록 하십시오. = 160
27. 변화에 적응하십시오. = 162
28. 전산을 전공하지 않았다고 반드시 마이너스 요인이 되는 것은 아닙니다. = 164
29. 익스트림 프로그래밍, 디자인패턴, 리팩토링 등의 최신 소프트웨어 개발 기술에도 관심을 가지십시오. = 170
30. 어느 정도 개발툴 실력이 확고하게 되면 영어, 경영지식 및 다양한 학문에 관심을 가지십시오. = 172
31. 항상 자신을 성찰하고 반성하며 끝임 없이 배우도록 노력하십시오. = 174
Chapter 3. 소프트웨어 개발 프로젝트 방법론의 이해 = 181
1. 필자가 익스트림 프로그래밍을 공부하게 된 배경 = 182
2. 익스트림 프로그래밍과 증험적 프로그래밍 사고 = 186
3. 익스트림 프로그래밍의 4대 가치와 10대 practice = 190
4. 협력(協力)프로그래밍과 지식공유 그리고 익스트림 프로그래밍의 4대 가치에 관한 생각 = 196
5. 필자가 생각하는 Test First Programming 개념과 Prototype 개념의 결합 방법론 - 변형 TFP = 202
6. 통합된 시각(Unfied Perspective) = 215
7. 점진적 개발(Incremental development) = 222
8. 기민형 소프트웨어 개발 생태계(Agile Software development EcoSystem) = 224
9. WorkFlow와 문제공간/해법공간 = 226
10. 단순설계(SimpleDesign)에 대한 생각 = 232
11. 소프트웨어 라이프사이클과 업무 분석에 관한 해석 = 238
12. 실무적 소프트웨어 공학의 새로 패러다임 - 정형화(Formalization) = 245
13. 경영자이자 기술자로서의 궁극적 조화의 길 = 255
14. 프로그래머와 완벽주의 = 260
Chapter 4. 디자인패턴에 대한 소론(小論) = 267
1. 디자인패턴을 공부해야 하는 이유 = 268
2. 디자인패턴에 대한 생각 = 272
3. 디자인패턴 공부 방법 = 275
4. 필자가 디자인패턴을 좋아하는 이유 = 280
Chapter 5. 소프트웨어 공학에 대한 철학적 고찰 = 288
Chapter 6. 스터디 모임과 의사소통(커뮤니케이션)에 대한 소고(小考) = 304
Chapter 7. 인생 수행의 방편으로서의 프로그래밍에 대한 개인적 소고 = 320
Chapter 8. 무의식적 정형화(Unconscious Formalization) = 336
Chapter 9. 프로그래머를 위한 내공 증득 = 347
부록. [샘플소설] 철학하는 프로그래머 = 357