1.책을 읽게된 이유
-최근들어 개발을 하면서 내가 더 높은 수준의 개발자가 되기 위해서는 새로운 기술을 더 공부하는 것도 좋지만
설계능력과 문제 해결능력이 더 중요하다는 것을 느끼게 되어서 읽어보게 되었습니다.
2.책의 내용
1)프로그래밍 싱킹을 배워야 하는 이유
-이 책의 저자분은 누구나 "코딩"은 할 수 있지만 모두가 "프로그래머"가 되지는 않는다고 얘기합니다 그래서 단순히 컴퓨터를 켜서 자판에 명령어를 입력해야만 코딩이 되는 것이 아니라 그 문제에 대해서 어떻게 접근할지와 그 문제의 해결에는 어떤 것이 필요하며 어떻게 해결할지에 대해서 생각하는 과정이 코딩에서 중요하다고 얘기합니다. 그래서 이러한 능력들을 기르기 위해서 책에서는 "프로그래밍 싱킹"을 해야 한다고 얘기합니다. 책에서 얘기하는 "프로그래밍 씽킹"이란 개발자가 무언가를 개발하며 문제를 푸는 사고방식 입니다.
2)프로그램이 씽킹의 5단계
2-1)관찰단계
-핵심은 관찰할 대상을 크게 입력과 출력 부분으로 나누어서 살펴보는 것이다
EX)관찰할 대상이 자판기라면 자판기의 입력 부분과 출력부분에 해당하는 것을 나열해보자.
-나아가서 좋은 프로그래머는 제대로 된 입력값을 찾아내고 그에 맞는 출력값이 무엇인지 찾아내는 사람이다.
2-2)탐험단계
-가능한 모든 경우의 수를 찾아내는 과정이다
-관찰할 대상에 관계된 모든 사용자 유형을 찾은 후 사용자 유형별로 입력과 출력 부분을
다르게 생각해야 한다.
-또한 사용자의 입력에 따른 출력부분이 적절한지도 생각해야한다.
EX)사용자가 입력했을 때의 기대했던 결과에 맞게 출력되는 제품
2-3)확장 단계
-관찰과, 탐험단계에서 작성한 과정을 구체적으로 확장하는 단계
* 확장단계가 필요한 이유
-확장단계가 필요한 이유는 처음부터 깊게 사고해서 구체적인 단계를 작성하는 것보다 관찰단계, 탐험단계를 통해 시작부터 종료까지의 전 과정을 파악할 수 있게 전체 싸이클을 간결하고 빠르게 작성하는
것이 매우 중요하다.
-전체 프로세스를 이해해야만 각 단계에서 빠진 부분이나 보충할 부분을 추가로 도출할 수 있다.
-처음 부터 구체적으로 작성 하려면 어렵기도하고 시간이 많이 소모된다
-또한 일부 내용이 빠지거나 틀린 내용이 있는 경우 모든 단계에서 잘못된 결과를 초래할 수 있다.
-협업 중에도 각자가 파악한 프로세스를 간결하게 작성하고 이를 공유하면서 진행하는 것이 더욱 효과적이고 각자가 작성한 단계를 서로 비교하여 잘못된 단계를 수정, 보충한다.
2-4)세분화 단계
-과정을 더욱 쪼개고 여러 과정으로 분리하는 단계
2-5)발전 단계
-각각의 과정을 다시 한번 확장하여 한 번 더 세분화하는 단계
3)연습
-책에서는 이러한 "프로그래밍 씽킹"을 연습할 수 있도록 다양한 예제를 제공해준다.
4)리뷰
-어떻게 하면 좋은 개발자가 될 수 있을까를 생각하면서 평소에 내가 생각한 개발자에게 필요한 능력이 이 책에서 잘 설명이 되어있고 또 그것을 기를 수 있는 연습문제들이 잘 되어있어서 좋았다.
-개인적으로 처음에 좋은 개발 습관들을 몸에 익히는 것이 중요하다고 생각하는데 이 책을 통해서 좋은 개발 습관들을 얻을 수 있을 것 같다.
댓글